It is vital to set up the I/O devices in software as part of the initialisation sequence. If this is not done the board will not function correctly. The SCPC88 BIOS EPROM will handle this. See Section 7 for information on how to do this.
There are two types of I/O devices which the 8088 can access.
The STEbus is requested for an I/O access from 200H to 0FFFH. This selection is automatic, and the programmer should locate boards at the standard PC-compatible I/O addresses shown in the table below.
STEbus I/O address | Board resident | PC-compatible function |
---|---|---|
200 - 20F | Game control interface | |
210 - 217 | Expansion unit | |
278 - 27F | Parallel printer port 2 | |
2B0 - 2DF |   | Alternate EGA |
2F8 - 2FF | SPCOM | Serial port 2 |
300 - 31F | Prototyping board | |
320 - 32F | Hard disk controller | |
378 - 37F | SPCOM | Parallel printer port 1 |
380 - 38C | SLDC Serial RS232 port or BSC controller 2 | |
390 - 393 | Cluster controller | |
3A0 - 3AF | BSC controller 1 | |
3B0 - 3BB | SPEGA | MDA (Monochrome Display Adapter) |
3BC - 3BF | SPCOM | Printer port of MDA |
3C0 - 3CF | SPEGA | EGA (Enhanced Graphics Adapter) |
3D0 - 3DF | SPEGA | CGA (Colour Graphics Adapter) |
3F0 - 3F7 | SPDC | FDC (Floppy Disk Controller) |
3F8 - 3FF | SPCOM | Serial port 1 |
Note that a single (primary) SPCOM can be accessed at a choice of addresses, from , 378, and 278 to perform as the printer interfaces of the PC or MDA.
These integrated peripherals appear from 000H to 200H. These will be set up by the BIOS EPROM, and should not normally be changed.
I/O address | bit | I/O register | |||
---|---|---|---|---|---|
0000 to 000F | DMA controller (Intel 8237 compatible) | ||||
0010 to 0021 | Interrupt controller (Intel 8259 compatible) | ||||
0040 to 0043 | Timer (Intel 8253 compatible) | ||||
0060 | Keyboard data register | ||||
0061 | Keyboard control register | ||||
0 | Gate speaker timer channel | ||||
1 | Gate speaker data | ||||
2 | Switch register select | ||||
3 | Not used | ||||
4 | Disable parity check | ||||
5 | Disable IO check | ||||
6 | Enable keyboard clock | ||||
7 | Clear keyboard data register | ||||
0062 | Switch register | ||||
(Write) | 0 | Not used | |||
1 | 8087 installed | ||||
2 | System memory | ||||
3 | |||||
4 | Unwriteable | ||||
5 | |||||
6 | Number of floppy disk drives | ||||
7 | |||||
(Read) | If control bit 2 set: | If control bit 2 clear: | |||
0 | Not used | Video display selection | |||
1 | 8087 installed | links | |||
2 | System memory | Number of floppy disk drives | |||
3 | |||||
4 | Timer 2 output | ||||
5 | Timer 2 output | ||||
6 | I/O check | ||||
7 | Parity error | ||||
0063 | (write only) | Configuration register | |||
0 | Disable parity | ||||
1 | 8087 present | ||||
2 | One bank of 256k DRAMs onboard | ||||
3 | Lock register (switch register unwritable) | ||||
4-7 | Not used | ||||
0081 | DMA channel 2 page registers | ||||
0-3 | A16-19 | ||||
4-7 | Not used | ||||
0082 | DMA channel 3 page registers | ||||
0083 | DMA channel 1 page registers | ||||
00A0 | NMI mask register | ||||
0-6 | Not used | ||||
7 | Enable NMI | ||||
0100 to 01FF | Reserved |
Note that programming the FE2010A is not a trivial task. More detailed information on how to do this may be found in the Faraday FE2010A data book, and the Intel 8253, 8237, and 8259 data books.