Skip to the content
PCBKitNew board
2 layers100 × 100 mmBreadboard PC, the printed circuit board in 3D

Ordinateur 8088/8086 sur breadboard (VE2CUY): firmware/BIOS, moniteur, BASIC, pont Arduino/STM32, schemas KiCad, images PC-DOS de reference.

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
27
Nets
115
Pads
344
Tracks, vias
725, 18
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
22 Sep 2026
Updated
26 Sep 2026

Overview

Breadboard PC is an open-source printed circuit board by ve2cuy, from the ve2cuy/breadboard-PC repository on GitHub. It is a 2-layer board of 100 × 100 mm with 27 parts on 115 nets, routed with 725 tracks and 18 vias.

It is built around the 74LS373SC, 74HC245D and 74LS00SC. Its parts include 9 ICs, 8 resistors, 4 connectors, 2 switches and 1 diode. It belongs with the STM32 boards of this library.

Main components

3

README

README.md

breadboard-PC — an 8088 computer on a breadboard

A microcomputer with a PC/XT-inspired architecture, built on solderless breadboards around an Intel 8088. Its ROM, whose source code is written entirely in 8086 assembly language, boots into an interactive menu, runs two BASIC interpreters and boots PC-DOS 2.1 and MS-DOS 3.30 from floppy disk images.

A project by Alain Boudreault (VE2CUY), 2026. Version française

The breadboard build, with the LCD showing the Information screen
The build: the Black Pill STM32F411 bridge (top centre), the 8088, the 8255, the 8259, the ROM and the RAM. The LCD shows the “Information” screen (date and time, versions, RAM, disk, speed).

At a glance

ProcessorIntel 8088, 4.77 MHz by default (adjustable from 1 to 10 MHz)
Memory256 KB ROM (W29C020C, C0000h–FFFFFh), 128 KB static RAM (HM628128, 00000h–1FFFFh)
I/O8255A in mode 2 (bus to the bridge), 8259A (interrupts), 4×20 I2C LCD, PS/2 keyboard
BridgeWeAct Black Pill STM32F411 board: keyboard, USB terminal, LCD, clock, disk, RESET
SoftwareROM written entirely in assembly (NASM, strict 8086 instruction set), both BASICs included: menu, BIOS for DOS, Tiny BASIC, GW-BASIC-style BASIC
Operating systemsPC-DOS 2.1 and MS-DOS 3.30, booted from a floppy disk image

The build

The core of the machine (processor, address latches, ROM, RAM, decoding) is wired on breadboards with 74HC/74HCT logic and no programmable logic (no GAL, no CPLD). Address decoding takes only a few NAND gates:

  • ROM: A19 = 1 (window C0000h–FFFFFh);
  • RAM: A19 = 0;
  • 8255 (ports 80h–83h): A7 and an I/O cycle;
  • 8259 (ports 20h–21h): NAND(IO, A5) (one gate of a 74LS00).

KiCad schematic of the core: 8088, latches, ROM, RAM and decoding
Schematic of the core (KiCad). The clock, supplied here by an Arduino UNO R4, now comes from the bridge.

The circuit

The 8088 does not bit-bang any peripheral. All traffic goes through a single 8255 in mode 2: an 8-bit bidirectional bus with hardware handshaking, connected to the bridge. Every byte received from the bridge raises an interrupt (IR1 of the 8259).

mermaid
flowchart LR
    CPU["Intel 8088"] --- BUS(("Bus<br>A0-A19 / D0-D7"))
    BUS --- ROM["256 KB ROM<br>W29C020C"]
    BUS --- RAM["128 KB RAM<br>HM628128"]
    BUS --- PIO["8255A<br>mode 2"]
    BUS --- PIC["8259A"]
    PIO -- "INTR → IR1" --> PIC
    PIC -- INTR --> CPU
    PIO <== "Port A (8 bits) + handshake" ==> BRIDGE["Bridge<br>Black Pill STM32F411"]
    BRIDGE -- "CLK, RESET" --> CPU
    KBD["PS/2 keyboard"] --> BRIDGE
    BRIDGE <-- "USB (serial + drive)" --> PC["PC: terminal"]
    BRIDGE --> LCD["4×20 I2C LCD"]
    BRIDGE --- FLASH["8 MB flash<br>FAT16"]

