Toy 16-bit real mode operating system
For now its more of a program running on the bare hardware rather than an actual operating system. I originally started using assembly but it is a much slower process and I wasn't making much progress. Using assembly may produce a smaller binary, especially in the startup code, but that hasn't been an issue as yet.
The bootloader is currently using BootProg as it can load a DOS com executable format.
I am using Open Watcom V2 16-bit c compiler to produce the com file.
I am using some of the standard c functions, you just need to be careful which you use. You can't use any of the standard file i/o, even standard output. It is safe to use functions that don't rely on the OS such as the string functions. I am currently using malloc/free. I wasn't sure it was going to work, but it seems to work ok.
Using BIOS functionality I have working:
- screen output
- keyboard input
- time and date
- disk i/o
Eventually it will probably be worthwhile to replace BIOS with direct hardware access.
GNU Make v4.3
Open Watcom V2 2.0 beta Sep 15 2020
QEMU v5.1.0
make build
make run