Microelectronics | 80386DX ISA SINGLE BOARD MICROCOMPUTER

Synopsis

Living in the early 1990s along with the technological advancements in computing and microelectronics was a rewarding experience. Coming from a former communist country where we had no access to technology, let alone latest ones, everything shifted with the beginning of the decade. By chance I had the opportunity to own a very high performance computer for that period. It was an 80386SX based machine running at 25 MHz. Further equipment included 2 Mb RAM, integrated AcuMOS AVGA2 card with 256 K graphics memory, and a 40 Mb Seagate hard disk drive. All packed in a Kenitec desktop case and connected to a 12" AOC monochrome VGA monitor. I discovered modern operating systems, games, and -- drum roll, please -- computer programming. This is the context that marked my life in terms of computers. It changed it completely, shifting my perspective to 180 degrees.

Let's put history aside for a moment and let's concentrate on the motivation. Why would somebody ever attempt to build a vintage computer system? Let alone design one from scratch in 2019? This is over 30 years old technology that is pretty useless now. All period correct computer software can be now run in software emulators on any platform. Mobile phones have tremendous computing power. Tablet computers dominate the mobile market. Then why build such thing? The answer could be very biased. Let's say nostalgia and -- why not? -- because of the engineering challenges. Sure I can buy any 80386DX based mainboard from the big auction site. But it would be better if (sic) I'd built it myself.

Then let's dig into the specifications and my choice of components then.

Hardware Specifications

  • 32-bit 80386DX CPU
  • 32-bit 80387DX NPU
  • 128 K Cache System
  • 32 Mb RAM (16 Mb RAM in BANK0 and 16 Mb RAM in BANK1)
  • Standard 80386DX AMI BIOS
  • 8042-class PS/2 Keyboard and Mouse Controller
  • OPTi Chipset (82C495XLC and 82C206)
  • Minimal Glue Logic
  • Port 80h On-board Diagnostics
  • ISA-board class construction

These are the main specifications of this system design. I have chosen to go with simple approach, using a verified design solution based on OPTi chipset. This reduces the integrated circuit count, power consumption, and connection wiring design errors. Also a smaller ISA card footprint translates into smaller fabrication costs -- which unfortunately are expensive anyway. I tried to stay away from surface mounted parts as much as I could. However the 82C495XLC system control chip comes only in PQFP-160 package. That is a lot of pins to solder.

The schematic that I produced is the result of about one month of sustained work. In order to accomplish this system design, I studied thoroughly the following documents.

  • Intel 80386DX Datasheet
  • Intel 80387DX Datasheet
  • OPTi 82C495XLC Datasheet
  • OPTi 82C206 Datasheet
  • VIA VT82C42 Datasheet
  • ISA-bus Specifications and Pinout
  • SIMM Design and Pinout Documentation

However some parts involved in this system design have no datasheet available. I got to know them because I have seen them being used on a lot of period correct mainboards. This calls for reverse engineering as it is the only way I could accomplish the schematic. How I did it? I bought three or four generic 80386DX boards from the local flea market and observed the connections and layout. It was a tedious work and it accounted for most of the time spent designing this microcomputer. I hand-drew all these mini-schematics on paper and analyzed them by comparison to existing designs published in technical literature such as Integrated Circuit Systems Data Book, 1995 edition. And other data books and systems design literature that I have as well. Low-level programming background also helped a lot while working with address and data signals. I don't claim that the produced designs are entirely correct but it is the best I could do. Sometimes I just used my electrical engineering knowledge and engineering common sense to design and interconnect the modules. In the end I have translated everything into a CAD program. Oh, not to mention that I routed all the ~8,400 wires by hand on a four layer printed circuit board. Computer assisted design software has become a serious performer but the human brain far exceeds any existing software to date. At least this is what I like to believe...

So in addition the following work was carried in order to design this microcomputer.

  • Reverse Engineering of Wiring on HM8226
  • Reverse Engineering of Wiring on IMI SC425APB
  • Reverse Engineering of Wiring on Interfacing Cache Memory Banks
  • Reverse Engineering of Wiring on PS/2 Keyboard and Mouse Controller Interface
  • Reverse Engineering of ISA-bus Arbitration Signaling

In the end I should say that I have seen a lot of computer hardware over the time and I have also low-level repaired such hardware. Thus I am quite familiar with the x86 architecture.

