Micro 8088

April 27, 2024 · View on GitHub

IBM XT Compatible Processor Board based on Faraday FE2010/FE2010A chipset

Introduction

Micro 8088 is an easy to build IBM PC/XT compatible processor board. It uses a fairly common Faraday FE2010/FE2010A chipset, that implements most of IBM PC/XT LSIs (Intel 8xxx ICs) and glue logic. Micro 8088 uses SRAM ICs to implement the system RAM, and a Flash ROM IC to store the BIOS, further reducing the number of components, and simplifying the build process.

Micro 8088 V1.1 Assembled Board

Specifications

  • Processor: Intel 8088 or compatible, NEC V20
    • Supports IBM PC/XT standard 4.77 MHz CPU frequency and, when using FE2010A chipset, 7.16 MHz and 9.54 MHz CPU frequencies
  • Coprocessor: Intel 8087
  • Faraday FE2010/FE2010A chipset, implementing the following components:
    • One 8237 direct memory access controller (DMAC)
    • One 8259 programmable interrupt controller (PIC)
    • One 8254 programmable interval timer (PIT)
    • One 8255 programmable peripheral interface (PPI)
    • Clock generation, and glue logic
  • RAM: 512 KiB or 640 KiB base memory; Up to 192 KiB UMBs. Implemented using SRAM
  • ROM: 64 KiB. Implemented using 128 KiB Flash ROM
  • 8-bit ISA interface
  • PS/2 compatible keyboard connector; built in AT2XT converter

Hardware Documentation

Schematic and PCB Layout

Schematic - Version 1.1

PCB Layout - Version 1.1

PCB Layout - Version 1.2

PCB Layout - Version 1.3

Building Insturctions

Please refer to Building Instructions page for detailed instructions.

Faraday FE2010/FE2010A Information

Please refer to Faraday FE2010A documentation and Faraday FE2010 datasheet for detailed information about Faraday FE2010/FE2010A chipsets.

Note: CPU clock frequency switching (turbo mode) is only implemented in Faraday FE2010A chipset (not in FE2010).

Jumpers, Connectors, and Switches

P1 - PS/2 Keyboard

PinDescription
1Keyboard data
2Unused
3GND
4+5V
5Keyboard clock
6Unused

P2 - Speaker

PinDescription
1Speaker output
2Internal Speaker input*
3Unused
4+5V

Note: To enable internal speaker connect a jumper across pins 1-2

P3 - Reset Switch

PinDescription
1Reset input
2Ground

JP1 - Select Flash ROM area mapped to 0xF0000-0xFFFFF

PositionDescription
open (default)Map lower 64 KiB of the Flash ROM to 0xF0000-0xFFFFF
closedMap upper 64 KiB of the Flash ROM to 0xF0000-0xFFFFF

JP2 - Select X1 Crystal Frequency

PositionDescription
openUse 14.31818 MHz crystal
closed (default)Use 28.63636 MHz crystal

Note: 14.31818 MHz crystal supports 4.77 MHz and 7.16 MHz CPU clock frequencies; 28.63636 MHz crystal additionally supports 9.55 MHz CPU clock frequency

JP3 - RAM Chip Select Source

PositionDescription
open (default)Use SPLD (U16)
closedUse FE2010A (U3)

Note: FE2010A only generates RAM chip select for the base RAM (lower 640 KiB). It does not generate RAM chip select for UMBs, and therefore SPLD (U16) is required to implement UMBs

JP4 - Flash ROM Chip Select Source

PositionDescription
open (default)Use SPLD (U16)
closedUse FE2010A (U3)

Note: FE2010A does not generate chip select for memory write cycles, therefore it does not support in-system BIOS upgrades

SW1 - Reset Switch

Press SW1 to reset the system

SW2 - System Configuration

PositionDescription
SW2.1 = OFF, SW2.2 = OFFMDA or Hercules
SW2.1 = ON, SW2.2 = OFFCGA, 80x25
SW2.1 = OFF, SW2.2 = ONCGA, 40x25
SW2.1 = ON, SW2.2 = ONNone, EGA, or VGA
SW2.3 = OFFDisable keyboard 0xE0 scan code pass through
SW2.3 = ONEnable keyboard 0xE0 scan code pass through

SW3 - UMB Configuration

PositionDescription
SW3.1 = ONMap 0xC0000-0xC7FFF to RAM
SW3.2 = ONMap 0xC8000-0xCFFFF to RAM
SW3.3 = ONMap 0xD0000-0xD7FFF to RAM
SW3.4 = ONMap 0xD8000-0xDFFFF to RAM
SW3.5 = ONMap 0xE0000-0xEFFFF to RAM

Note: SPLD (U16) is required to implement UMBs. This switch is not used in systems without SPLD

