alrj's projects

BB-88, a breadboard 8088 computer

Picture of BB-88

This is a picture of BB-88, my breadboard computer. It is built around a 8088 CPU (actually a NEC V20, but it also works with a genuine Intel CPU). Most of the architecture is compatible with the original PC, the biggest difference being the video generation circuit.

Hardware features

Standard components:

  • The CPU runs in maximum mode. This requires a bus controller chip (Intel 8288) but allows the use of the 8087 FPU.
  • The RAM consists of two 512kB SRAM chips, and the BIOS/firmware is stored in a 128kB flash memory of which currently only 64kB are used. As of now, for simplicity, only 640kB of RAM are mapped, but it would be fairly easy to map some upper memory blocks as well.
  • There is a Programmable Interval Timer (PIT, 8254), two cascaded interrupt controllers (PIC, 8259), but no DMA controller.
  • The keyboard controller is a PS/2 VT82C42 that has support for a PS/2 mouse, although the mouse support is not implemented yet.
  • There is also a Real time Clock, and of course all the circuitry needed for the infamous PC speaker!


  • An IDE adapter, heavily based on XT-IDE, that even works with a master/slave compact Flash adapter.
  • A serial interface, built upon a 16C550 UART.
  • And, of course, the video adapter, that I will describe in more details later on.

To do:

  • A sound card based on the OPL-2 chip, most likely the Adlib design
  • Implement actual graphics modes


The BIOS functions come from Sergey's implementation. It's not a drop-in solution, but that was of invaluable help, as many BIOS interrupt handlers that he wrote could be reused nearly as-is !

There is a ROM Basic implementation: I ported the Palo-Alto Tiny Basic to the x86 architecture. Source code can be found in my framagit repository.

The system can boot DOS (I have only tested MS-DOS 3.30) and run a few programs, most notably Norton Commander and TASM, but I must have some bugs in the disk functions (int 13h) because the filesystem will quickly get corrupted after a short use.

The Video subsytem

To be continued…

builderpages/alrj/start.txt · Last modified: 2020/08/20 11:41 by alrj
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0