Some parts of the schematic are optional. The system can run as expected without them. I am thinking here about the Port 80h On-Board Diagnostics section, buffered PC-SPEAKER output circuit, external battery support, 3.6 V LR2032 lithium-ion battery charging circuit, POWERGOOD internal signal generation, PS/2 mouse interface, and some jumpers. Sure the principial schematics can be reduced and the printed circuit board can simply omit these parts. Also jumpers can be hardwired. But I wanted to experiment a little bit so that I can expand my own knowledge.

Sourcing components for this project is not that hard at all. CPU, NPU, OPTi chips, ROM BIOS, and Keyboard controller can be acquired from auction sites. HM8226 and IMI SC425APB as well but you need to be patient to find them. Alternatively you can carefully rescue these from existing (dead, or not) PCBs. Just like I did. ROM BIOS can also be freely downloaded from the Internet and burned into any (EE)PROM integrated circuit of the right organization. You just need to make sure you find the right 80386DX 64K ROM BIOS image. The rest of the components are available at Mouser. I will put a bill of materials (BOM) down below for references. Printed circuit board can be ordered at OSHPark. It is expensive but built quality is high. You will find a link to the project in the BOM below.

This project is work in progress.
Current iteration of ASSY. 2486-SBMC-101 is VER. 1.6 REV. C
I decided to keep it a long time in review so that I can correct all errors and produce the -- expensive -- prototype PCB only once.

* * *

Laudatur ab his, culpatur ab illis. This project is provided as-is and is not for commercial purposes. It reflects my experimental work in microcomputer system design and should be treated as such. I release the schematic and circuit boards to the public for educational purposes. I did all this on my expense and in my free time. So if you like my work, please consider a donation.

Schematics

Fig. 1: Electrical Principial Schematic

Printed Circuit Boards

Fig. 2: Top Silkscreen

Fig. 3: Top Layer Printed Circuit Board

Fig. 4: Inner Bottom Layer Printed Circuit Board

Fig. 5: Inner Top Layer Printed Circuit Board

Fig. 6: Bottom Layer Printed Circuit Board

Fig. 7: Top Layer Printed Circuit Board - Simulation

Fig. 8: Bottom Layer Printed Circuit Board - Simulation

Bill of Materials (BOM)

The following list contains the parts that are required to assemble this microcomputer.

