IterationOne


Goals :

Create a boot sector that loads and runs a KernelLoader at adress $1000:$0000, and jumps to it.

Display an error if the KernelLoader cannot be loaded.

Means : Select a BootSector from all the ones available on the internet, and adapt it.

Description :

The chosen BootSector loads .com format executables (org $100).

This could be a blessing since tcom creates .com files too, but I don't want to have to care about the 256 bytes that DOS and its clones use to store their runtime data in memory.

So I decided to add a small BinaryHeader to all generated .com files, which is only a jmp to some init code in then header, followed by some segments sizes and the small code snippet that uses them to set the segment limits, then finally a jmp $100.

In consequence all tcos binary files, including the KernelLoader must have this BinaryHeader, and hence are org $0000.

The BootSector has been adapted this way, and its OEM signature has been changed.


Back to HomePage