Bill of Materials - Versions 1.1, 1.2, and 1.3

Micro 8088 project on Mouser.com - View and order all components except of the Faraday FE2010A chipset, and the PCB. Micro 8088 project on OSH Park - View and order the PCB.

Component typeReferenceDescriptionQuantityPossible sources and notes
PCBMicro 8080 PCB - Version 1.1, 1.2, or 1.31Refer to the RetroBrew Computers Board Inventory page for ordering information, or order from a PCB manufacturer of your choice using provided Gerber or KiCad files
Integrated CircuitU1Intel 8088, 80C88, or NEC V20 CPU1eBay, Mouser (expensive) - 968-CP80C88-2Z
Integrated CircuitU2Intel 8087 FPU1Optional, eBay
Integrated CircuitU3Faraday FE2010A1eBay, can be replaced with Proton PT8010AF
Integrated CircuitU4SST39SF010A Flash ROM, DIP-32 package1Mouser 804-39SF010A7CPHE
Integrated CircuitU5, U6AS6C4008 SRAM, DIP-32 package2Mouser 913-AS6C4008-55PCN
Integrated CircuitU7 - U974F573 Octal D-Type Latch3Mouser 595-SN74F573N
Integrated CircuitU10, U1174F245 Octal Bus Transceiver2Mouser 595-SN74F245N
Integrated CircuitU12, U1374F244 Octal Buffer2Mouser 595-SN74F244N
Integrated CircuitU1474F00 Quad 2-Input NAND Gate1Mouser 595-SN74F00. Important note: install either U14 or U16, not both together
Integrated CircuitU15PIC12F629 Microcontroller1Mouser PIC12F629-I-P
Integrated CircuitU16ATF16V8B SPLD1Mouser 556-AF16V8B15PU. Important note: install either U14 or U16, not both together
IC SocketU1, U2DIP-40, 600 mil socket2Mouser 649-DILB40P223TLF
IC SocketU3PLCC-84 through hole socket1Mouser 517-8484-11B1-RK-TP
IC SocketU4-U6DIP-32, 600 mil socket3Mouser 649-DILB32P223TLF
IC SocketU7-U13, U16DIP-20, 300 mil socket8Mouser 649-DILB20P-223TLF
IC SocketU14DIP-14, 300 mil socket1Mouser 649-DILB14P-223TLF
IC SocketU15DIP-8, 300 mil socket1Mouser 649-DILB8P223TLF
DiodeD11N41481Mouser 512-1N4148
LED              D2      3 mm, green LED indicator1      Mouser LTL-4231NHBP
TransistorQ1PN2222A, 2.54mm lead spacing1Mouser 512-PN2222ATA
CrystalX128.63636 MHz, 18 pF, HC-49/S1Mouser 717-9B-28.63636MAAJB
SpeakerSP112 mm speaker1Mouser 665-AT-1224TWTR
Tactile ButtonSW16 mm tactile button, right angle1Mouser 653-B3F-3152
DIP SwitchSW23 positions1Mouser 774-2063
DIP SwitchSW35 positions1Mouser 774-2065
ConnectorP16 pin Mini DIN, purple1Mouser 806-KMDGX-6S-BS
Pin HeaderP2, JP3-JP44 pin header, 2.54 mm pitch2Mouser 649-68002-104HLF
Pin HeaderP3, JP1-JP22 pin header, 2.54 mm pitch3Mouser 649-68002-102HLF
CapacitorC1 - C170.1 uF, MLCC, 5 mm lead spacing17Mouser 810-FG28X7R1H104KNT6
CapacitorC18 - C2010 uF, MLCC, 5 mm lead spacing3Mouser 810-FG28X5R1E106MR06
Trimmer CapacitorC216.5-30 pF, 5 mm lead spacing1Mouser 659-GKG30015. Note: Trimmer capacitor is used to fine-tune 14.31818 MHz OSC frequency, and it might be needed when using CGA graphics with composite display. If not using CGA with composite display, a 22pF or so ceramic capacitor can be used instead, such as Mouser 810-FG28C0G1H220JNT6
CapacitorC2247 pF, MLCC, 5 mm lead spacing1Mouser 810-FG28C0G1H470JNT6
CapacitorC230.01 uF, MLCC, 5 mm lead spacing1Mouser 810-FG28X7R1H103KNT6
Resistor ArrayRR14.7 k, bussed, 10 pin SIP1Mouser 652-4610X-1LF-4.7K
Resistor ArrayRR210 k, bussed, 10 pin SIP1Mouser 652-4610X-1LF-10K
Resistor ArrayRR3, RR44.7 k, bussed, 6 pin SIP2Mouser 652-4606X-1LF-4.7K
Resistor ArrayRR510 k, bussed, 6 pin SIP1Mouser 652-4606X-1LF-10K
ResistorR133 ohm, through hole1Mouser 603-MFR-25FBF52-33R
ResistorR2, R347 ohm, through hole2Mouser 603-MFR-25FBF52-47R
ResistorR4, R5470 ohm, through hole2Mouser 603-MFR-25FBF52-470R
ResistorR61 kohm, through hole1Mouser 603-MFR-25FBF52-1K
ResistorR710 kohm, through hole1Mouser 603-MFR-25FBF52-10K
ResistorR81 Mohm, through hole1Mouser 603-MFR-25FBF52-1M
FuseF11.1A polyfuse, 5.08 mm lead pitch1Mouser 650-RUSBF110-2
ISA BracketKeystone Electronics 92021Mouser 534-9202
Screw4-40 x 1/4" Screw2Mouser 534-9900