80386DX ISA SINGLE BOARD MICROCOMPUTER
IdentifierValueQtyNotesMouser Number
Printed Circuit BoardASSY. 2486-SBMC-1011VER. 1.6 REV. COrder from OSHPark
IC1-IC461C256AH-204256 Kbit SRAMOrder from eBay
IC561C64AH-20164 Kbit SRAMOrder from eBay
IC674ACT3731Octal 3-state D Latch595-SN74ACT373N
IC7, IC1574F2442Octal 3-state Buffer595-SN74F244N
IC8, IC2774F082Quad 2-input AND595-SN74F08N
IC927C512 80386DX ROM BIOS1512 Kbit ROM556-AT27C512R70PU
IC10-IC1774LS2457Octal Bus Transceiver595-SN74LS245N
IC1874F1251Quad 3-state Buffer595-SN74F125N
IC1974LS321Quad 2-input OR595-SN74LS32N
IC2074ALS5741Octal D Flip-Flop595-SN74ALS574BN
IC2174LS6881Magnitude Comparer595-SN74LS688N
IC22, IC23DM936827-segment DecoderOrder from eBay
IC2474LS071Hex Buffer (OC)595-SN74LS07N
IC2574LS041Hex Inverter595-SN74LS04N
IC2674F321Quad 2-input OR595-SN74F32N
IC28SC425APB1Clock GeneratorOrder from eBay
IC29LM3861Audio Amplifier926-LM386N-1/NOPB
IC30VT82C421Keyboard ControllerOrder from eBay
IC31HM82261Order from eBay
IC3274LS061Hex Inverter (OC)595-SN74LS06N
IC33CD40691CMOS Hex Inverter595-CD4069UBE
IC34OPTi 82C495XLC1System ControllerOrder from eBay
IC35OPTi 82C2061Peripheral ControllerOrder from eBay
IC36Intel A80386DX-33 IV1CPUOrder from eBay
IC37Intel A80387DX-331NPUOrder from eBay
T12N39061Small Signal Transistor512-2N3906BU
T22N39041Small Signal Transistor512-2N3904BU
T32N22221Small Signal Transistor610-2N2222
D1-D61N41486Small Signal Diode78-1N4148
C1-C34, C36-C37100 nF / 50 V37MLCC80-C322C104M5R-TR
C35, C38-C3922 pF / 50 V3MLCC80-C315C220J5G
C40-C4310 pF / 50 V4MLCC80-C315C100J5G
C44471 pF / 50 V1MLCC80-C315C471K5R
C45, C7147 nF / 50 V2MLCC80-C320C473K5R
C46, C63-C651 uF / 35 V4Tantalum Capacitor80-T350A105K035AT
C47-C50, C54-C5747 pF / 50 V8MLCC80-C315C470J5G
C51, C52, C58, C5956 pF / 50 V4MLCC80-C315C560J5G
C53, C60, C66, C68100 nF / 50 V4MLCC80-C322C104M5R-TR
C61, C62220 pF / 50 V2MLCC80-C315C221K5R
C672.7 nF / 50 V1MLCC80-C315C272K5R
C69, C7010 uF / 16 V2MLCC810-FK24X5R1C106K
C72220 uF / 6.3 V1Polymer Capacitor80-A758BG227M0JAAE18
C7310 uF / 25 V1Tantalum Capacitor80-T350E106M025AT
C74100 pF / 50 V1MLCC80-C315C101K5R
C75-C8010 uF / 25 V6Tantalum Capacitor80-T350E106M025AT
R1, R19100 Ω1Carbon Resistor291-100-RC
R2, R28, R29, R31, R381 kΩ5Carbon Resistor291-1K-RC
R3, R510 kΩ2Carbon Resistor291-10K-RC
R451 kΩ1Carbon Resistor291-51K-RC
R62 MΩ1Carbon Resistor291-2M-RC
R7, R8, R36470 Ω3Carbon Resistor291-470-RC
R9, R10, R15150 Ω3Carbon Resistor291-150-RC
R11-R1422 Ω4Carbon Resistor291-22-RC
R16, R17, R20, R22330 Ω4Carbon Resistor291-330-RC
R18, R2333 Ω2Carbon Resistor291-33-RC
R21200 kΩ1Carbon Resistor291-200K-RC
R242.2 kΩ1Carbon Resistor291-2.2K-RC
R2547 kΩ1Carbon Resistor291-47K-RC
R26, R374.7 kΩ2Carbon Resistor291-4.7K-RC
R2710 kΩ1Trimmer Resistor72-T7RYA103KT20
R3051 Ω1Carbon Resistor291-51-RC
R32-R35, R39-R41, R43330 Ω8Carbon Resistor291-330-RC
RN1-RN59 x 4.7 kΩ5Bussed Resistor Network652-4610X-1LF-4.7K
RN69 x 1 kΩ1Bussed Resistor Network652-4610X-1LF-1K
RN7, RN87 x 2.2 kΩ2Bussed Resistor Network652-4608X-1LF-2.2K
RN9-RN117 x 4.7 kΩ3Bussed Resistor Network652-4608X-1LF-4.7K
RN124 x 4.7 kΩ1Bussed Resistor Network652-4605X-1LF-4.7K
RA1-RA54 x 22 Ω5Resistor Array652-4608X-2LF-22
L1-L9BL03RN29Ferrite Bead81-BL03RN2R1P1A
X114.31818 MHz Crystal1Quartz Crystal73-XT49S1431-20
X232.768 kHz Crystal1Quartz Crystal520-TFC3X8-X
DISP1, DISP2RFT VQB372Common CathodeOrder from eBay
LED15 mm Green LED1Power Indicator755-SLR-56MC3F
LED25 mm Orange LED1Turbo Indicator755-SLR-56DC3F
IC Socket28-pin5IC1-IC5575-11043328
IC Socket20-pin12IC6, IC7, IC20, IC21, IC10-IC17575-193320
IC Socket14-pin10IC8, IC18, IC19, IC24-IC28, IC32, IC33575-193314
IC Socket28-pin1IC9575-11043628
IC Socket8-pin2IC29, IC31575-193308
IC Socket40-pin1IC30575-193640
IC Socket132-pin1IC36575-510-313214
IC Socket68-pin1IC37437-5108706811061101
SIMM Socket30-pin8SIMM1-SIMM8Order from eBay
SPK1Electromagnetic Speaker185 dBA665-AT-1224TWTR
Battery Holder*20321BT1122-2420-GR
JP1, JP4-JP7, JP112-pin Header6Jumper649-68001-202HLF
JP2, JP3, JP8-JP103-pin Header5Jumper649-68001-203HLF
J3, J104-pin Header2Header649-68001-204HLF
J4-J7, J9, J112-pin Header6Header649-68001-202HLF
J83-pin Header1Header649-68001-203HLF
J16-pin Mini DIN Connector1PS/2 Keyboard571-5749265-1
J26-pin Mini DIN Connector1PS/2 Mouse571-5749265-1
ISA Card BracketCustom Built13D PrintedN/A

