You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
regs.flags=FLG_CARRY; /* ensure carry is set to force error if unsupported */
init_call_intr(0x13, ®s);
My idea is to force DS = 40h for this call, which will work around the bug of the BIOS writing to offset 41h without setting up DS.
I didn't have this idea yet because my use of 13.42 without the proper 13.41 check call makes this more difficult, however I just added a workaround to the Xi8088 bug to the callers that are not as size constrained as the lDOS boot sector loaders, eg lDOS iniload: https://hg.pushbx.org/ecm/ldosboot/rev/4c929733a229
(I will upload a blog post that also addresses this later.)
The text was updated successfully, but these errors were encountered:
Sounds reasonable. That is directly related to my question on the developer mailinglist some time ago to what DS should be set in this case. There is a (closed) related FDISK issue FDOS/fdisk#80. I may implement setting DS as well for FDISK.
Circling back to the Xi8088 BIOS bug that affected at least some revisions of the Book8088:
The bug was described in http://www.bttr-software.de/forum/forum_entry.php?id=21275
This is where the kernel may call a ROM-BIOS that doesn't support LBA to detect that it doesn't support LBA:
kernel/kernel/initdisk.c
Lines 651 to 657 in 1b6de0f
My idea is to force DS = 40h for this call, which will work around the bug of the BIOS writing to offset 41h without setting up DS.
I didn't have this idea yet because my use of 13.42 without the proper 13.41 check call makes this more difficult, however I just added a workaround to the Xi8088 bug to the callers that are not as size constrained as the lDOS boot sector loaders, eg lDOS iniload: https://hg.pushbx.org/ecm/ldosboot/rev/4c929733a229
(I will upload a blog post that also addresses this later.)
The text was updated successfully, but these errors were encountered: