Home‎ > ‎Sergey's Projects‎ > ‎Sergey's XT‎ > ‎


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

  • CPU: 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.
  • Bus: 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.
Design of the prototype system

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:
  • 8042 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.
  • 1.193182 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.
  • Two 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.
  • 8087 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 software compatibility.
  • BIOS implements advanced functions available on IBM AT and PS/2. This is still work in progress.
Prototype board runs most of IBM PC software (read - games) I've tested, and I blame incomplete BIOS implementation for issues with the rest of software.
Sergey Kiselev,
Mar 26, 2011, 8:54 AM
Sergey Kiselev,
May 6, 2011, 10:15 AM
Sergey Kiselev,
Mar 26, 2011, 8:54 AM