Notes:

  • 61C64 and 61C256 are available at Mouser but not in the right package. Either you build an ugly and dirty adapter or you source the SRAMs in the required package from electronic parts auction sites.
  • TTL ICs need to be of Low-power Schottky (LS) type with a typical gate delay of about 10 ns. In some key places in the schematic I went for Advanced Schottky (74F) series parts with a typical gate delay of about 1.7 ns.
  • In place of the LS series ICs you can also use 74HCT, 74ACT, or 74AHC series parts. In place of the F series ICs you can use 74FC parts.
  • 27C512 EPROM is largely unnecessary if you can't find one. You can go for a 28C256 EEPROM part instead. I went for the 27C series because of the looks. I always found UV erasable ROMs look quite nice.
  • 80386DX ROM BIOS image that I used is inscribed inside an original AMIBIOS integrated circuit. You can either source an original ROM BIOS integrated circuit or download the one I used and burn it into the said 27C512 or 28C512 (E)EPROM integrated circuit. Refer to 80386DX ROM BIOS section down-below for more information.
  • DM9368 decoders are mandatory for the Port 80h On-Board Diagnostics circuit. Sure other decoder ICs could -- and should partially -- work but DM9368 have internal current limiting resistors for the 7-segment elements. I went for this approach in order to reduce parts count.
  • SC425APB can be replaced with standard integrated metal-can oscillators. Although this approach would have made for a simpler parts sourcing procedure, it would have increased parts count in order to support multiple CPU clocks. If you don't succeed sourcing a SC425APB master clock generator then just build an adapter. Read the SC425APB Replacement section for more information.
  • VT82C42 can be replaced by other PS/2 capable keyboard controllers ICs such as HT6542B. Or one of the original 8242 microcontrollers. But you need to source one with PS/2 compatible software written inside.
  • If you don't find the Hualon Micro HM8226 integrated circuit then just install jumper in position JP11.
  • I have recovered the 82C495XLC from a working 80386DX mainboard. I have seen a lot of 82C495XL parts on eBay but I don't know what is the difference between the ones with the C suffix and the ones without it. They might work as well in this system design.
  • Instead of OPTi 82C206 I have used a Siemens SAB82C206N part. This came with a cheaper transportation fee than the OPTi part.
  • Ferrite beads are used to reduce electromagnetic noise on digital and analog transmission lines. Sure the circuit will work without them as well but it is better to be on the safe side. Less circuit debugging is better.
  • I chose to use the miniature bubble displays made by RFT because I have a box full of them, all NOS. These seldom appear on eBay. And while not as readable as conventional 7-segment displays, they sure look nice enough to be used in such a project. The deep red color is nice to observe as well.
  • The coin cell battery must be of LIR2032 type since these can source 3.6 V instead of the most common 3 V for CR2032 batteries. The reason for this choice is the added diode in series with the battery. This will add an additional 0.7 V drop so battery voltage seen by 82C206 is about 3 V. In case of the 3 V battery the voltage seen by this IC would've been too low peaking at about 2.3 V. However take very good care with the charging circuit. Lithium-Ion batteries are normally charged on a strictly controlled process. This very basic charger with a resistor in series is more suitable for charging NiMH batteries. But the LIR battery can be charged as well. Please observe temperature while charging since Lithium-Ion batteries can burst in flames in a split second damaging the board and possibly injuring you. If you don't trust the charger then really don't use it. Better remove JP1, D1, and R1 from the PCB assembly or stop using a LIR battery. Use the 6V external battery pack only.
  • For the ISA card bracket I went for a custom 3D printed one. Sure I could've adapted an existing bracket but building one on the exact requirements of this board would be better. Refer to 3D Printed ISA Bracket section down-below for more information.

Assembly Instructions and Notes