The bridge wiring in detail (pins, 3.3 V / 5 V levels, pull-up resistors) is described (in French) in arduino/8088_bridge_stm32/README.md.

The STM32 bridge

The bridge firmware (a PlatformIO project, arduino/8088_bridge_stm32) gives the 8088 the peripherals of a PC:

FunctionDetails
PS/2 keyboardFrame decoding; raw scan codes passed to the 8088
TerminalNative USB serial port to the PC (ANSI, 80 columns)
Display4×20 HD44780 LCD over I2C (PCF8574)
Real-time clockSTM32 RTC (32.768 kHz crystal): TIME$, DATE$, INT 1Ah
Disk8 MB W25Q64 SPI flash formatted FAT16: files, sectors, floppy images mounted as A:
USB driveThe flash is exposed to the PC as a USB drive (USB ON / USB OFF) to copy files onto it
8088 clockCLK signal generated by hardware PWM, 1 to 10 MHz
8088 RESETHeld while the bridge starts up; Ctrl-Alt-Del (PS/2) or Ctrl-\ (terminal)

The 8088 talks to the bridge through a command protocol on a dedicated channel (see Solution-01/lib/bridge.asm).

The menu

At power-up, the ROM displays a menu on both the terminal and the LCD. It can be driven from either the PS/2 keyboard or the terminal; Esc returns to the main menu.

The ROM main menu on the terminal

MenuOptions
1) BasicTiny BASIC; GW-BASIC-style BASIC
2) Memory functionsMemory dump and editing, CPU registers, code entry and execution, interrupt vector table, RAM test
3) USB DiskUSB drive toggle, file list, booting a disk image
4) ConfigurationClock speed, CPU speed test, date and time setting, information screen

BASIC

An original reimplementation inspired by GW-BASIC: same keywords, same error messages, integers, single-precision floating point (in software) and strings. About 54 KB are free for programs.

BASIC session: a program, RUN and FRE(0)

CategoryCommands and functions
ProgramRUN LIST EDIT DELETE NEW CLEAR CONT TRON TROFF HELP SYSTEM
Control flowIF…THEN…ELSE GOTO GOSUB/RETURN ON…GOTO/GOSUB FOR…NEXT WHILE…WEND END STOP
DataLET DIM ERASE SWAP DATA/READ/RESTORE DEF FN DEFINT/DEFSNG/DEFSTR
Input/outputPRINT INPUT LINE INPUT INKEY$ CLS LOCATE COLOR BEEP
MathABS SGN INT FIX SQR SIN COS TAN ATN LOG EXP RND RANDOMIZE
StringsLEN LEFT$ RIGHT$ MID$ INSTR CHR$ ASC STR$ VAL HEX$ UCASE$ STRING$
FilesSAVE LOAD MERGE FILES KILL FORMAT; OPEN PRINT # INPUT # EOF CLOSE
ClockTIMER TIME$ DATE$ (read and set the bridge RTC)
MachinePEEK POKE DEF SEG INP OUT WAIT CALL FRE
Disk and systemDSKREAD DSKWRITE USB ON/OFF BOOT "image.img"

DOS 2.1 and DOS 3.3

The ROM provides the BIOS layer a DOS expects: disk (INT 13h, CHS and LBA), keyboard (INT 16h), clock (INT 1Ah), text output to the terminal (INT 10h) and bootstrap (INT 19h). A floppy image copied to the flash (through the USB drive) is mounted as drive A: and booted from USB Disk → 3) Boot disk image, or with BOOT "PCDOS2_1.IMG" from BASIC. DOS writes go to the image file.

Booting PC-DOS 2.1, VER and DIR /W
PC-DOS 2.1: booting from the image (one dot per sector read), VER, DIR /W

Booting MS-DOS 3.30, VER and DIR /W
MS-DOS 3.30

Limitations: 128 KB of RAM (DOS 5.0 and later require 256 KB), no video hardware (programs that write to video memory display nothing), DOS keyboard input from the terminal only.

Building the ROM

sh
cd Solution-01
make            # solution-01.bin (256 KB, to be burned into the W29C020C); make rom-en for English
make check      # checks size, reset vector and signature
make test       # test benches under emulation (Unicorn)
make test-rom   # full ROM simulation: DOS, BASIC, PS/2 keyboard

