Set up environment, makefile Write program which prints to output, compile, load on BOCHS Create bootloader which loads above program Create output function, call that function Create FAT disk builder, in makefile Create file allocation table lookup function Create program loader function Set resident program to use FAT lookup to load print program Write keyboard input function Write echo program.
- Write user-level header file.
- Make user programs to test OS
- Age-guessing program
- Graphing program
Memory is going to be a total of 64k. This makes it easy, because we never need to use segments. The kernel will be loaded starting from the 32k mark (0x8000). The kernel's entry point will be 0x8000. The kernel will then load from 0x500 to 0x5ff with jumps into functions. New programs will be loaded starting from 0x600. The stack grows down from 0x7FFF. Can safely grow all the way down to 0x7E00.
0x500-0x5FF: Transient program area -- a set of long jumps, every 8 bytes 0x600-??: Program working area -- programs get loaded into this space, and then are executed by jumping to 0x600 0x7A00-0x7BFF: File lookup table 0x7C00-0x7DFF: Bootloader 0x7E00-0x7FFF: Stack 0x8000-0x8100: Copy of TPA 0x8100-??: The rest of the kernel