Here is a list of things you need to pay attention to should you decide to build such ISA system backplane.

  • Inspect the printed circuit board once you receive it. Normally OSHPark produces very good quality boards but one never knows. There must be absolutely no short circuits on the printed tracks. If the PCB is faulty then it can damage valuable electronic components and other ISA cards that you might install in the system.
  • Carefully observe polarity of the tantalum electrolytic capacitors on the silkscreen. I made sure there is no error on the printout so even if it appears weird, please do respect the markings. Tantalum capacitors will violently explode and burst in fire if mounted in reverse, possibly injuring you.
  • Take your time to solder all the components on the board. There are a lot of solder points and if you don't have patience in general, then this project might not be for you.
  • Use a temperature-controlled soldering station and quality solder. Take care not to leave solder bridges as any short circuit will most likely lead to failures.
  • In order to ease-up the PCB assembly, I would suggest mounting parts in the following order: OPTi 82C495XLC, diodes, resistors, ferrite beads, quartz crystals, 7-segment displays, IC sockets, resistor networks, transistors, MLCC capacitors, tantalum capacitors, polymer capacitor, variable resistor, LEDs, SIMM sockets, battery holder, speaker, various connectors, jumpers.
  • Install the metal card bracket only after you have soldered all components on the PCB.
  • At the end, clean any flux residues with isopropyl alcohol.

Principle of Operation

This microcomputer is PC AT compatible by all means. That means all software written originally for the PC AT platform will be fully compatible with this system. Think MS-DOS, Microsoft Windows, and DOS games. You can run Unix-class operating systems as well. For this reason I had to follow closely the PC AT architecture during the system design process.

The system block diagram allows for a better understanding of the principle of operation.

Fig. 1: System Block Diagram

The microcomputer is controlled by the OPTi 82C495XLC system controller integrated circuit. This chip has the following features.

  • support for 80386DX CPUs running at 25 MHz, 33 MHz, and 40 MHz
  • support for 80387DX co-processor
  • internal buffers and termination to reduce external parts count
  • internal CD and CA bus pull-up resistors to reduce external parts count
  • write-back direct-mapped cache in 32/64/128/256 KB organization (2-1-1-1 or 3-2-2-2 cache cycles)
  • on-chip comparator determines cache hit/miss
  • burst line fill during cache read-miss
  • optional 0 WS or 1 WS for cache write-hit
  • up to 64MB of local high-speed, page mode DRAM memory space
  • shadow RAM support for system, video, and adapter card BIOS
  • optional caching of shadowed video BIOS
  • hidden refresh support to enhance system performance
  • turbo/slow speed selection
  • ISA bus clock selectable by division of the CLKI signal by /6, /5, /4, or /3
  • CAS-before-RAS refresh reduces power consumption

Additional mainboard logic is carried by the OPTi 82C206 integrated peripheral controller. This chip handles the following functions.

  • two 8237 DMA controllers with seven DMA channels operating in either single, block, demand, or cascade modes
  • two 8259A interrupt controllers with thirteen IRQ channels
  • one 8254 timer/counter with two timer/counter channels
  • one 146818A-compatible real-time clock
  • one 74LS612 memory mapper
  • an additional 64 bytes of CMOS RAM
  • 8 MHz DMA clock with programmable internal divider for 4 MHz operation
  • 16 MB DMA address space
  • programmable wait states for DMA cycles

PS/2 keyboard and mouse are carried by the VT82C42 chip. This is vastly superior to original 8042-class microcontrollers with embedded software. The VIA chip includes hardware logic for very fast decoding of keyboard and mouse commands.

To simplify a little bit the operation of this microcomputer, we can sum it up simply as follows.

  • Upon power application, the chipset hardware is initialized by means of the POWERGOOD signal.
  • The chipset initializes the CPU, NPU, keyboard controller, and integrated peripheral controller.
  • The CPU begins fetching instructions from ROM BIOS.
  • BIOS does hardware tests and if everything passes it attempts to load an operating system from either a floppy or a hard disk drive.
  • Then software takes full control over the hardware logic.

Interface Connectors Description

Following are described all the interface connectors and their respective pinouts.

INTERFACE CONNECTORS DESCRIPTION
IdentifierValueNotesPinout
J1PS/2 Keyboard1 - Keyboard Data
2 - NC
3 - Ground
4 - +5 V
5 - Keyboard Clock
6 - NC
J2PS/2 Mouse1 - Mouse Data
2 - NC
3 - Ground
4 - +5 V
5 - Mouse Clock
6 - NC
J3External Battery6 V Battery Pack1 - +6 V
2 - NC
3 - Ground
4 - Ground
J4Reset Switch1 - Reset Signal
2 - Ground
J5Turbo Switch1 - Turbo Signal
2 - Ground
J6Turbo LED1 - LED Anode
2 - LED Cathode
J7Power LED1 - LED Anode
2 - LED Cathode
J8Keyboard Lock1 - Ground
2 - Keyboard Lock Signal
3 - Ground
J9Power Good200 msec Delayed +5 V Signal1 - Power Good Signal
2 - Ground
J10PC Speaker1 - Speaker Data Output
2 - Internal Speaker Data Output
3 - Ground
4 - +5 V
J11Amplified PC SpeakerConnect to Sound Card Line-In1 - Ground
2 - Audio Signal

