SvarDOS / edrdos

Enhanced DR-DOS kernel and command interpreter ported to JWasm and OpenWatcom C
http://svardos.org/
Other
40 stars 4 forks source link

Harden int 13h function 41h call, including to work around Book8088 BIOS bug #56

Closed ecm-pushbx closed 6 months ago

ecm-pushbx commented 6 months ago

This is the work around: https://hg.pushbx.org/ecm/edrdos/rev/1e0d46b4014c (It used to call the function with ds = 70h which would corrupt a different byte than 00041h.)

This is more hardening, setting CY and cx=0 (and dh=al=0 like in lDOS MBR): https://hg.pushbx.org/ecm/edrdos/rev/1137afe0115d

ecm-pushbx commented 6 months ago

There is a call to int 13h function 48h in https://hg.pushbx.org/ecm/edrdos/file/1137afe0115d/drbio/disk.asm#l2483

It would be more difficult to set up ds = 40h for this because it uses ds:si -> buffer to write to. However, it is run only from the entrypoint floppy_type which seems to always have dl in the range 0 to 3. So since the contribution to not call function 48h for diskettes it appears that this function is actually never called any longer! So it's dead code, no concern for the Book8088 bug.

boeckmann commented 6 months ago

imported by 6907b04