Prior to designing and ordering PCBs I built a prototype, using an ISA prototype board, and point to point soldering technique (that was an extreme :-). Which was proven to be the right thing to do. It allowed me debugging the system (initial schematics had a few issues), optimizing it, and adding some new hardware (RTC, second PIC, PS/2 support).
This page describes the specifications of my prototype, mostly for historical purposes.
Specifications of the prototype system
Design of the prototype system
8088-compatible. I tested the prototype with the original NMOS Intel
8088, CMOS Intel 80C88, Harris 80C88, NEC V20; 4.77 MHz - 8 MHz (turbo
mode), and even on 10 MHz with V20 CPU.
- Memory: 512 KiB
SRAM, 128 KiB Flash ROM + Memory extension board with 512KB SRAM, that
is mapped to 512 KiB - 640 KiB space, and also to UMB (0C0000h-0EFFFFh).
The UMB part is jumper selectable.
- On-board peripherals: two 8259 PICs, 8237-5 DMA, 8254 PIT, 8042 keyboard controller (AT-compatible), and DS12C887 RTC.
8-bit ISA with some signals on 16-bit (AT) part like IRQ10 - IRQ15
lines and non-latched address lines LA*. Later are to enable
compatibility with Cirrus Logic CL-GD54xx VGA cards.
The prototype system is a hybrid of IBM PC/XT, IBM AT and IBM PS/2. The closest IBM system is probably PS/2 model 30.
Some differences of my design from IBM PC/XT:
keyboard controller instead of a shift register and a 8255 used in the
original IBM computer. It simplifies design, and also allows using AT or
PS/2 keyboards, and even PS/2 mice. (I don't have XT keyboard, and they
are not that easy to get. But PS/2 keyboards are still available, and
many USB keyboards will work with PS/2 with a simple adapter that is
frequently supplied together with the keyboard).
- SRAM instead of DRAM - less ICs, no need for memory refresh circuit.
- SRAM and flash EEROM are directly connected to ISA bus, there are only 3 CMOS memory chips so bus load is not an issue.
MHz clock for feeding the 8254 PIT is produced by a 74LS92 divide-by-12
counter, instead of using PCLK output of 8284. This makes PIT input
frequency independent from CPU speed.
- Turbo mode is implemented
using F/C input and an oscillator connected to EFI input of 8284 clock
generator. Turbo mode could be toggled either using a switch or by
software using 61h port.
Similarities to IBM AT and IBM PS/2:
- AT-compatible RTC / CMOS setup memory chip.
- 8042-compatible keyboard / mouse controller.
interrupt controllers (PICs) in cascade configuration, like in IBM AT.
This gives 15 hardware interrupts in total, 5 of them are routed to the
system board itself: IRQ0 - timer, IRQ1 - keyboard, IRQ8 - RTC, IRQ12 -
PS/2 mouse, IRQ13 - 8087 co-processor. Rest are available on ISA bus.
co-processor uses IRQ13 for exceptions reporting (instead of NMI on IBM
PC/XT). The IRQ13 interrupt service emulates NMI by calling INT 2 for
- BIOS implements advanced functions available on IBM AT and PS/2. This is still work in progress.
board runs most of IBM PC software (read - games) I've tested, and I
blame incomplete BIOS implementation for issues with the rest of