This week, we worked on the design presentation while continuing CPU and memory development. Govind focused on preparing and practicing the presentation and researching the compiler and emulator setup. Ben helped on the slides and refined the CPU/memory interface, RAM and BIOS ROM organization, address decoding, and their test plan. Josh implemented and tested the first connected portion of the CPU datapath.
Josh’s CPU can now execute a short testbench-fed program using MOV and ADD that produces AX = 14. The ALU passed more than 20,000 directed and reference-model checks. Deliberately introducing bugs also helped check the testbenches and exposed an execution-unit coverage gap to fix. The CPU does not yet fetch instructions from memory, so this is an initial datapath milestone rather than a complete processor.
Our biggest risk is integrating the CPU, memory, peripherals, and software on time, so we will agree on shared interfaces early and test small programs before attempting a full boot. If storage is delayed, we can continue testing with preloaded programs while prioritizing disk boot, the shell, and .COM execution over optional features.
MartyPC’s emulated hardware uses different interfaces from our FPGA system, so we will need to adapt the low-level drivers for each while keeping the higher-level software shared. This lets us test software in the emulator, but the FPGA interfaces will still need separate testing.
The software work is behind the original schedule because the MartyPC setup and BIOS/disk-adapter tests are not complete. During the week of September 28, Govind will prioritize the compiler-to-emulator workflow and initial disk-read tests. This puts the planned DOS file-service and loader/shell milestones at risk. We will reassess those dates next week; October 19 remains the target for BIOS boot and disk reads on the FPGA. Meanwhile, Josh will begin instruction fetch from simulated memory and expand instruction support, and Ben will begin implementing and testing RAM, ROM, and address decoding.
Part A: Public health, safety, and welfare
Our project addresses an educational need by giving students a computer system they can inspect and modify to understand how hardware and software interact. Its contribution to welfare is mainly through learning rather than a direct health application. We do not intend the prototype for safety-critical use. For physical safety, we plan to follow the FPGA board’s power and connection requirements, secure wiring, and document setup procedures. Clear diagnostics, reset instructions, and known limitations should also make the system less frustrating to use.
Part B: Social factors
Our intended users include students, educators, and computing enthusiasts with different levels of hardware and software experience. To make the project useful beyond our team, we plan to document the interfaces and provide small examples rather than assume everyone already understands the 8088 or DOS. The project also gives people with different interests a shared system to explore: someone working on software can follow a request down into the hardware, and someone studying the CPU can see how programs use it. Emulator examples could make the software easier to explore without immediate access to an FPGA board.
Part C: Economic factors
We want the project to provide a reusable platform for studying an early computer architecture without relying on original vintage hardware. However, we cannot claim it is the cheapest option without accounting for the FPGA board, peripherals, and development tools. We plan to reuse available equipment where practical and prioritize the core functionality before optional features. Development time is another cost: keeping the emulator and FPGA software largely shared should reduce duplicated work, while simulation should help us find problems before board-level debugging.
A was written by Ben, B was written by Govind, and C was written by Josh.


