Try it online!
The kernel can be compiled and linked using Open Watcom compiler.
The kernel does not make other assumptions about the bootloader than
that in the memory address 0xFC15 there must be the BIOS drive number of
the system drive, and in the memory address 0xFC1C the 32-bit index of the first logical sector
of the boot partition.
The kernel can be loaded to anywhere in the memory (as long as the
starting point is the beginning of a paragraph) and must be started
by doing a far jump to the beginning of the code with offset 0.
New 27. 5. 2023: It runs DOOM!
New 25. 5. 2023: The kernel now works with the original PC and XT and their clones. Build the kernel with -dPCXT switch to get a compatible kernel blob.
New 21. 5. 2023: Disk writes should finally work properly...
New 26. 4. 2023: Cache optimizations.
New 24. 4. 2023: The filesystem mounter now supports MSDOS partitioning.
Source for the kernel & userland
Last updated: 28. 5. 2023
Source for the boot loader (can be assembled with NASM)
The bootloader searches for a file named KERNEL.BIN from the root directory of a FAT12/16 filesystem
and loads it to memory.
Bootable 1,44 MB floppy image
Bootable USB storage image
- Support for large disks and 2 GB FAT filesystems
- Dynamic disk caching
- Dynamic file buffering
- Mostly MS-DOS-compatible API - most DOS programs should work
- Can create and mount disk images