About Power Good

The Power Good signal is used to let the board know that the power supply rails have reached operating voltages and amperages. Normally this is provided by all AT class power supplies on pin 1 of the mainboard power supply connector. Since this board is going to be powered directly from the ISA bus, there is absolutely no knowledge about this signal. Thus I designed a simple RC circuit to emulate it while also providing an option to connect to an external Power Good signal through J9. It is very unlikely that you will find an ISA system backplane that will have a Power Good signal header. But I have provided it anyway. However the internal RC circuit will provide the required 200 msec delayed +5 V signal that will initialize the on-board logic. So normally connect jumper to JP3 pins 1-2.

About PC Speaker

My original PC back in 1993 was equipped only with a PC Speaker. Thus I have experimented all games only with PC Speaker sound. As much as I hate or love it, I have provided some extra PC Speaker configuration options for nostalgia reasons. So there are four PC Speaker modes as follows.

  • External PC Speaker: Off-board electrodynamic speaker connect directly to J10.
  • Internal PC Speaker: On-board speaker. Connect jumper between pins 2-3 of J10.
  • Amplified PC Speaker: Buffered, volume controlled line-out signal. Disconnect jumper from pins 2-3 of J10 and connect J11 directly to sound card Line-In, respecting the polarity. Alternatively you can connect an off-board electrodynamic speaker directly to this header. Note that pins 3 and 4 of the PC Speaker connector will overlap pins 4 and 3 (precisely in this order) of J10. This is as designed and it is mandatory for the PC Speaker to work in amplified, volume controlled mode.
  • No PC Speaker: Completely turned off. Disconnect jumper from pins 2-3 of J10 and disconnect any speaker connected to J10 or J11.

Historical Note: I always liked the PC Speaker soundtrack of the Konami Knightmare game ported by Todor Todorov to MS-DOS. But there was no way to turn up or down the volume. And there is the original Duke Nukem (DN1, DN2, and DN3) which I always would have liked to have the ability to turn down the volume for. Playing without sound effects was no fun and with sound effects was disturbing for the other people in the house.

About Port 80h On-board Diagnostics

As soon as the PC will perform the power on self-tests (POST) the BIOS will start to put human readable hexadecimal codes on hardware port 0x80h. This is very useful for debugging purposes should the PC freeze during the initialization procedure. In order to catch these codes a simple circuit based on an octal flip-flop and two 4-bit BCD to 7-segment decoders. During POST, hexadecimal codes will be displayed with very high speed. But in case the computer freezes, the last code remains visible on the two displays.

The decimal points of the two displays are hardwired as reset indicator. Thus while you press the reset button or if the hardware is in initialization mode -- Power Good signal is not yet active -- the H elements of the two displays will be lit.

Note: There is software out there in the wild that will perform casual writes to port 0x80h. This was a normal behavior for software programmers since they could do several tricks such as adding small delays in programs. So you might see different messages displayed during normal operation of several computer programs. However these do not represent diagnostic codes and can be safely ignored.

System Configuration

I have provided some basic system configuration options under the form of jumpers. The star (*) symbol signifies the default option.

SYSTEM CONFIGURATION
IdentifierValueNotesConfiguration
JP1BATTInternal Battery ChargeCL: Charge
OP: Normal (*)
JP2CMOSNVRAM Status1-2: Clear
2-3: Normal (*)
JP3POWERGOODPower Good Signal Source1-2: Internal (*)
2-3: External
JP4MONITORMonitor TypeCL: Monochrome
OP: Color (*)
JP5, JP6, JP7CPU CLK80386DX ClockCL, OP, OP: 25 MHz
OP, CL, OP: 33 MHz (*)
OP, CL, CL: 40 MHz
JP8NPU CLK80387DX Clock Type1-2: Buffered (*)
2-3: Non-Buffered
JP9NPU RST80387DX Reset Signal1-2: Software Port 0xF1h
2-3: Synchronous with 80386DX (*)
JP10IRQ12IRQ12 Routing1-2: ISA BUS
2-3: PS/2 Mouse (*)
JP11TMRCLKPIC Timers Clock SignalCL: Always
OP: On Request (/XIOW Signal) (*)

