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.