Progress this week
I spent about 10 or more hours on the project this week, focusing on getting our BIOS and DOS software started and tested. I also spent four hours in class peer reviewing design review presentations, and additional time preparing for our presentation.
Our software can now start in MartyPC, an emulator that acts like an older IBM PC, using our own BIOS. The BIOS sets up the machine and reads our bootloader from a virtual disk. The bootloader then loads our kernel into memory and starts it. Earlier tests used an existing BIOS called GLaBIOS, but the current custom boot tests use our own BIOS.
I also worked on the C compiler setup and the code needed to start C programs without an existing operating system. This lets us write most of the kernel in C while using assembly for the low-level startup and hardware access.
The kernel can now find files by name and open, read, and close them. These operations are also available through a small set of DOS-compatible requests. Tests cover reading files spread across different parts of the disk, reaching the end of a file, opening missing files, and handling damaged disk data. This is still a test system: keyboard input, a command prompt, and loading existing DOS programs are not implemented yet.
Finally, I worked on making the implementation easier to understand and review. The documentation now explains how the emulator, BIOS, bootloader, and kernel connect, and the assembly comments explain what each instruction does.
Evidence:
– [Software explanation and review guide](https://github.com/JoshuaSmith1227/ibm-pcxt-fpga/blob/govind/software-review/docs/software-review.md)
– [Custom BIOS boot test results](https://github.com/JoshuaSmith1227/ibm-pcxt-fpga/blob/govind/software-review/docs/test-results/2026-10-03-custom-boot.md)
– [DOS file-service test results](https://github.com/JoshuaSmith1227/ibm-pcxt-fpga/blob/govind/software-review/docs/test-results/2026-10-03-dos-files.md)
Schedule
My progress is on track for the initial software setup and BIOS testing in our proposed schedule. Basic DOS file operations have also started. However, there is still substantial work before we can run existing programs, and all software testing so far has been in the emulator rather than on our FPGA.
Next week
I plan to check the display output directly, add basic keyboard input, and begin loading a small test program from disk and returning to the kernel when it finishes. I will also review the hardware interfaces with the team, especially how the BIOS will access storage on our board.