1.2. PC/AT I/O Channel signals
The following notations are used:
I Input to a board other than the system board
O Output from a board other than the system board
I/O Bidirectional signal (normally a tri-state port)
OC (R) Open collector (in fact a signal that a slave board may either pull down or float) with a pull-up of R ohms.
TSM Tri-state driven by the current bus master
M Issued by the system board
The PC/AT I/O channel carries the following signals:
Signal Direction Size Comments
SA0-SA19 I/O, TSM 20 20 low-order address bits, stable during a cycle (latched on the system board by BALE when CPU is bus master).
LA17-LA23 I/O, TSM 7 7 high-order address bits, valid at beginning of cycle only. Should be latched by slave devices using BALE. Warning: in the current versions of MS-DOS, the 80286 runs in real address mode. This means that LA20-LA23 are always low when running MS-DOS, resulting in only 1 Mbyte of address space. It should also be noticed that when MS-DOS runs in real mode, bit A20 emitted by the 80286 is gated off through a control bit provided by the keyboard controller, because real mode does not check that segment addressing does not roll over 1M (at least, that's my belief...). Moreover, bits A20-A23 are forced to high by the CPU during reset, even though it starts in real mode...
CLK I 1 System clock prescaled from 286 CPU: 6, 8 or 10 MHz, with a 50% duty cycle.
ResetDrv I 1 System reset signal (active high).
SD0-SD15 I/O 16 16 data lines (SD0 is LSB, SD15 is MSB).
BALE I 1 Buffered address latch enable. Used by slaves to latch LA17-LA23 when CPU is active. BALE is forced high when the CPU has relinquished bus control to an alternate bus master or during slave DMAs.
-I/OChCk O, OC (5k) 1 Activated (low) when a board detects a non-correctable system error (raises NMI on CPU).
-I/OChRdy O, OC (1k) 1 Activated (low) by a slave board to lenghten bus cycles. Sampled by the system board on falling edge of CLK (asynchronous setup). The cycle is completed 1 CLK period after -I/OChRdy has been sampled high by the system board. -I/OChRdy should not be pulled low for more than 2.5 ms.
IRQ3-IRQ7 O, OC
IRQ9-IRQ12 O, OC
IRQ14 O, OC
IRQ15 O, OC 11 Interrupt request lines. Interrupts are signalled by a positive edge (low to high) on an IRQ line. The pulse should be between 125 ns and 1 ms. IRQ lines 0, 1, 2, 8, 13 are used internally by the system board and are not available on the expansion bus. Highest to lowest priority is in the order 9, 10, 11, 12, 14, 15, 3, 4, 5, 6, 7. The reader is referred to IBM system board documentation for details on shared interrupts (pp 1-14 sqq.). If the interrupt line is never shared, it may also be left high until the interrupt reason is removed.
-IOR I/O, TSM 1 Read data from an I/O device (active low)
-IOW I/O, TSM 1 Write data to an I/O device (active low)
-SMemR I
-MemR I/O, TSM 2 Read data from a memory device (active low). -SMemR is derived inside the system board from -MemR and the decode of the low 1M of memory.
-SMemW I
-MemW I/O, TSM 2 Write data to a memory device (active low). -SMemW is derived inside the system board from -MemW and the decode of the low 1M of memory.
DRQ0-DRQ3 O
DRQ5-DRQ7 O 7 DMA request signals. DRQ0-DRQ3 are for 8-bit channels, DRQ5-DRQ7 for 16-bit channels. DRQ0 is highest priority, DRQ7 lowest priority.
-DAck0--DAck3 I
-DAck5--DAck7 I 7 DMA acknowledge signals (active low).
AEN I 1 Address enable. This is a very misleading name. This signal is activated by the system board when the internal DMA is driving the bus (but not when an alternate master has taken control or when the CPU is driving the bus).
-Refresh I/O, OC (300) 1 Indicates a memory refresh cycle. Normally driven by the system board every 15 ms, but may also be driven by an alternate master.
T/C I 1 Terminal count provides a high pulse when the terminal count for a system-board DMA channel is reached. T/C should be qualified by slave DMAs using the curently active DAck line.
SBHE I/O 1 Indicates transfer of data on the upper byte (SD8 through SD15) of the bus. Beware: SBHE is active low (i.e. SBHE low implies SD8 through SD15 is used) in spite of the name of the signal and the PC/AT system board IBM documentation.
-Master O, OC (300) 1 Asserted (low) by an alternate master to gain full control of the I/O channel after having received it's DAck. The alternate master should wait for one CLK period after asserting -Master before issuing addresses and data on the bus (buffer turnaround time ?). -Master should not be asserted for more than 15ms, or memory refresh might be impaired.
-MemCS16 O, OC (300) 1 Asserted (low) by a 16-bit slave memory device. Enables byte/word conversion logic if necessary. Also requires a default of 1 wait-state unless 0WS is also asserted.
-I/OCS16 O, OC (300) 1 Asserted (low) by a 16-bit slave I/O device. Enables byte/word conversion logic if necessary. Also requires a default of 1 wait-state unless 0WS is also asserted.
OSC I 1 High-speed clock at 14.31818 MHz (~70 ns) with 50% duty cycle.
0WS O, OC (300) 1 Asserted (low, in spite of the missing '-' ahead...) by a slave requiring zero wait-state. 0WS must be stable (i.e. synchronous) on the high-to-low transition of CLK following the command (-MemR / -MemW / -IOR / -IOW), i.e. at midpoint of the second cycle.