System Memory Organization and Configuration

This microcomputer is equipped with dynamic random access memory (DRAM) under the form of eight SIMMs.

SYSTEM DRAM CONFIGURATION
RAM SizeBANK #0BANK #1Notes
1 MB4 x (256 K x 9)Empty
2 MB4 x (256 K x 9)4 x (256 K x 9)
4 MB4 x (1 M x 9)Empty
5 MB4 x (256 K x 9)4 x (1 M x 9)
5 MB4 x (1 M x 9)4 x (256 K x 9)
8 MB4 x (1 M x 9)4 x (1 M x 9)
16 MB4 x (4 M x 9)Empty
20 MB4 x (1 M x 9)4 x (4 M x 9)
20 MB4 x (4 M x 9)4 x (1 M x 9)
32 MB4 x (4 M x 9)4 x (4 M x 9)Entirely Cached

The main memory is entirely cached for faster access. System cache static random access memory (SRAM) organization is described in the following table.

SYSTEM CACHE SRAM CONFIGURATION
Cache SizeTag SRAM SizeCache SRAM SizeCacheable RAM Size
128 KB1 x (8 K x 8)4 x (32 K x 8)32 MB

Memory speed requirements are listed below.

MEMORY SPEED REQUIREMENTS
CPUTag SRAMCache SRAMDRAM
33 MHz15 ns20 ns (R/W: 1 WS)80 ns (R/W: 0 WS)

IRQ Mapping

OPTi 82C206 emulates two Intel 8259A interrupt controllers in a master-slave configuration. Thus a maximum of 16 interrupt requests are available for system hardware. The IRQ map is listed below.

IRQ MAPPING
IRQ ChannelPICMapOther Uses
IRQ0MasterSystem TimerN/A
IRQ1MasterPS/2 KeyboardN/A
IRQ2MasterIRQ9Cascaded IRQ8-IRQ15
IRQ3MasterFreeCOM2 and COM4
IRQ4MasterFreeCOM1 and COM3
IRQ5MasterFreeLPT2 and LPT3, Sound Card
IRQ6MasterFreeFloppy Disk Controller
IRQ7MasterFreeLPT1, Sound Card
IRQ8SlaveReal-Time Clock (RTC)N/A
IRQ9SlaveIRQ2IRQ2 maps to IRQ9
IRQ10SlaveFreeSCSI, NIC, T. IDE Channel
IRQ11SlaveFreeSCSI, NIC, Q. IDE Channel
IRQ12SlavePS/2 MouseFree
IRQ13SlaveNumeric Processor (NPU)N/A
IRQ14SlaveFreePrimary IDE Channel
IRQ15SlaveFreeSecondary IDE Channel

Notes on IDE interface IRQ mapping as follows.

  • Primary IDE channel uses I/O address 01F0h-01F7h and IRQ14.
  • Secondary IDE channel uses I/O address 0170h-0177h and IRQ15.
  • Tertiary IDE channel uses I/O address 01E8h-01EFh and IRQ11 or IRQ12.
  • Quaternary IDE channel uses I/O address 0168h-016Fh and IRQ10 or IRQ11.

DMA Mapping

OPTi 82C206 emulates two Intel 8237 direct memory access (DMA) controllers in a master-slave configuration. Thus a maximum of 7 DMA channels are available for system hardware. The DMA map is listed below.

DMA MAPPING
DMA ChannelBus TypeTransfersMap/Other Uses
DMA016-bit8-bitN/A
DMA18/16-bit8-bitSound Card, SCSI
DMA28/16-bit8-bitFloppy Disk Controller
DMA38/16-bit8-bitLPT1 (ECP Mode)
DMA4N/A16-bitDMA Controller Cascade
DMA516-bit16-bitSound Card, SCSI
DMA616-bit16-bitSCSI
DMA716-bit16-bitSound Card, SCSI

I/O Address Range

For the sake of completeness I am adding here the standard I/O address ranges of various ISA peripherals that can be part of a PC/AT-class microcomputer. Although the I/O address ranges could be wildly varied for exotic ISA cards, most of the dedicated hardware has well known addresses which are assigned as follows.