Tools: NASM, GNU Make, Python 3 (+ unicorn for the tests); PlatformIO for the bridge (platformio run -e blackpill_f411ce_usbdrive -t upload, board in DFU mode).

Repository layout

FolderContents
Solution-01/8088 ROM (NASM) and tests; full technical documentation (in French) in Solution-01/README.md
arduino/8088_bridge_stm32/Firmware of the Black Pill STM32F411 bridge (PlatformIO)
kicad/Schematics of the build
PC-DOS/Test floppy disk images
medias/Datasheets, schematics and screenshots

The terminal screenshots on this page are produced by the actual (English) ROM, running in the project's simulator (medias/captures/generer.py).

Parts

27
QtyValueFootprintReferences
410kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R3, R4, R7
34.7kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R5, R6
274LS00Package_DIP:DIP-14_W7.62mmIC-6, U9
274LS373Package_DIP:DIP-20_W7.62mmU2, U3
11-2: STM32 2-3: ext.Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR8
15V 2AConnector_BarrelJack:BarrelJack_HorizontalJ3
174HC245Package_DIP:DIP-20_W7.62mmU6
18088Package_DIP:DIP-40_W15.24mmU1
18255APackage_DIP:DIP-40_W15.24mmU11
18259APackage_DIP:DIP-28_W15.24mmU7
1CLK externeConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ4
1HM628128DPackage_DIP:DIP-32_W15.24mmU8
1IR0 testButton_Switch_THT:SW_PUSH_6mmSW2
1LCD I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1PWRLED_THT:LED_D3.0mmD1
1RESETButton_Switch_THT:SW_PUSH_6mmSW1
1STM32F411 BlackPillBlack-Pill:STM32F411_Black_PillU5
1USB_A (clavier PS/2)Connector_USB:USB_A_Molex_67643_HorizontalJ1
1W29C020CSocket:DIP_Socket-32_W11.9mm_W12.7mm_W15.24mm_W17.78mm_W18.5mm_3M_232-1285-00-0602JU4

Questions

How big is the Breadboard PC PCB?

It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Breadboard PC use?

27 parts, built around the 74LS373SC, 74HC245D and 74LS00SC. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Breadboard PC KiCad files?

From the ve2cuy/breadboard-PC repository on GitHub, at the commit this page was made from: the board is kicad/Breadboard-pc/Breadboard-pc.kicad_pcb and its schematic kicad/Breadboard-pc/Breadboard-pc.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Breadboard PC design in my own project?

Its repository states no licence, so its author keeps all rights: ask ve2cuy before reusing the design.

Similar boards

  • 4 layers241.8 × 174.8 mmAmiga Rejuvenator, the printed circuit board in 3D

    Amiga Rejuvenator

    joethezombie/Amiga-1000-Rejuvenator

    A1000 Rejuvenator

    121 parts58
  • 2 layers365.1 × 203.2 mmDIAG, the printed circuit board in 3D

    DIAG

    Nakazoto/CenturionComputer

    This is just a simple backup of all the files related to the Centurion that I have stored on my HD. The Wiki itself has far more in-depth information about the Centurion and it's individual cards.

    150 parts172
  • 2 layers350 × 224.3 mmConsole, the printed circuit board in 3D

    Console

    danwerner21/TI99_22

    a 2022 replica of the classic TI/994a, using obtainable parts

    251 parts50
  • 2 layers99.7 × 99.1 mmC64 Z80 Module, the printed circuit board in 3D

    C64 Z80 Module

    tebl/C64-CPM-Cartridge

    A recreation of the CP/M cartridge for the Commodore 64.

    34 parts27
  • 4 layers308 × 225.4 mmE800j rev c, the printed circuit board in 3D

    E800j rev c

    codepainters/e800j

    Elwro 800 Junior replica

    483 parts16
  • 2 layers158.8 × 76.4 mmA2card template, the printed circuit board in 3D

    A2card template

    barbeque/apple-ii-softcard

    Z80 SoftCard clone for Apple II

    19 parts11
  • 2 layers364 × 203 mmCPU6S, the printed circuit board in 3D

    CPU6S

    Meisaka/CenMiniCom

    Centurion Minicomputer Schematics

    240 parts8
  • 2 layers299.2 × 180 mmCobra XP, the printed circuit board in 3D

    Cobra XP

    ceteras/Cobra-XP

    Derived from Cobra, an experimental board for testing all kind of mods.

    452 parts5MIT