Hmm,

The code tries to ignore any non disk-related errors, and returns 0x00
(ignore). Ignore should become fail if it's not allowed. And when it
detects a disk error it seems to set an internal flag to indicate a
critical error which is then tested for in the TestCriticalError[1]
function.

I guess this is because edit wants to show a dialog, and showing a dialog
from inside the int24h handler is not a good idea...

Soo now I wonder what is the full value of register AX? I'd expect the
kernel to set values to indicate a drive not ready error. So for some
reason bit 7 of AH is set? So now I wonder why not?

Are you running in a VM or physical machine? What dos DR-DOS return?

--Wolf

[1]
https://github.com/boeckmann/edit/blob/cf4e4f6fb3dc346618318bd1475552fa51c6a4b7/source/message.c#L182

On Sun, May 25, 2025, 20:34 Bernd Böckmann via Freedos-devel <
freedos-devel@lists.sourceforge.net> wrote:

> I wondered why EDIT let me happily write to an empty floppy drive under
> FreeDOS.


While investigating I noticed a discrepancy between the FreeDOS and MS-DOS
> / DR-DOS kernel behavior if the critical error handler returns AX=0
> (ignore).
>
> FreeDOS does not indicate an error when returning from INT21.3C (create
> file) after the file creation failed. On MS-DOS, DR-DOS and DosBox I get
> error code 3 (path not found) on critical error return AX=0.
>
> For EDIT I solved this by changing the critical error handler to return
> FAIL (wondering why this originally was set to IGNORE). But this is
> nevertheless a discrepancy.
>
>
>
> _______________________________________________
> Freedos-devel mailing list
> Freedos-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freedos-devel
>
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to