jart / sectorlisp

Bootstrapping LISP in a Boot Sector
ISC License
1.29k stars 56 forks source link

First two bytes need to be "33 C0" (alternative encoding of "mov eax, eax") for some brain-dead BIOSes #32

Open Googulator opened 1 month ago

Googulator commented 1 month ago

Some rather brain dead BIOSes use "33 C0" at the beginning of the MBR as a magic number for a "modern" MBR. This is a relic of how all Windows NT-family MBRs begin with "33 C0", while no DOS or Windows 9x MBRs do.

Without this magic value, the affected BIOSes will enable DOS/Win9x-specific workarounds, mostly in relation to drive access, which tend to break large disk access or LBA in newer MBRs.

peterferrie commented 1 month ago

I think that this does not affect us, since we are limited to only a single sector anyway, and no further disk access.