Firmware Documentation

System BIOS

Micro 8088 uses a modified version of Xi 8088 BIOS. The BIOS binary images are provided in BIOS directory. The BIOS source code is available in 8088_bios GitHub repository

Turbo Mode Switching

The BIOS keyboard handler uses the following key combinations to switch the CPU clock frequency:

  • Ctrl-Alt-Keypad - - Normal 4.77 MHz CPU clock frequency
  • Ctrl-Alt-Keypad * - Turbo 7.16 MHz CPU clock frequency
  • Ctrl-Alt-Keypad + - Turbo 9.55 MHz CPU clock frequency (works only on systems with 28.63636 MHz X1 crystal)

Note that the BIOS does not, and possibly can not check if the installed CPU and the FPU are actually capable of running at higher clock frequencies. Turning on the turbo mode in a system with 5 MHz CPU can make it unstable.

AT2XT Firmware

Micro 8088 integrates an AT2XT keyboard converter, implemented using PIC12F629 (U15). The firmware for this microcontroller is availabe from the minuszerodegrees.net and the Vintage Computer Federation AT2XT page. The HEX file with the firmware can be extracted from XTATKEY_094.zip.

SPLD Fuse Maps

An optional ATF16V8/GAL16V8 SPLD (U16) allows using spare SRAM space for UMBs, and implements Flash ROM write access. The fuse maps for the SPLD are provided in SPLD directory of this repository. The SPLD/micro_8088_prod.jed fuse map should be used for production applications.

Changes

  • Version 1.3
    • Update silkscreen:
      • SW2.3 - fix the description for the ON position
      • Add a warning about installing either U14 or U16, but not both
      • Update board version to 1.3
  • Version 1.2
    • Update silkscreen:
      • JP2 - change the default to Closed
      • Bracket - move rectangles to the back side, add circles around mounting holes on the front side
      • Remove the line around ISA connector
      • Use KiCad OSHW logo
      • Update copyright years to 2017-2018
      • Update board version to 1.2
  • Version 1.1
    • Recommend using 74F-series, and update the schematic and the silkscreen accordingly. 74F-series ICs are faster and slightly cheaper than 74ALS-series
    • Add 74F573 latch for latching A8-A11 signals. This fixes the DMA issue
    • Use 74F244 to buffer OSC and CLK signals
    • Use AS6C4008 for the second SRAM (U6) instead of AS6C1004. This resolves the AS6C1004 TTL compatibility issue
    • Use 74F00 for generating chip select signal for the second SRAM (U6), and for inverting the speaker signal
    • Add an optional SPLD (U16) to implement UMBs
    • Use 128 KiB Flash ROM instead of 32 KiB EEPROM. It is cheaper, and has twice more storage space
    • Use buffered /MEMR and /MEMW signals for SRAM and BIOS ROM
    • PCB dimensions changed from 5" x 4.3" to 6" x 4"
  • Version 1.0
    • Initial version

Known Issues

  • Version 1.2
    • SW2.3 description on the back silkscreen incorrectly references SW1.3 for the ON position
  • Version 1.1
    • JP2 description on the back silkscreen suggests that the default JP2 position is Open. Since the recommended chipset is FE2010A and the recommended crystal frequency is 28.63636 MHz, the default JP2 position should be Closed
    • Update the silkscreen near ISA bracket mounting holes: The rectangles should be moved to the back silkscreen, and screw head sized circles should be shown on the front skilscreen
  • Version 1.0
    • AS6C1008 (U6) does not have TTL compatible inputs causing instability with 640 KiB memory configruation
      • Workaround: use CMOS transceiver U11, e.g. 74AHCT245
    • DMA doesn't work properly.
      • This is due to A8-A11 address lines not being latched.
      • Workaround: add a 74F573 latch, and connect AA8-AA11 and A8-AA11 through it