/micro_8088

Micro 8088 - IBM XT Compatible Processor Board based on Faraday FE2010 chipset

GNU General Public License v3.0GPL-3.0

Micro 8088

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

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

P2 - Speaker

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

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

P3 - Reset Switch

Pin Description
1 Reset input
2 Ground

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

Position Description
open (default) Map lower 64 KiB of the Flash ROM to 0xF0000-0xFFFFF
closed Map upper 64 KiB of the Flash ROM to 0xF0000-0xFFFFF

JP2 - Select X1 Crystal Frequency

Position Description
open Use 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

Position Description
open (default) Use SPLD (U16)
closed Use 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

Position Description
open (default) Use SPLD (U16)
closed Use 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

Position Description
SW2.1 = OFF, SW2.2 = OFF MDA or Hercules
SW2.1 = ON, SW2.2 = OFF CGA, 80x25
SW2.1 = OFF, SW2.2 = ON CGA, 40x25
SW2.1 = ON, SW2.2 = ON None, EGA, or VGA
SW2.3 = OFF Disable keyboard 0xE0 scan code pass through
SW2.3 = ON Enable keyboard 0xE0 scan code pass through

SW3 - UMB Configuration

Position Description
SW3.1 = ON Map 0xC0000-0xC7FFF to RAM
SW3.2 = ON Map 0xC8000-0xCFFFF to RAM
SW3.3 = ON Map 0xD0000-0xD7FFF to RAM
SW3.4 = ON Map 0xD8000-0xDFFFF to RAM
SW3.5 = ON Map 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 type Reference Description Quantity Possible sources and notes
PCB Micro 8080 PCB - Version 1.1, 1.2, or 1.3 1 Refer 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 Circuit U1 Intel 8088, 80C88, or NEC V20 CPU 1 eBay, Mouser (expensive) - 968-CP80C88-2Z
Integrated Circuit U2 Intel 8087 FPU 1 Optional, eBay
Integrated Circuit U3 Faraday FE2010A 1 eBay, can be replaced with Proton PT8010AF
Integrated Circuit U4 SST39SF010A Flash ROM, DIP-32 package 1 Mouser 804-39SF010A7CPHE
Integrated Circuit U5, U6 AS6C4008 SRAM, DIP-32 package 2 Mouser 913-AS6C4008-55PCN
Integrated Circuit U7 - U9 74F573 Octal D-Type Latch 3 Mouser 595-SN74F573N
Integrated Circuit U10, U11 74F245 Octal Bus Transceiver 2 Mouser 595-SN74F245N
Integrated Circuit U12, U13 74F244 Octal Buffer 2 Mouser 595-SN74F244N
Integrated Circuit U14 74F00 Quad 2-Input NAND Gate 1 Mouser 595-SN74F00. Important note: install either U14 or U16, not both together
Integrated Circuit U15 PIC12F629 Microcontroller 1 Mouser PIC12F629-I-P
Integrated Circuit U16 ATF16V8B SPLD 1 Mouser 556-AF16V8B15PU. Important note: install either U14 or U16, not both together
IC Socket U1, U2 DIP-40, 600 mil socket 2 Mouser 649-DILB40P223TLF
IC Socket U3 PLCC-84 through hole socket 1 Mouser 517-8484-11B1-RK-TP
IC Socket U4-U6 DIP-32, 600 mil socket 3 Mouser 649-DILB32P223TLF
IC Socket U7-U13, U16 DIP-20, 300 mil socket 8 Mouser 649-DILB20P-223TLF
IC Socket U14 DIP-14, 300 mil socket 1 Mouser 649-DILB14P-223TLF
IC Socket U15 DIP-8, 300 mil socket 1 Mouser 649-DILB8P223TLF
Diode D1 1N4148 1 Mouser 512-1N4148
LED               D2       3 mm, green LED indicator 1       Mouser LTL-4231NHBP
Transistor Q1 PN2222A, 2.54mm lead spacing 1 Mouser 512-PN2222ATA
Crystal X1 28.63636 MHz, 18 pF, HC-49/S 1 Mouser 717-9B-28.63636MAAJB
Speaker SP1 12 mm speaker 1 Mouser 665-AT-1224TWTR
Tactile Button SW1 6 mm tactile button, right angle 1 Mouser 653-B3F-3152
DIP Switch SW2 3 positions 1 Mouser 774-2063
DIP Switch SW3 5 positions 1 Mouser 774-2065
Connector P1 6 pin Mini DIN, purple 1 Mouser 806-KMDGX-6S-BS
Pin Header P2, JP3-JP4 4 pin header, 2.54 mm pitch 2 Mouser 649-68002-104HLF
Pin Header P3, JP1-JP2 2 pin header, 2.54 mm pitch 3 Mouser 649-68002-102HLF
Capacitor C1 - C17 0.1 uF, MLCC, 5 mm lead spacing 17 Mouser 810-FG28X7R1H104KNT6
Capacitor C18 - C20 10 uF, MLCC, 5 mm lead spacing 3 Mouser 810-FG28X5R1E106MR06
Trimmer Capacitor C21 6.5-30 pF, 5 mm lead spacing 1 Mouser 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
Capacitor C22 47 pF, MLCC, 5 mm lead spacing 1 Mouser 810-FG28C0G1H470JNT6
Capacitor C23 0.01 uF, MLCC, 5 mm lead spacing 1 Mouser 810-FG28X7R1H103KNT6
Resistor Array RR1 4.7 k, bussed, 10 pin SIP 1 Mouser 652-4610X-1LF-4.7K
Resistor Array RR2 10 k, bussed, 10 pin SIP 1 Mouser 652-4610X-1LF-10K
Resistor Array RR3, RR4 4.7 k, bussed, 6 pin SIP 2 Mouser 652-4606X-1LF-4.7K
Resistor Array RR5 10 k, bussed, 6 pin SIP 1 Mouser 652-4606X-1LF-10K
Resistor R1 33 ohm, through hole 1 Mouser 603-MFR-25FBF52-33R
Resistor R2, R3 47 ohm, through hole 2 Mouser 603-MFR-25FBF52-47R
Resistor R4, R5 470 ohm, through hole 2 Mouser 603-MFR-25FBF52-470R
Resistor R6 1 kohm, through hole 1 Mouser 603-MFR-25FBF52-1K
Resistor R7 10 kohm, through hole 1 Mouser 603-MFR-25FBF52-10K
Resistor R8 1 Mohm, through hole 1 Mouser 603-MFR-25FBF52-1M
Fuse F1 1.1A polyfuse, 5.08 mm lead pitch 1 Mouser 650-RUSBF110-2
ISA Bracket Keystone Electronics 9202 1 Mouser 534-9202
Screw 4-40 x 1/4" Screw 2 Mouser 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 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