I/O ADDRESS RANGE
AddressAssignment
0x130hSCSI
0x140hSCSI
0x168hQuaternary IDE Channel
0x170hSecondary IDE Channel
0x1E8hTertiary IDE Channel
0x1F0hPrimary IDE Channel
0x200hGame Port
0x220hSound Card
0x240hSound Card
0x278hLPT2 or LPT3 using IRQ5
0x280hNIC, LCD Display I/O
0x2A0hNIC
0x2E8hCOM4 using IRQ3
0x2F8hCOM2 using IRQ3
0x300hNIC
0x320hSCSI, NIC, ESDI Hard Disk Drive Interface
0x330hSCSI, MPU-401 MIDI Interface
0x340hSCSI
0x360hNIC
0x378hLPT1 using IRQ7 in Color Systems
0x388hFM Sound Synthesis
0x3BChLPT1 using IRQ7 in Monochrome Systems
0x3E0hPCMCIA Controller
0x3E8hCOM3 using IRQ4
0x3F8hCOM1 using IRQ4
0x678hLPT2 or LPT3 Extended Parallel Port (EPP) using 0x278h
0x778hLPT1 Extended Parallel Port (EPP) using 0x378h (Color Systems)
0x7BChLPT1 Extended Parallel Port (EPP) using 0x3BCh (Monochrome Systems)

80386DX ROM BIOS

I have rescued this original AMIBIOS ROM integrated circuit from a working generic 80386DX / 40 MHz mainboard. Before I removed it from the board, I dumped its contents as a .BIN file which you can download. You need to program a 27C512 or a 28C512 (E)EPROM integrated circuit with this binary image in order to use the microcomputer. I don't know whether other BIOS types will work or not with this board, but this one does. I think mostly because the mainboard was based on the OPTi 82C495XLC system controller chip -- which I have also rescued for this project. The BIOS string identifies a Jetway branded mainboard but there is no visual identification or code on the printed circuit board to back-up this hypothesis. However I have seen a bunch of similar -- read: near identical -- mainboards with minimal layout differences; all unbranded. The attack of the clones, perhaps?

BIOS File: 80386DX.BIN
BIOS String: X0-0803-001276-00101111-080893-OP495XLC-H

While this BIOS image is created by American Megatrends Inc. (AMI), it would have been really fun if I had the time to program my own version of the BIOS but unfortunately it is not possible at this moment. But if you'd like to, please open a GitHub repository where collective effort could be helpful. I will surely put a link to that repository on this page.

SC425APB Replacement

An adapter can be build in order to replace the International Microcircuits Incorporated (IMI) SC425APB master clock generator integrated circuit. However in order to provide full functionality on changing CPU frequencies by means of the JP5, JP6, and JP7 jumpers, the circuit becomes a little bit complicated. For the sake of simplicity I will describe a replacement circuit locked for 33 MHz CPU clock. In this case, the CPU frequency selector jumpers become useless.

So the adapter circuit needs to provide three main frequencies as follows.

  • 66 MHz for the OPTi 82C495XLC internal state machine.
  • 33 MHz for the CPU and NPU clocks.
  • 14.31818 MHz for division within the OPTI 82C495XLC chip, source for the the OPTi 82C206 internal timers. This frequency is also used by ISA bus.

The adapter circuit to SC425APB IC socket pin mapping needs to be done according to the following description.

  • 66.66 MHz frequency from a metal can oscillator maps to pin 11.
  • 33.33 MHz frequency from a /2 divider built around the 74F74 integrated circuit maps to pin 8.
  • 14.31818 MHz frequency from a a series oscillator built around 74F04 maps to pin 13. Crystal input for this circuit maps to pins 2 and 3.
  • Pin 7 is VSS signal and pin 14 is VCC signal.
  • Pins 1, 4, 5, 6, 9, 10, and 12 are not connected.

This circuit can be made very compact in SMD technology. The 74F74 D-type dual flip-flop can be replaced by the SN74LVC1G74 single D-type flip-flop integrated circuit. 74F04 hex inverter can be replaced by SN74LVC3GU04 triple inverter. With a little bit of tweaking around you can build this adapter under the form of a DIP-14 PCB to insert directly in the SC425APB socket.

3D Printed ISA Bracket

Because my searches for a compatible ISA bracket were not that successful and because this is an entirely DIY project, I decided to attempt to build one myself. While I do have some experience with AutoCAD, I haven't used this computer program since 2006. Thus I decided to try a different approach for the sake of learning something new. So I went with OpenSCAD this time.

However, the ISA bracket is work in progress at this moment.

Construction and Pictures

TO BE CONTINUED SOON At the moment I am waiting for the PCB to arrive from the Factory.


Copyright © 2004- Alexandru Groza
All rights reserved.
VER. 1.0 | REV. A