Bus and Address Decode

This document defines the revision 1.0 motherboard bus and address decoder. It covers normal-cycle qualification, memory and I/O selects, the boot overlay, firmware ROM selection, system-register writes, bus-cycle termination, timeout behavior, and expansion-bus boundaries. Device-specific register maps, bus adapters, and response timing belong in the linked device documents. Return to the main page.

Document status
Revision 1.0 pre-layout design
Memory map
Frozen revision 1.0
CPU
MC68EC000FN10
Bus width
16-bit
Clock
10 MHz
Logic supply
+5 V

1. Purpose

The address decoder determines which motherboard device owns each CPU bus cycle. The decoder implements the frozen memory map without transferring data itself.

2. Design Rules

3. CPU Bus Signals

The address decoder uses a subset of the MC68EC000 bus signals to determine the address being accessed, the type of bus cycle, the data width of the transfer, and when the transfer is active.

MC68EC000 signals used by the address decoder
Signal Direction Active level or encoding Purpose Source
A23..A0 CPU output Binary Carries the bus address. In 16-bit mode, the CPU drives A0 high; /UDS and /LDS select the byte lanes. MC68000UM, p. 3-4
D15..D0 Bidirectional Binary 16-bit data bus shared between the CPU, memory, and peripherals. MC68000UM, p. 3-4
/AS CPU output Low Indicates that the CPU has placed a valid address and function code on the bus. MC68000UM, p. 3-4
/UDS CPU output Low Selects the upper byte lane, D15..D8. MC68000UM, p. 3-4
/LDS CPU output Low Selects the lower byte lane, D7..D0. MC68000UM, p. 3-4
R/W CPU output High: read; low: write Sets the direction of the data transfer. MC68000UM, p. 3-4
FC2..FC0 CPU output Binary Identifies the address space used by the current bus cycle. MC68000UM, p. 3-9
CLK Motherboard input 10 MHz Clocks the CPU and the bus-timeout counter. Clock circuit
RESET_n Motherboard input Low Marks an external board reset and presets the boot overlay. The clock-and-reset circuit drives the processor's bidirectional /RESET pin without feeding processor-generated reset pulses back into this signal. Clock and reset circuit
/DTACK CPU input Low Indicates that the selected device has provided or accepted the data, allowing the CPU to complete the transfer. MC68000UM, p. 3-5
/BERR CPU input Low Signals a bus error and terminates the current bus cycle. MC68000UM, p. 3-7

4. Bus Arbitration

This computer has one bus master. DMA and external bus arbitration are not supported.

Unused arbitration connections
CPU signal Connection Reason
/BR 10 kohm pull-up to +5 V Prevents an external bus request.
/BGACK 10 kohm pull-up to +5 V Prevents an external bus-grant acknowledgement.
/BG No connection The motherboard has no second bus master.

5. Simplified Bus Cycle

The MC68EC000 uses an asynchronous bus. A transfer begins when the CPU places an address and control information on the bus, then asserts /AS. The selected device or motherboard asserts /DTACK when the data has been provided or accepted.

Read Cycle

  1. The CPU places the address and function code on their buses.
  2. The CPU sets R/W high to indicate a read.
  3. The CPU asserts /AS to indicate that the address is valid.
  4. The CPU asserts /UDS, /LDS, or both, depending on which byte lanes are being accessed.
  5. The address decoder selects the target device.
  6. The selected device drives the requested data onto the data bus.
  7. The selected device or motherboard asserts /DTACK.
  8. The CPU latches the data and completes the bus cycle.
  9. The CPU releases /AS and the data strobes, and the selected device stops driving the data bus.

Write Cycle

  1. The CPU places the address and function code on their buses.
  2. The CPU sets R/W low to indicate a write.
  3. The CPU asserts /AS to indicate that the address is valid.
  4. The CPU drives the value being written onto the data bus.
  5. The CPU asserts /UDS, /LDS, or both, depending on which byte lanes are being written.
  6. The address decoder selects the target device.
  7. The selected device accepts the data.
  8. The selected device or motherboard asserts /DTACK.
  9. The CPU completes the bus cycle and releases the bus strobes.

This is a logical description of a transfer. Section 24 covers the timing of the shared decoder. Each device page covers the timing between its request input and completion output.

6. CPU Space Detection

The processor function-code outputs identify the address space used by the current bus cycle. CPU space is selected when FC2, FC1, and FC0 are all high. The motherboard decodes this combination as the active-high internal signal CPU_SPACE (MC68000UM, p. 3-9).

CPU_SPACE = FC2 AND FC1 AND FC0

Implementation

Two gates in U_AND, an SN74HCT08N, implement the three-input function. A third gate in the same package generates ROM_CYCLE_n later in the decode chain.

CPU_SPACE_STAGE1 = FC2 AND FC1
CPU_SPACE        = CPU_SPACE_STAGE1 AND FC0
CPU-space decoder gate assignments
Gate and pins Gate inputs Gate output Function
U_AND gate 1: inputs 1, 2; output 3 FC2, FC1 CPU_SPACE_STAGE1 First AND stage.
U_AND gate 2: inputs 4, 5; output 6 CPU_SPACE_STAGE1, FC0 CPU_SPACE Final AND stage.

Gate 4, pins 12 and 13 in and pin 11 out, combines the two bus-error sources as BERR_n = TIMEOUT_BERR_n AND INT_BERR_n; see Bus Error and Timeout. Pin 7 connects to ground and pin 14 connects to +5 V. A 100 nF capacitor and a 1 uF capacitor are placed in parallel between pins 14 and 7 near the package.

CPU-space decode truth table
FC2 FC1 FC0 CPU_SPACE
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1

CPU_SPACE prevents ordinary memory and I/O devices from responding to CPU-space cycles such as interrupt acknowledge cycles.

7. Normal Bus-Cycle Qualification

Ordinary memory and I/O devices respond only during an active, non-CPU-space bus cycle. The motherboard identifies that condition with the active-low internal signal NORMAL_CYCLE_n. In the equation below, AS_n is the motherboard name for the processor's /AS pin.

NORMAL_CYCLE_n = AS_n OR CPU_SPACE
Normal-cycle qualification truth table
AS_n CPU_SPACE NORMAL_CYCLE_n Meaning
0 0 0 Normal memory or I/O bus cycle.
0 1 1 CPU-space bus cycle; normal decoding is disabled.
1 0 1 No active bus cycle.
1 1 1 No active bus cycle.

Normal-Cycle Distribution

U_NORMAL_BUF, an SN74HCT244N, prevents the normal-cycle gate from driving every request gate directly. Three noninverting outputs distribute identical copies of the qualifier.

NORMAL_MEM_n = NORMAL_CYCLE_n
NORMAL_EXP_n = NORMAL_CYCLE_n
NORMAL_MISC_n = NORMAL_CYCLE_n
Normal-cycle buffer connections
Pin Connection
1 1/OE to ground
2 1A1 to NORMAL_CYCLE_n
18 1Y1 produces NORMAL_MEM_n
4 1A2 to NORMAL_CYCLE_n
16 1Y2 produces NORMAL_EXP_n
6 1A3 to NORMAL_CYCLE_n
14 1Y3 produces NORMAL_MISC_n
8 Unused 1A4 input to ground
12 Unused 1Y4 output open
19 2/OE to +5 V
11, 13, 15, 17 Unused inputs to ground
3, 5, 7, 9 Disabled outputs open
10 Ground
20 +5 V

NORMAL_MEM_n drives the RAM, CL-GD5428, and top-I/O request gates. NORMAL_EXP_n drives the four expansion memory request gates. NORMAL_MISC_n drives the ROM-alias qualifier and timeout reset. No buffer output drives more than four HCT inputs.

8. Primary Address Decoder

The primary address decoder divides the processor's 16 MiB address space into eight regions of 2 MiB each. CPU address lines A23..A21 select one region through an SN74HCT138N 3-line-to-8-line decoder/demultiplexer with active-low outputs.

Address Bit Selection

A 2 MiB region contains 2^21 byte addresses. Address bits below A21 vary within a region, while A23..A21 identify which of the eight regions is selected.

Primary decoder select inputs
SN74HCT138N input CPU signal Purpose
A A21 Least-significant region-select bit.
B A22 Middle region-select bit.
C A23 Most-significant region-select bit.

Enable Inputs

The primary decoder remains enabled continuously. Its outputs describe the address currently present on the CPU address bus and are not themselves qualified by /AS. This configuration matches the enable conditions in SN74HCT138 table 7-1.

Primary decoder enable connections
Enable input Connection
G1 Logic high (+5 V)
/G2A Logic low (GND)
/G2B Logic low (GND)

Region Decode

Primary decoder outputs and memory-map regions
A23 A22 A21 Decoder output Internal signal Address range Function
0 0 0 /Y0 REGION0_n $000000-$1FFFFF DRAM bank 0 / boot ROM alias
0 0 1 /Y1 REGION1_n $200000-$3FFFFF DRAM bank 1
0 1 0 /Y2 REGION2_n $400000-$5FFFFF Expansion memory
0 1 1 /Y3 REGION3_n $600000-$7FFFFF Expansion memory
1 0 0 /Y4 REGION4_n $800000-$9FFFFF CL-GD5428 VGA host-memory window
1 0 1 /Y5 REGION5_n $A00000-$BFFFFF Expansion memory
1 1 0 /Y6 REGION6_n $C00000-$DFFFFF Expansion memory
1 1 1 /Y7 REGION7_n $E00000-$FFFFFF I/O and firmware

Physical Connections

SN74HCT138N PDIP pin connections
Pin SN74HCT138N signal Connection
1 A CPU A21
2 B CPU A22
3 C CPU A23
4 /G2A GND
5 /G2B GND
6 G1 +5 V
7 /Y7 REGION7_n
8 GND Ground
9 /Y6 REGION6_n
10 /Y5 REGION5_n
11 /Y4 REGION4_n
12 /Y3 REGION3_n
13 /Y2 REGION2_n
14 /Y1 REGION1_n
15 /Y0 REGION0_n
16 VCC +5 V

A 100 nF capacitor and a 1 uF capacitor are placed in parallel between VCC and GND near U_PRIMARY. The SN74HCT138 datasheet recommends 100 nF and notes that 100 nF and 1 uF are commonly used in parallel.

The region outputs are raw address-decode signals. A region output being active does not by itself indicate that a CPU bus cycle is in progress. Device-specific requests combine these outputs with bus-cycle qualification, as shown below.

9. Qualified Region Requests

An OR gate combines a raw region-select signal with the appropriate buffered normal-cycle qualifier. The request goes low only when the address is in the selected region and a normal bus cycle is active.

DRAM Bank 1 Request

DRAM bank 1 occupies $200000-$3FFFFF, which corresponds to REGION1_n. The DRAM controller receives a bank 1 request when that region is selected during a normal bus cycle.

RAM1_REQ_n = REGION1_n OR NORMAL_MEM_n
DRAM bank 1 request truth table
REGION1_n NORMAL_MEM_n RAM1_REQ_n Meaning
0 0 0 Valid DRAM bank 1 request.
0 1 1 Address is in bank 1, but no valid normal cycle is active.
1 0 1 Normal cycle, but address is not in bank 1.
1 1 1 No bank 1 access.

RAM1_REQ_n goes to the DRAM controller, which generates the required timing for the DRAM /RAS input.

CL-GD5428 VGA Host-Memory Request

The CL-GD5428 VGA host-memory window occupies $800000-$9FFFFF, corresponding to REGION4_n.

The CL-GD5428 expects little-endian byte ordering, while the MC68EC000 uses big-endian byte ordering. The host interface connects CPU D15..D8 to CL-GD5428 D7..D0 and CPU D7..D0 to CL-GD5428 D15..D8. The matching byte-enable connections are swapped with the data lanes. This wiring also applies to the controller's I/O-register interface.

VGA_MEM_n = REGION4_n OR NORMAL_MEM_n
CL-GD5428 VGA host-memory request truth table
REGION4_n NORMAL_MEM_n VGA_MEM_n Meaning
0 0 0 Valid CL-GD5428 VGA host-memory access.
0 1 1 CL-GD5428 VGA region address present, but no valid normal cycle.
1 0 1 Normal cycle, but address is outside the CL-GD5428 VGA window.
1 1 1 No CL-GD5428 VGA memory access.

VGA_MEM_n is the motherboard-level CL-GD5428 VGA memory-window select. The CL-GD5428 host interface may decode the address further if needed.

Expansion Memory Requests

The decoder produces four qualified 2 MiB expansion-region requests. EXP_MEM2_n goes to front slot 1 and EXP_MEM3_n goes to front slot 2. EXP_MEM5_n and EXP_MEM6_n remain on the motherboard and have no connector destination.

EXP_MEM2_n = REGION2_n OR NORMAL_EXP_n
EXP_MEM3_n = REGION3_n OR NORMAL_EXP_n
EXP_MEM5_n = REGION5_n OR NORMAL_EXP_n
EXP_MEM6_n = REGION6_n OR NORMAL_EXP_n
Expansion memory selects
Signal Address range
EXP_MEM2_n $400000-$5FFFFF
EXP_MEM3_n $600000-$7FFFFF
EXP_MEM5_n $A00000-$BFFFFF
EXP_MEM6_n $C00000-$DFFFFF

10. Top I/O Slot Decoder

The top 2 MiB region, $E00000-$FFFFFF, contains the motherboard's I/O devices and firmware. This region is divided into sixteen slots of 128 KiB each.

Top I/O Cycle Qualification

An OR gate combines the raw REGION7_n address decode with NORMAL_MEM_n. The resulting TOP_IO_n signal goes low only during a normal bus cycle in region 7.

TOP_IO_n = REGION7_n OR NORMAL_MEM_n
Top I/O region qualification truth table
REGION7_n NORMAL_MEM_n TOP_IO_n Meaning
0 0 0 Valid cycle in the top I/O and firmware region.
0 1 1 Region 7 address present, but no normal cycle is active.
1 0 1 Normal cycle outside region 7.
1 1 1 No top I/O access.

Slot Address Bits

Each I/O slot is 128 KiB, or 2^17 byte addresses. Address lines A20..A17 select one of the sixteen slots; lower address lines do not affect slot selection. In 16-bit mode, A0 remains high and /UDS and /LDS select the byte lane.

Address line A20 selects the group: low for slots 0 through 7 and high for slots 8 through 15. Address lines A19..A17 select one slot within that group.

Low-Half Decoder

U_IO_LOW is an SN74HCT138N that generates IO0_n through IO7_n.

Low-half slot decoder connections
SN74HCT138N signal Connection
A CPU A17
B CPU A18
C CPU A19
G1 +5 V
/G2A TOP_IO_n
/G2B CPU A20

U_IO_LOW is enabled only when TOP_IO_n is low and A20 is low.

Low-half I/O slot assignments
Output Internal signal Address range Device
/Y0 IO0_n $E00000-$E1FFFF MC68901 MFP
/Y1 IO1_n $E20000-$E3FFFF Intel 82077AA-1
/Y2 IO2_n $E40000-$E5FFFF Yamaha YMF262 OPL3
/Y3 IO3_n $E60000-$E7FFFF CL-GD5428 VGA I/O registers
/Y4 IO4_n $E80000-$E9FFFF System control registers
/Y5 IO5_n $EA0000-$EBFFFF MC6850 MIDI ACIA
/Y6 IO6_n $EC0000-$EDFFFF Front expansion slot 1 I/O
/Y7 IO7_n $EE0000-$EFFFFF Front expansion slot 2 I/O

High-Half Decoder

U_IO_HIGH is a second SN74HCT138N that generates IO8_n through IO15_n.

High-half slot decoder connections
SN74HCT138N signal Connection
A CPU A17
B CPU A18
C CPU A19
G1 CPU A20
/G2A TOP_IO_n
/G2B GND

U_IO_HIGH is enabled only when TOP_IO_n is low and A20 is high.

High-half I/O slot assignments
Output Internal signal Address range Device
/Y0 IO8_n $F00000-$F1FFFF DS1285 RTC
/Y1 IO9_n $F20000-$F3FFFF Reserved
/Y2 IO10_n $F40000-$F5FFFF Reserved
/Y3 IO11_n $F60000-$F7FFFF Reserved
/Y4 IO12_n $F80000-$F9FFFF Reserved
/Y5 IO13_n $FA0000-$FBFFFF Reserved
/Y6 IO14_n $FC0000-$FDFFFF Reserved
/Y7 IO15_n $FE0000-$FFFFFF Firmware EEPROM

IO9_n..IO14_n remain on the motherboard and have no connector destination under memory-map revision 1.0.

Each decoder has a 100 nF capacitor and a 1 uF capacitor in parallel between VCC and GND, placed near the IC.

11. System Register Decoder

I/O slot 4, covering $E80000-$E9FFFF, contains motherboard control and status registers.

U_SYSREG, an SN74HCT138N, decodes eight lower-byte registers. CPU address lines A3..A1 select the register number.

Register Address Selection

The motherboard's 8-bit registers use the lower data byte, D7..D0, and are accessed using /LDS. Consecutive registers are therefore located two CPU byte addresses apart. In the tables below, LDS_n is the motherboard name for the processor's /LDS pin.

System-register address decode
A3 A2 A1 Decoder output Register select Canonical address
0 0 0 /Y0 SYSREG0_n $E80001
0 0 1 /Y1 SYSREG1_n $E80003
0 1 0 /Y2 SYSREG2_n $E80005
0 1 1 /Y3 SYSREG3_n $E80007
1 0 0 /Y4 SYSREG4_n $E80009
1 0 1 /Y5 SYSREG5_n $E8000B
1 1 0 /Y6 SYSREG6_n $E8000D
1 1 1 /Y7 SYSREG7_n $E8000F

Decoder Connections

System-register decoder connections
SN74HCT138N signal Connection Purpose
A CPU A1 Least-significant register-select bit.
B CPU A2 Middle register-select bit.
C CPU A3 Most-significant register-select bit.
G1 +5 V Active-high decoder enable.
/G2A IO4_n Enables the decoder only inside system-register I/O slot 4.
/G2B LDS_n Enables the decoder only for lower-byte accesses.

Register Assignments

System-register functions
Register Address Function
SYSREG0 / SYSCTRL $E80001 Any write disables the boot ROM overlay.
SYSREG1 / DEBUG $E80003 Write-only 8-bit hexadecimal debug display register. The upper and lower nibbles are continuously shown on two internal seven-segment displays.
SYSREG2 $E80005 Reserved.
SYSREG3 $E80007 Reserved.
SYSREG4 $E80009 Reserved.
SYSREG5 $E8000B Reserved.
SYSREG6 $E8000D Reserved.
SYSREG7 $E8000F Reserved.

Address Mirroring

Within I/O slot 4, the local decoder ignores address lines A16..A4. The eight registers repeat every 16 bytes throughout the 128 KiB slot. Software uses only the eight canonical odd addresses from $E80001 through $E8000F.

U_SYSREG has a 100 nF capacitor and a 1 uF capacitor in parallel between VCC and GND, placed near the IC.

12. System Register Write Qualification

The system-register decoder identifies the selected register. An OR gate combines its active-low output with the MC68EC000 R/W signal to produce an active-low write qualifier. R/W is high during a read and low during a write.

Boot Overlay Register Write

SYSREG0 / SYSCTRL controls the boot ROM overlay. A write to this register generates OVERLAY_WRITE_n.

OVERLAY_WRITE_n = SYSREG0_n OR R/W

Debug Register Write

SYSREG1 / DEBUG is the write-only 8-bit hexadecimal debug display register. A write to this register generates DEBUG_WRITE_n.

DEBUG_WRITE_n = SYSREG1_n OR R/W

A spare inverter produces the positive edge required by the debug register. The edge occurs when the fully decoded write becomes active, while the CPU is still driving the data bus.

DEBUG_CLK = NOT DEBUG_WRITE_n

Write Qualification Truth Table

System-register write qualification truth table
SYSREGx_n R/W WRITE_n Meaning
0 0 0 The register is selected for a write.
0 1 1 The register is selected for a read.
1 0 1 Write direction, but this register is not selected.
1 1 1 Read direction; this register is not selected.

The SYSREGx_n signals already include bus-cycle qualification through IO4_n. The write equations do not need another /AS term.

System-Register Acknowledgement

Every lower-byte write in I/O slot 4 is acknowledged. Writes to SYSREG2..SYSREG7 are ignored. Reads and upper-byte-only accesses receive no system-register acknowledgement and reach the bus timeout.

SYSREG_ACK_STAGE_n = IO4_n OR LDS_n
SYSREG_DTACK_n     = SYSREG_ACK_STAGE_n OR R/W
System-register access behavior
Access SYSREG_DTACK_n Result
Lower-byte write to SYSREG0 0 Overlay disabled and write acknowledged.
Lower-byte write to SYSREG1 0 Debug byte stored and write acknowledged.
Lower-byte write to SYSREG2..SYSREG7 0 Write acknowledged and ignored.
Read from any system register 1 The timeout asserts /BERR.
Upper-byte-only access 1 The timeout asserts /BERR.

Debug Byte Storage

U_DEBUG, an SN74HCT574N, stores the debug byte. Its data inputs connect to CPU D7..D0, its clock connects to DEBUG_CLK, and its active-low output enable connects to ground. The rising edge at the start of the qualified write stores the byte. The outputs feed the hexadecimal seven-segment decoder described in the debug display document.

13. Low 128 KiB Address Decoder

The boot ROM alias occupies the lowest 128 KiB of the processor address space, from $000000 through $01FFFF.

A 128 KiB region contains 2^17 byte addresses. Address lines A16..A1 may vary within the region. The processor also exposes A0, but drives it high in 16-bit mode; /UDS and /LDS select the byte lane. Address lines A23..A17 must all be low.

Existing REGION0 Decode

REGION0_n is already generated by the primary address decoder. When REGION0_n is active, address lines A23..A21 are known to be zero.

The low-128-KiB decoder therefore only needs to test address lines A20..A17.

Implementation

U_LOW128 is an SN74HCT138N. CPU address lines A18, A19, and A20 drive its select inputs. A17 and REGION0_n drive its active-low enables.

Low-128-KiB decoder connections
SN74HCT138N signal Connection Purpose
A CPU A18 Least-significant decoder-select bit.
B CPU A19 Middle decoder-select bit.
C CPU A20 Most-significant decoder-select bit.
G1 +5 V Active-high enable permanently asserted.
/G2A REGION0_n Enables the decoder only while the address lies inside REGION0.
/G2B CPU A17 Enables the decoder only while A17 is low.
/Y0 LOW128_n Active when the address lies within $000000-$01FFFF.

Address Condition

LOW128_n becomes active only when all of the following conditions are true:

REGION0_n = 0
A20 = 0
A19 = 0
A18 = 0
A17 = 0

Since REGION0_n already guarantees that A23..A21 are zero, this is equivalent to:

A23..A17 = 0000000

The resulting address range is exactly:

$000000-$01FFFF

Boundary Examples

Low-128-KiB decoder boundary checks
Address LOW128_n Meaning
$000004 0 Inside the boot ROM alias range.
$01FFFF 0 Last address inside the boot ROM alias range.
$020000 1 First address above the boot ROM alias range.
$100000 1 Inside REGION0, but outside the boot ROM alias range.

Qualification Note

LOW128_n is a raw address-decode signal. It does not by itself select the firmware EEPROM and is not qualified by NORMAL_CYCLE_n.

The final ROM alias selection combines this signal with the boot overlay state and normal-cycle qualification.

U_LOW128 has a 100 nF capacitor and a 1 uF capacitor in parallel between VCC and GND, placed near the IC.

14. Boot Overlay State

One bit of motherboard state controls the boot ROM overlay. Hardware reset enables the overlay. A write to SYSREG0 / SYSCTRL disables it until the next hardware reset.

Overlay State Signals

The active-high signal OVERLAY_EN represents the current overlay state.

OVERLAY_EN = 1  -> boot ROM alias enabled
OVERLAY_EN = 0  -> boot ROM alias disabled

The complementary active-low signal is named OVERLAY_n.

OVERLAY_n = NOT OVERLAY_EN

Required Behavior

Required boot overlay state transitions
Event Previous OVERLAY_EN New OVERLAY_EN
Hardware reset X 1
Write to SYSREG0 / SYSCTRL 1 0
Write to SYSREG0 / SYSCTRL 0 0
Any other bus cycle 1 1
Any other bus cycle 0 0

Implementation

U_OVERLAY, an SN74HCT74N, stores the overlay state. The first flip-flop uses its asynchronous preset and clear inputs, so no decode signal is used as a clock.

Boot overlay flip-flop connections
Pin SN74HCT74N signal Connection Purpose
1 1/CLR OVERLAY_WRITE_n A register write clears the overlay state.
2 D Ground Defines the unused synchronous data input.
3 1CLK Ground Prevents synchronous state changes.
4 1/PRE RESET_n Enables the boot overlay during reset.
5 Q OVERLAY_EN Active-high overlay state.
6 /Q OVERLAY_n Complementary active-low overlay state.
7 GND Ground Package ground.
8, 9 2/Q, 2Q No connection Unused outputs.
10, 13 2/PRE, 2/CLR +5 V Holds both unused asynchronous inputs inactive.
11, 12 2CLK, 2D Ground Defines both unused synchronous inputs.
14 VCC +5 V Package supply.

RESET_n and OVERLAY_WRITE_n must not be low together during normal operation. An asynchronous reset can arrive during an existing overlay-clear write. Verify that clear returns inactive while preset remains asserted and that the boot state is restored before CPU reset release. The boot-overlay reset checks include the two-stage SN74LS14 conditioner and the remaining loaded preset-edge check. RESET_RAW_n is confined to the supervisor, switch, capacitor, and first Schmitt input; RESET_n is the conditioned board-reset signal. A processor-generated /RESET pulse does not reach U_OVERLAY.

Write Behavior

The value written to SYSREG0 / SYSCTRL is ignored. Any valid write to the register disables the boot overlay.

write SYSREG0 / SYSCTRL -> OVERLAY_EN = 0

The register is intentionally one-way. Software cannot re-enable the boot overlay after it has been disabled. Only an external reset restores OVERLAY_EN to one.

Asynchronous State Change

Hardware reset drives 1/PRE low and sets OVERLAY_EN. A qualified write drives 1/CLR low and clears OVERLAY_EN. Releasing either asynchronous input leaves the stored state unchanged.

RESET_n = 0         -> OVERLAY_EN = 1
OVERLAY_WRITE_n = 0 -> OVERLAY_EN = 0

The clock-and-reset document defines the circuit that generates RESET_n. This decoder treats it as an active-low input.

Address Mirroring

Because the system-register decoder uses partial address decoding, SYSREG0 / SYSCTRL is electrically mirrored throughout I/O slot 4. A write to any mirror has the same hardware effect. Software uses $E80001 as the canonical overlay-control address.

The SN74HCT74N has a 100 nF capacitor and a 1 uF capacitor in parallel between VCC and GND, placed near the IC.

15. Boot ROM Alias Generation

The firmware EEPROM is temporarily mapped into the lowest 128 KiB of the processor address space while the boot overlay is enabled.

ROM_ALIAS_ADDR_n records the address and overlay state condition. ROM_ALIAS_n adds normal-cycle qualification.

Alias Address Condition

LOW128_n is active when the CPU address lies between $000000 and $01FFFF.

OVERLAY_n is active when the boot overlay is enabled. An OR gate combines the two active-low signals, so its output is low only when the address is inside the alias range and the overlay is enabled.

ROM_ALIAS_ADDR_n = LOW128_n OR OVERLAY_n
Boot ROM alias address condition truth table
LOW128_n OVERLAY_n ROM_ALIAS_ADDR_n Meaning
0 0 0 The low 128 KiB address range belongs to the firmware ROM alias.
0 1 1 The address is inside the alias range, but the overlay is disabled.
1 0 1 The overlay is enabled, but the address is outside the alias range.
1 1 1 The address is outside the low 128 KiB and the overlay is disabled.

Bus Cycle Qualification

ROM_ALIAS_ADDR_n does not indicate an active CPU bus cycle. A second OR gate combines it with NORMAL_MISC_n to generate the qualified boot ROM alias request.

ROM_ALIAS_n = ROM_ALIAS_ADDR_n OR NORMAL_MISC_n
Qualified boot ROM alias request truth table
ROM_ALIAS_ADDR_n NORMAL_MISC_n ROM_ALIAS_n Meaning
0 0 0 Valid firmware ROM access through the low boot alias.
0 1 1 The alias address condition is present, but no valid normal bus cycle is active.
1 0 1 A normal bus cycle is active, but the alias address condition is inactive.
1 1 1 No boot ROM alias access.

Reset Vector Example

Immediately after reset, OVERLAY_EN is high and OVERLAY_n is low.

A CPU access to $000004 activates LOW128_n. During a normal bus cycle the resulting signals are:

LOW128_n         = 0
OVERLAY_n        = 0
ROM_ALIAS_ADDR_n = 0
NORMAL_CYCLE_n   = 0
ROM_ALIAS_n      = 0

The firmware EEPROM owns the reset-vector access.

After Overlay Disable

After software writes to SYSREG0 / SYSCTRL, OVERLAY_EN becomes zero and OVERLAY_n becomes one.

An access to the same low address then produces:

LOW128_n         = 0
OVERLAY_n        = 1
ROM_ALIAS_ADDR_n = 1
NORMAL_CYCLE_n   = 0
ROM_ALIAS_n      = 1

The firmware EEPROM no longer responds through the low alias.

Signal Roles

Boot ROM alias signal roles
Signal Meaning Active level
LOW128_n The current address lies within $000000-$01FFFF. Low
OVERLAY_n The boot overlay is enabled. Low
ROM_ALIAS_ADDR_n The low address range currently belongs to the boot ROM alias. Low
ROM_ALIAS_n A valid normal CPU bus cycle is accessing the boot ROM alias. Low

16. Firmware ROM Cycle Selection

The firmware EEPROM has two address mappings. The permanent mapping occupies $FE0000-$FFFFFF. The temporary boot alias occupies $000000-$01FFFF while the boot overlay is enabled.

ROM_CYCLE_n combines both qualified selections into one active-low firmware request.

Input Signals

Firmware ROM selection inputs
Signal Meaning Active level
IO15_n Valid access to the permanent firmware mapping at $FE0000-$FFFFFF. Low
ROM_ALIAS_n Valid access to the temporary firmware alias at $000000-$01FFFF. Low

Logic Equation

An AND gate combines the two active-low inputs. Its output is low when either mapping selects the firmware EEPROM.

ROM_CYCLE_n = IO15_n AND ROM_ALIAS_n

Truth Table

Firmware ROM cycle selection truth table
IO15_n ROM_ALIAS_n ROM_CYCLE_n Meaning
0 0 0 Both firmware selections are active. This state cannot occur during a stable bus cycle because the mappings do not overlap.
0 1 0 Firmware accessed through its permanent high-memory mapping.
1 0 0 Firmware accessed through the temporary low boot alias.
1 1 1 No firmware access.

Bus Cycle Qualification

ROM_CYCLE_n does not need another normal-cycle term. IO15_n is already generated by the qualified top I/O decoder, and ROM_ALIAS_n already includes NORMAL_MISC_n.

Permanent Mapping Example

During a normal access to $FE0100:

IO15_n      = 0
ROM_ALIAS_n = 1

ROM_CYCLE_n = 0 AND 1
            = 0

The firmware EEPROM is selected through its permanent mapping.

Boot Alias Example

Immediately after reset, a normal access to $000004 produces:

IO15_n      = 1
ROM_ALIAS_n = 0

ROM_CYCLE_n = 1 AND 0
            = 0

The firmware EEPROM is selected through the low boot alias.

After Overlay Disable

After the boot overlay has been disabled, an access to $000004 produces:

IO15_n      = 1
ROM_ALIAS_n = 1

ROM_CYCLE_n = 1 AND 1
            = 1

The firmware EEPROM no longer responds to the low address.

Implementation

Gate 3 in U_AND, an SN74HCT08N, generates ROM_CYCLE_n. Pins 9 and 10 are the inputs and pin 8 is the output.

ROM Bank and Byte-Lane Selection

Four AT28C256-15PU EEPROMs form a 128 KiB, 16-bit ROM. A16 selects one of two 64 KiB halves. Within each half, /UDS selects the upper-byte EEPROM and /LDS selects the lower-byte EEPROM.

A16_n        = NOT A16
READ_n       = NOT R/W

ROM_BANK0_n  = ROM_CYCLE_n OR A16
ROM_BANK1_n  = ROM_CYCLE_n OR A16_n

ROM0_UDS_n   = ROM_BANK0_n OR UDS_n
ROM0_LDS_n   = ROM_BANK0_n OR LDS_n
ROM1_UDS_n   = ROM_BANK1_n OR UDS_n
ROM1_LDS_n   = ROM_BANK1_n OR LDS_n
Firmware EEPROM assignments
Device 64 KiB half CPU data lane /CE
U_ROM0U A16 = 0 D15..D8 ROM0_UDS_n
U_ROM0L A16 = 0 D7..D0 ROM0_LDS_n
U_ROM1U A16 = 1 D15..D8 ROM1_UDS_n
U_ROM1L A16 = 1 D7..D0 ROM1_LDS_n

CPU A1..A15 connect to EEPROM A0..A14 on all four devices. On an upper-byte EEPROM, I/O0..I/O7 connect to CPU D8..D15. On a lower-byte EEPROM they connect to CPU D0..D7. Every EEPROM /OE input connects to READ_n, and every /WE input connects to +5 V.

A write to either firmware mapping cannot alter the EEPROM because /WE is held high. The firmware interface does not assert ROM_DTACK_n for a write, so the timeout ends the cycle with /BERR. Read timing and generation of ROM_DTACK_n belong in the firmware ROM document.

17. DRAM Bank 0 Overlay Suppression

DRAM bank 0 normally occupies $000000-$1FFFFF. During boot, however, the lowest 128 KiB of this region is temporarily occupied by the firmware ROM alias.

DRAM bank 0 must remain inactive while the boot ROM alias owns an address.

Base DRAM Bank 0 Request

Without overlay suppression, a normal access to REGION0 would generate:

RAM0_BASE_n = REGION0_n OR NORMAL_MEM_n

This signal cannot be the final DRAM bank 0 request because it would also become active during accesses to the boot ROM alias.

Alias Suppression Signal

ROM_ALIAS_ADDR_n is active low whenever the current address lies inside the low 128 KiB and the boot overlay is enabled.

An inverter produces an active-high version of this condition:

ALIAS_ACTIVE = NOT ROM_ALIAS_ADDR_n

When ALIAS_ACTIVE is high, DRAM bank 0 must remain inactive.

Final DRAM Bank 0 Request

RAM0_REQ_n = RAM0_BASE_n OR ALIAS_ACTIVE

Substituting the base request gives:

RAM0_REQ_n =
    REGION0_n
    OR NORMAL_MEM_n
    OR ALIAS_ACTIVE
DRAM bank 0 overlay suppression truth table
REGION0_n NORMAL_MEM_n ALIAS_ACTIVE RAM0_REQ_n Meaning
0 0 0 0 Valid DRAM bank 0 request.
0 0 1 1 The boot ROM alias owns the address, so DRAM bank 0 is suppressed.
0 1 X 1 No valid normal bus cycle is active.
1 X X 1 The address is outside DRAM bank 0.

Boot Vector Example

Immediately after reset, a CPU access to $000004 occurs inside the boot ROM alias.

REGION0_n        = 0
NORMAL_CYCLE_n   = 0
ROM_ALIAS_ADDR_n = 0
ALIAS_ACTIVE     = 1

RAM0_REQ_n       = 1

DRAM bank 0 remains inactive while the firmware EEPROM supplies the reset-vector data.

Access Above the Alias During Boot

The boot overlay affects only the lowest 128 KiB. An access to $100000 while the overlay is enabled produces:

REGION0_n        = 0
NORMAL_CYCLE_n   = 0
ROM_ALIAS_ADDR_n = 1
ALIAS_ACTIVE     = 0

RAM0_REQ_n       = 0

DRAM bank 0 remains usable above the boot ROM alias before the overlay is disabled.

Low Memory After Overlay Disable

After software disables the boot overlay, a CPU access to $000004 produces:

REGION0_n        = 0
NORMAL_CYCLE_n   = 0
ROM_ALIAS_ADDR_n = 1
ALIAS_ACTIVE     = 0

RAM0_REQ_n       = 0

DRAM bank 0 now owns the low address.

Implementation

ALIAS_ACTIVE requires one inversion of ROM_ALIAS_ADDR_n. The two-stage bank 0 request requires two 2-input OR gates.

One gate in U_INVERT, an SN74HCT04N, generates ALIAS_ACTIVE. Two gates in the SN74HCT32N OR-gate bank generate RAM0_BASE_n and RAM0_REQ_n.

Section 23 lists the package and pin assignments.

DRAM Controller Interface

RAM0_REQ_n is a request to the DRAM controller and is not connected directly to a DRAM /RAS or /CAS input.

DRAM row/column multiplexing, /RAS and /CAS timing, refresh, write control, and bus-cycle termination belong in the DRAM document.

18. Worked Decode Examples

These examples trace an address through each decoder that applies to it. A zero on a signal ending in _n means that the signal is active.

DRAM Bank 1 Read at $300000

For a normal read, AS_n is low and CPU_SPACE is low. Address bits A23..A21 = 001 select primary-decoder output /Y1.

AS_n             = 0
CPU_SPACE        = 0
NORMAL_CYCLE_n   = 0 OR 0 = 0
NORMAL_MEM_n     = 0

A23..A21         = 001
REGION1_n        = 0

RAM1_REQ_n       = REGION1_n OR NORMAL_MEM_n
                 = 0 OR 0
                 = 0

RAM1_REQ_n requests the transfer from the DRAM controller.

Debug Register Write at $E80003

This lower-byte write passes through the primary decoder, the low-half I/O decoder, and the system-register decoder.

AS_n             = 0
CPU_SPACE        = 0
NORMAL_CYCLE_n   = 0
NORMAL_MEM_n     = 0

A23..A21         = 111
REGION7_n        = 0
TOP_IO_n         = REGION7_n OR NORMAL_MEM_n
                 = 0 OR 0
                 = 0

A20              = 0       low-half I/O decoder enabled
A19..A17         = 100     /Y4 selected
IO4_n            = 0

LDS_n            = 0       system-register decoder enabled
A3..A1           = 001     /Y1 selected
SYSREG1_n        = 0

R/W              = 0
DEBUG_WRITE_n    = SYSREG1_n OR R/W
                 = 0 OR 0
                 = 0

The active DEBUG_WRITE_n signal identifies a write to SYSREG1 / DEBUG. The register captures data from D7..D0 when DEBUG_CLK rises during the write.

Upper-Byte Access at $E80002

The address still selects I/O slot 4, but an upper-byte access leaves LDS_n high. That disables U_SYSREG through its /G2B input.

IO4_n            = 0
UDS_n            = 0
LDS_n            = 1

SYSREG0_n..SYSREG7_n = 1
DEBUG_WRITE_n         = 1

No motherboard system register responds to this access.

Firmware Read at $FE0100

The permanent firmware mapping uses I/O slot 15. The boot-overlay state does not affect this mapping.

AS_n             = 0
CPU_SPACE        = 0
NORMAL_CYCLE_n   = 0
NORMAL_MEM_n     = 0

A23..A21         = 111
REGION7_n        = 0
TOP_IO_n         = 0

A20              = 1       high-half I/O decoder enabled
A19..A17         = 111     /Y7 selected
IO15_n           = 0

ROM_ALIAS_n      = 1
ROM_CYCLE_n      = IO15_n AND ROM_ALIAS_n
                 = 0 AND 1
                 = 0

ROM_CYCLE_n selects the firmware interface. The state of A16 and the byte strobes select one of the four EEPROMs.

CPU-Space Cycle at $E80003

The primary decoder always follows the address bus, so it still activates REGION7_n. The normal-cycle qualifier prevents the address from reaching either I/O slot decoder.

AS_n             = 0
FC2..FC0         = 111
CPU_SPACE        = 1
NORMAL_CYCLE_n   = AS_n OR CPU_SPACE
                 = 0 OR 1
                 = 1
NORMAL_MEM_n     = 1

REGION7_n        = 0
TOP_IO_n         = REGION7_n OR NORMAL_MEM_n
                 = 0 OR 1
                 = 1

IO0_n..IO15_n    = 1
SYSREG0_n..SYSREG7_n = 1

Normal memory, I/O, and system-register logic does not respond. The interrupt logic handles the CPU-space transaction separately.

19. Bus Cycle Termination

Address decoding determines which motherboard subsystem owns a CPU bus cycle. Bus-cycle termination tells the processor when that subsystem has completed the transfer.

The MC68EC000 uses the active-low /DTACK input to acknowledge completion of a normal bus transfer. The processor waits until the selected subsystem or its interface logic produces a valid termination response.

Selection and Completion

A device-select signal does not by itself indicate that the transfer is complete.

address decode -> target selected -> transfer
    -> completion response -> /DTACK -> cycle complete

Each subsystem can assert /DTACK when its transfer completes, so slower subsystems add wait states without imposing the same delay on faster devices.

Subsystem Termination Responsibility

Bus-cycle termination responsibilities
Subsystem Request or select Termination source Implementation
DRAM bank 0 RAM0_REQ_n DRAM_DTACK_n DRAM controller
DRAM bank 1 RAM1_REQ_n DRAM_DTACK_n DRAM controller
CL-GD5428 VGA host memory VGA_MEM_n VGA_DTACK_n CL-GD5428 host interface
System registers IO4_n, LDS_n, and R/W SYSREG_DTACK_n Motherboard logic
MC68901 MFP IO0_n MFP_DTACK_n MFP interface
Floppy controller IO1_n FDC_DTACK_n Floppy interface
YMF262 OPL3 IO2_n OPL3_DTACK_n OPL3 interface
CL-GD5428 VGA I/O IO3_n VGA_DTACK_n CL-GD5428 host interface
MC6850 MIDI ACIA IO5_n MIDI_DTACK_n MC6850 bus adapter
RTC IO8_n RTC_DTACK_n RTC interface
Firmware EEPROM ROM_CYCLE_n ROM_DTACK_n Firmware ROM interface
Expansion hardware Expansion-region or I/O-select signal EXP_DTACK_n Expansion interface

Internal Completion Signals

Each subsystem generates one internal active-low completion signal. An adapter may generate the signal when the device does not provide a 68k-compatible acknowledgement output.

DRAM_DTACK_n
ROM_DTACK_n
SYSREG_DTACK_n
MFP_DTACK_n
FDC_DTACK_n
OPL3_DTACK_n
VGA_DTACK_n
MIDI_DTACK_n
RTC_DTACK_n
EXP_DTACK_n

An unselected subsystem must keep its completion signal inactive. A subsystem must never terminate a bus cycle that it does not own. Once asserted, a completion signal remains low until AS_n returns high.

Final /DTACK Combination

Two SN74F21N packages combine the ten completion signals through four-input AND gates. No device outputs are connected together. The SN74F21N is a period-correct 5 V TTL dual four-input AND in a 14-pin PDIP; its TI data sheet dates from 1987 and was revised in 1993. FAST rather than HCT is required here so that the acknowledgement-release path fits inside the MC68EC000FN10 requirement of 110 ns from AS_n or the data strobes negating to /DTACK negating.

Because the individual completion signals are active low, the logical behavior is equivalent to an AND of the inactive-high responses:

DTACK_GROUP0_n =
    DRAM_DTACK_n AND ROM_DTACK_n
    AND SYSREG_DTACK_n AND MFP_DTACK_n

DTACK_GROUP1_n =
    FDC_DTACK_n AND OPL3_DTACK_n
    AND VGA_DTACK_n AND MIDI_DTACK_n

DTACK_GROUP2_n = RTC_DTACK_n AND EXP_DTACK_n AND 1 AND 1

DTACK_RAW_n =
    DTACK_GROUP0_n AND DTACK_GROUP1_n
    AND DTACK_GROUP2_n AND 1

DTACK_n = DTACK_RAW_n OR TIMEOUT_ACTIVE

The MC68901 MFP_DTACK_n input in group 0 terminates both ordinary MFP register cycles and level-6 interrupt-acknowledge cycles. The completion tree remains active during CPU space, while the normal bus timeout does not run there.

SN74F21N acknowledgement-tree connections
Package and gate Input pins Output pin Signal
U_DTACK_A gate 1 1: DRAM_DTACK_n; 2: ROM_DTACK_n; 4: SYSREG_DTACK_n; 5: MFP_DTACK_n 6 DTACK_GROUP0_n
U_DTACK_A gate 2 9: FDC_DTACK_n; 10: OPL3_DTACK_n; 12: VGA_DTACK_n; 13: MIDI_DTACK_n 8 DTACK_GROUP1_n
U_DTACK_B gate 1 1: RTC_DTACK_n; 2: EXP_DTACK_n; 4 and 5: +5 V 6 DTACK_GROUP2_n
U_DTACK_B gate 2 9: DTACK_GROUP0_n; 10: DTACK_GROUP1_n; 12: DTACK_GROUP2_n; 13: +5 V 8 DTACK_RAW_n

Pin 7 of each package connects to ground and pin 14 connects to +5 V. The three unused gate inputs shown as logic one connect to +5 V: pins 4 and 5 on U_DTACK_B gate 1 and pin 13 on gate 2. EXP_DTACK_n has a 10 kohm pull-up at the motherboard and the expansion card may only pull it low. The timeout circuit masks DTACK_RAW_n after a bus error and drives the CPU /DTACK pin with DTACK_n.

The final DTACK_n = DTACK_RAW_n OR TIMEOUT_ACTIVE mask is one gate of U_OR_DTACK, an SN74F32N. It is a dedicated FAST-family OR package rather than a gate of the SN74HCT32N bank, so the release edge is not slowed by the slower HCT part. SN74F32N is period-correct, 5 V, and available in PDIP.

Acknowledgement Release Path

The MC68EC000FN10 requires /DTACK to negate no later than 110 ns after AS_n and the data strobes negate. When a subsystem releases its completion signal, that rising edge propagates to the CPU /DTACK pin through the FAST tree only:

subsystem DTACK_n rises
    -> SN74F21 level 1 (group AND)   <= 5.3 ns   tPLH
    -> SN74F21 level 2 (final AND)   <= 5.3 ns   tPLH
    -> SN74F32 timeout OR mask       <= 6.6 ns   tPLH
    -> CPU DTACK_n rises

global release-tree logic delay     <= 17.2 ns

Each stage uses the low-to-high datasheet maximum because release is a rising edge at every node in the path: tPLH(SN74F21) = 5.3 ns and tPLH(SN74F32) = 6.6 ns. Assertion is the falling-edge direction and uses tPHL(SN74F21) = 5.5 ns and tPHL(SN74F32) = 6.3 ns; assertion delay is allowed to add a CPU wait state, so it is not on the 110 ns critical path.

The 17.2 ns figure is the shared motherboard logic only. It does not by itself prove the full CPU /DTACK negation timing. Each subsystem still adds its own local release-qualification logic, and PCB trace, connector, and loading delay must be added on top. Those contributions are accounted for on the individual subsystem pages and in the final board timing review.

Subsystem Timing

Each subsystem document defines the earliest safe assertion of its completion response. This gives each device the shortest safe bus cycle instead of imposing one wait-state count on the whole board.

For example, the DRAM controller asserts its response only after the required row and column sequence has completed, while the firmware ROM interface must allow sufficient time for EEPROM read data to become valid.

CPU Space Cycles

The normal motherboard termination paths described in this section apply to ordinary memory and I/O cycles. The interrupt interface handles CPU-space transactions such as interrupt acknowledge.

Unanswered Cycles

If no selected subsystem produces a completion response, the processor is not left waiting indefinitely. The bus-timeout circuit terminates the unanswered cycle using /BERR.

Section 20 documents bus error and timeout behavior.

20. Bus Error and Timeout

A normal CPU bus cycle may target an address for which no installed motherboard or expansion device can respond. If no subsystem asserts /DTACK, a bus timeout must terminate the transaction with /BERR.

Successful and Failed Termination

/DTACK and /BERR represent two different outcomes of a bus transaction.

Normal and bus error termination
Signal Meaning Result
/DTACK The selected subsystem completed the transfer. The timeout logic keeps /BERR inactive, and /HALT also remains inactive. Normal bus-cycle completion.
/BERR The timeout aborts the transfer instead of asserting /DTACK. /HALT remains inactive. Bus-error termination and exception processing.

Timeout Behavior

The timeout mechanism begins monitoring when a normal bus cycle becomes active.

normal bus cycle begins -> start timeout monitoring

If /DTACK is asserted before the timeout expires, the transfer completes normally. The CPU then releases AS_n, which resets the counter.

/DTACK before timeout -> normal completion
    -> AS_n released -> timeout counter reset

If the bus cycle remains active and no /DTACK response is received before the timeout expires, the timeout logic generates a bus error.

no /DTACK before timeout -> TIMEOUT_BERR_n = 0
    -> /BERR asserted

Timeout Bus Error Source

The internal active-low signal TIMEOUT_BERR_n represents a bus error caused specifically by an unanswered normal bus cycle.

TIMEOUT_BERR_n = 0
    -> current normal bus cycle exceeded the allowed response time

TIMEOUT_BERR_n is combined with INT_BERR_n from the interrupt logic in U_AND gate 4; the result BERR_n drives the processor's physical /BERR input. The timeout does not assert /HALT.

Normal Cycle Qualification

Timeout monitoring starts only when NORMAL_CYCLE_n goes low.

Raw address-decoder outputs such as REGION2_n do not start timeout monitoring because they do not by themselves indicate that a CPU bus cycle is active.

Unmapped Address Example

Consider a normal CPU access to $500000 with no expansion hardware installed in the corresponding address region.

normal bus cycle begins
REGION2_n = 0

no installed target responds
no subsystem generates /DTACK

timeout expires

TIMEOUT_BERR_n = 0
/BERR asserted

The CPU receives a bus error instead of waiting for nonexistent hardware.

Timeout Duration

The timeout uses 512 falling edges of the 10 MHz clock. Depending on the phase of AS_n, TIMEOUT_ACTIVE rises about 51.1 to 51.2 microseconds after a normal cycle begins, plus counter propagation delay.

Each valid device adapter must assert its completion response before this boundary. Software-visible device busy times do not extend a bus cycle; software polls the device status instead.

Implementation

U_TIMEOUT, a CD74HCT4040E counter, counts falling edges of the 10 MHz clock while a normal cycle is active. Its master reset connects to NORMAL_MISC_n.

TIMEOUT_ACTIVE = U_TIMEOUT Q10
TIMEOUT_BERR_n = NOT TIMEOUT_ACTIVE
BERR_n         = TIMEOUT_BERR_n AND INT_BERR_n
DTACK_n        = DTACK_RAW_n OR TIMEOUT_ACTIVE

INT_BERR_n is the spurious-interrupt-acknowledge abort from the interrupt logic. It is inactive during normal cycles. U_AND gate 4 combines the two active-low bus-error sources; either one asserts the processor /BERR input.

CD74HCT4040E timeout connections
Pin Signal Connection
8 GND Ground
10 CP 10 MHz CLK
11 MR NORMAL_MISC_n
14 Q10 TIMEOUT_ACTIVE
16 VCC +5 V
All other Q outputs Unused counter outputs No connection

Once TIMEOUT_ACTIVE rises, the U_OR_DTACK SN74F32N gate forces DTACK_n high even if a late device response arrives. The inverter asserts BERR_n low. When the CPU releases AS_n, NORMAL_MISC_n resets the counter, releases BERR_n, and removes the acknowledgement mask.

CPU Space Cycles

The timeout mechanism described here applies to normal memory and I/O cycles. The interrupt interface handles CPU-space transactions, including interrupt acknowledge.

21. Interrupt Acknowledge Separation

Interrupt acknowledge is a CPU-space transaction, so it is excluded from normal memory and I/O requests. The MC68000 function-code table assigns FC2..FC0 = 111 to CPU space.

CPU_SPACE = FC2 AND FC1 AND FC0

Section 7 defines the normal bus qualifier as:

NORMAL_CYCLE_n = AS_n OR CPU_SPACE

During an active CPU-space transaction, CPU_SPACE is high. This forces NORMAL_CYCLE_n inactive even while /AS is asserted.

CPU Space Example

AS_n           = 0
FC2..FC0        = 111
CPU_SPACE       = 1

NORMAL_CYCLE_n  = 0 OR 1
                = 1

Qualified memory and I/O requests remain inactive during the CPU-space transaction.

Effect on Qualified Device Requests

Because normal device requests are qualified using NORMAL_CYCLE_n, ordinary motherboard devices do not respond during CPU-space cycles.

This includes DRAM, firmware ROM, CL-GD5428 VGA memory, the I/O slot decoder, and motherboard system registers.

CPU-space cycle -> NORMAL_CYCLE_n inactive
    -> normal RAM, ROM, and I/O requests remain inactive

Interrupt Acknowledge Handling

Interrupt-acknowledge transactions are handled by separate interrupt logic rather than by the normal address decoder.

The interrupt document defines the /IPL2..IPL0 priority inputs, the acknowledge decode, and vector generation. Interrupt logic must never assert /DTACK and /AVEC at the same time.

Three signals from the interrupt logic reach the processor through this document's circuits:

Interrupt-logic signals into the motherboard
Signal Route to the processor
/AVEC Direct net from U_AVEC_OR to the MC68EC000 /AVEC pin, with a 10 kohm pull-up so it is inactive when the interrupt logic is idle. This pin has no other driver.
MFP_DTACK_n U_DTACK_A gate 1 pin 5. The direct MC68901 acknowledgement terminates register and vectored level-6 cycles.
INT_BERR_n U_AND gate 4, combined with TIMEOUT_BERR_n to form BERR_n. See Bus Error and Timeout.

The interrupt logic also adds one input load to CPU_SPACE, AS_n, and CPU address lines A1..A3 and A16..A19. The bus timeout does not run during a CPU-space cycle, so the interrupt logic provides the only acknowledge-cycle backstop through INT_BERR_n.

22. Device Interface Boundaries

The motherboard decoder supplies one request or slot select to each subsystem. Each subsystem document defines its local register map, read and write strobes, data-bus wiring, and the earliest safe completion response.

Bus signals assigned to subsystem documents
Subsystem Document Motherboard request Completion response
DRAM DRAM RAM0_REQ_n, RAM1_REQ_n DRAM_DTACK_n
Firmware ROM Firmware ROM ROM_CYCLE_n ROM_DTACK_n
MC68901 MFP MFP IO0_n MFP_DTACK_n
Intel 82077AA-1 Floppy controller IO1_n FDC_DTACK_n
Yamaha YMF262 OPL3 IO2_n OPL3_DTACK_n
CL-GD5428 VGA VGA_MEM_n, IO3_n VGA_DTACK_n
System control and display System control IO4_n SYSREG_DTACK_n
MC6850 MIDI ACIA MIDI IO5_n MIDI_DTACK_n
DS1285 RTC RTC IO8_n RTC_DTACK_n
Expansion slots Expansion interface Slot 1: EXP_MEM2_n and IO6_n; slot 2: EXP_MEM3_n and IO7_n EXP_DTACK_n
Interrupt controller Interrupts CPU-space interrupt-acknowledge cycle /AVEC, or MFP_DTACK_n with an MFP vector, or INT_BERR_n for a spurious acknowledge

The fixed-device slots use their low address bits for local register selection and otherwise mirror through the slot. Reserved selects do not reach the connectors. Empty expansion ranges produce no EXP_DTACK_n response, so the motherboard timeout reports a bus error.

23. Glue-Logic Package Assignments

The assignments below cover the motherboard bus and decoder. They do not include the DRAM controller, device adapters, expansion buffers, interrupt logic, or hexadecimal display decoder.

Decoder and Storage Packages

Bus and decoder package list
Reference Part Function
U_PRIMARY SN74HCT138N Primary 2 MiB region decoder
U_IO_LOW SN74HCT138N I/O slots 0 through 7
U_IO_HIGH SN74HCT138N I/O slots 8 through 15
U_SYSREG SN74HCT138N System-register selects
U_LOW128 SN74HCT138N Low 128 KiB alias decode
U_AND SN74HCT08N CPU-space, ROM-cycle, and bus-error combine logic
U_OR1..U_OR6 SN74HCT32N Request, write, ROM, and termination logic
U_NORMAL_BUF SN74HCT244N Normal-cycle qualifier distribution
U_INVERT SN74HCT04N Address, read, overlay, debug-clock, and timeout inversion
U_OVERLAY SN74HCT74N Boot-overlay state
U_DEBUG SN74HCT574N Debug-byte storage
U_DTACK_A, U_DTACK_B SN74F21N Completion-response AND tree
U_OR_DTACK SN74F32N Final DTACK_n = DTACK_RAW_n OR TIMEOUT_ACTIVE timeout mask
U_TIMEOUT CD74HCT4040E 51.2 microsecond bus timeout

SN74HCT32N Gate Map

On each OR-gate package, gate 1 uses input pins 1 and 2 with output pin 3; gate 2 uses pins 4 and 5 with output pin 6; gate 3 uses pins 9 and 10 with output pin 8; and gate 4 uses pins 12 and 13 with output pin 11. Pin 7 is ground and pin 14 is +5 V.

OR-gate allocation
Package Gate 1 Gate 2 Gate 3 Gate 4
U_OR1 NORMAL_CYCLE_n RAM1_REQ_n VGA_MEM_n TOP_IO_n
U_OR2 OVERLAY_WRITE_n DEBUG_WRITE_n ROM_ALIAS_ADDR_n ROM_ALIAS_n
U_OR3 RAM0_BASE_n RAM0_REQ_n ROM_BANK0_n ROM_BANK1_n
U_OR4 ROM0_UDS_n ROM0_LDS_n ROM1_UDS_n ROM1_LDS_n
U_OR5 EXP_MEM2_n EXP_MEM3_n EXP_MEM5_n EXP_MEM6_n
U_OR6 SYSREG_ACK_STAGE_n SYSREG_DTACK_n Unused Unused

Pins 9, 10, 12, and 13 of U_OR6 connect to ground and its unused output pins 8 and 11 remain open. The final DTACK_n timeout mask has its own FAST package, U_OR_DTACK (SN74F32N), described in the SN74F32N gate map below.

SN74F21N Acknowledgement-Tree Gate Map

On each SN74F21N, gate 1 uses input pins 1, 2, 4, and 5 with output pin 6; gate 2 uses input pins 9, 10, 12, and 13 with output pin 8. Pin 3 and pin 11 are not connected internally. Pin 7 is ground and pin 14 is +5 V. The pin-by-pin signal assignment is in the acknowledgement-tree connections table above. Unused inputs shown as logic one connect to +5 V.

SN74F32N Gate Map

U_OR_DTACK uses gate 1 only: input pins 1 and 2 carry DTACK_RAW_n and TIMEOUT_ACTIVE, and output pin 3 is DTACK_n to the processor /DTACK pin. Gates 2 through 4 are unused; their input pins 4, 5, 9, 10, 12, and 13 connect to ground and their output pins 6, 8, and 11 remain open. Pin 7 is ground and pin 14 is +5 V.

SN74HCT04N Gate Map

Inverter allocation
Gate Input pin Output pin Output signal
1 1 2 A16_n
2 3 4 READ_n
3 5 6 ALIAS_ACTIVE
4 9 8 TIMEOUT_BERR_n
5 11 10 DEBUG_CLK
6 13 12 Unused; input GND, output open

Gate 5 input pin 11 connects to DEBUG_WRITE_n. Gate 6 is unused: tie pin 13 to ground and leave pin 12 open. The DRAM page owns both divider-reset functions because normal refresh starts only after initialization. Pin 7 is ground and pin 14 is +5 V.

SN74HCT574N Debug Register

Debug-register pin groups
Pins Connection
1 /OE to ground
2 through 9 D0..D7 to CPU D0..D7
10 Ground
11 CLK to DEBUG_CLK
12 through 19 Q7..Q0 to the hexadecimal display decoder
20 +5 V

Power and Sockets

Every logic IC is socketed. Each package has a 100 nF ceramic capacitor and a 1 uF capacitor in parallel between its supply pins, placed beside the socket. Every unused logic input is tied to ground or +5 V as listed above; unused outputs remain open.

24. Decoder Timing Verification

This section records the maximum propagation delay through the current address-decoder design. It covers the shared glue logic. Each device page adds its target access time, wait-state generation, and local /DTACK timing.

Conditions and Method

The motherboard uses a nominal +5 V supply. The SN74HCT calculations use the TI switching limits at VCC = 4.5 V, CL = 50 pF, and TA = -40 C to +85 C. The 4.5 V limits are the conservative datasheet values for the permitted SN74HCT supply range. The SN74F21N and SN74F32N in the acknowledgement path are FAST-family TTL parts; their delays below are the commercial SN74F21 (SDFS006A) and SN74F32 (SDFS044B) MIN-to-MAX-column maxima at CL = 50 pF, RL = 500 ohm, and VCC = 4.5 V to 5.5 V. That column is characterized only over TA = 0 C to +70 C: the N-package SN74F parts do not carry the -40 C to +85 C rating used for the SN74HCT glue; see the FAST-family temperature note in section 25. Each complete-path total is the sum of the applicable maximum delays; it does not include trace delay, output loading above 50 pF, or input skew.

Datasheet timing values used in the decoder calculations
Device Input path Symbol Maximum Datasheet source
SN74HCT138 A, B, or C to any Y tpd 45 ns SN74HCT138, section 5.5
SN74HCT138 Any enable to any Y tpd 42 ns SN74HCT138, section 5.5
SN74HCT32 A or B to Y tpd 30 ns SN74HCT32, section 5.5
SN74HCT08 A or B to Y tpd 30 ns SN74HCT08, section 4.5
SN74HCT04 A to Y tpd 25 ns SN74HCT04, section 5.5
SN74HCT244 A to Y tpd 42 ns SN74HCT244, section 5.5
SN74F21 Any input to Y, low-to-high tPLH 5.3 ns SN74F21, SDFS006A, switching characteristics, SN74F21 MAX
SN74F21 Any input to Y, high-to-low tPHL 5.5 ns SN74F21, SDFS006A, switching characteristics, SN74F21 MAX
SN74F32 Any input to Y, low-to-high tPLH 6.6 ns SN74F32, SDFS044B, switching characteristics, SN74F32 MAX
SN74F32 Any input to Y, high-to-low tPHL 6.3 ns SN74F32, SDFS044B, switching characteristics, SN74F32 MAX
CD74HCT4040 CP to Q1 tpd 50 ns CD74HCT4040, section 5.6
CD74HCT4040 Qn to Qn+1 tpd 19 ns CD74HCT4040, section 5.6
SN74HCT574 Data setup / hold at rising CLK tsu / th 25 ns / 5 ns SN74HCT574, section 4.5
AT28C256-15PU Address or /CE to valid data tACC / tCE 150 ns AT28C256, section 6.2

The SN74HCT tables specify tpd, defined by the measurement diagram as the greater of tPLH and tPHL. Therefore one maximum value safely covers assertion and release for each HCT stage. The SN74F21 and SN74F32 rows list tPLH and tPHL separately; the acknowledgement-release (negation) path is a rising edge at every node, so it uses the tPLH figures, and the assertion path uses tPHL.

Single-Stage Delays

Maximum delay of each decoder stage
Path Device or logic Timing path Symbol Maximum Status
A23..A21 -> REGIONx_n U_PRIMARY, SN74HCT138N Select to output tpd 45 ns Verified
AS_n -> NORMAL_CYCLE_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
FC2..FC0 -> CPU_SPACE Two cascaded SN74HCT08N gates Input through two AND stages 2 x tpd 60 ns Verified; longest path is from FC2 or FC1
CPU_SPACE -> NORMAL_CYCLE_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
NORMAL_CYCLE_n -> NORMAL_*_n SN74HCT244 buffer Input to output tpd 42 ns Verified
REGION1_n -> RAM1_REQ_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
REGION4_n -> VGA_MEM_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
REGION7_n -> TOP_IO_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
A19..A17 -> IOx_n U_IO_LOW or U_IO_HIGH, SN74HCT138N Select to output tpd 45 ns Verified
TOP_IO_n -> IOx_n U_IO_LOW or U_IO_HIGH, SN74HCT138N Enable to output tpd 42 ns Verified
A3..A1 -> SYSREGx_n U_SYSREG, SN74HCT138N Select to output tpd 45 ns Verified
IO4_n -> SYSREGx_n U_SYSREG, SN74HCT138N Enable to output tpd 42 ns Verified
SYSREG0_n -> OVERLAY_WRITE_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
SYSREG1_n -> DEBUG_WRITE_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
DEBUG_WRITE_n -> DEBUG_CLK SN74HCT04 inverter Input to output tpd 25 ns Verified
A20..A18 -> LOW128_n U_LOW128, SN74HCT138N Select to output tpd 45 ns Verified
REGION0_n or A17 -> LOW128_n U_LOW128, SN74HCT138N Enable to output tpd 42 ns Verified
LOW128_n -> ROM_ALIAS_ADDR_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
ROM_ALIAS_ADDR_n -> ROM_ALIAS_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
IO15_n or ROM_ALIAS_n -> ROM_CYCLE_n SN74HCT08 AND gate Input to output tpd 30 ns Verified
ROM_ALIAS_ADDR_n -> ALIAS_ACTIVE SN74HCT04 inverter Input to output tpd 25 ns Verified
ALIAS_ACTIVE -> RAM0_REQ_n SN74HCT32 OR gate Input to output tpd 30 ns Verified
ROM_CYCLE_n -> ROMx_xDS_n Two cascaded SN74HCT32 gates Bank select and byte-lane select 2 x tpd 60 ns Verified
A16 -> ROM1_xDS_n SN74HCT04 plus two SN74HCT32 gates Inversion, bank select, and byte-lane select tpd + 2 x tpd 85 ns Verified longest A16 route
R/W -> READ_n SN74HCT04 inverter Input to output tpd 25 ns Verified
Any completion input to DTACK_RAW_n, release Two cascaded SN74F21 gates Rising edge through group and final AND stages 2 x tPLH 10.6 ns Verified, SN74F21 SDFS006A (tPLH 5.3 ns)
Any completion input to DTACK_RAW_n, assertion Two cascaded SN74F21 gates Falling edge through group and final AND stages 2 x tPHL 11.0 ns Verified, SN74F21 SDFS006A (tPHL 5.5 ns)
DTACK_RAW_n -> DTACK_n, release U_OR_DTACK, SN74F32 OR gate Rising edge through timeout mask tPLH 6.6 ns Verified, SN74F32 SDFS044B (tPLH 6.6 ns)
TIMEOUT_ACTIVE -> TIMEOUT_BERR_n SN74HCT04 inverter Input to output tpd 25 ns Verified
TIMEOUT_BERR_n or INT_BERR_n -> BERR_n SN74HCT08 AND gate, U_AND gate 4 Input to output tpd 30 ns Verified

The full TIMEOUT_ACTIVE to BERR_n path is now 55 ns through the inverter and the combining gate. The bus timeout is a 51.2 microsecond event, so this added stage does not affect when the processor sees /BERR.

The CPU_SPACE delay is 60 ns from FC2 or FC1 because those inputs pass through both gates. The delay from FC0 is 30 ns because it passes through only the final gate.

Multi-Stage Decode Paths

Conservative totals for complete address-decode paths
Complete path Maximum stage delays Total Status
FC2..FC0 -> NORMAL_*_n 60 ns + 30 ns + 42 ns 132 ns Verified
AS_n -> NORMAL_*_n 30 ns + 42 ns 72 ns Verified
FC2..FC0 -> IOx_n 60 ns + 30 ns + 42 ns + 30 ns + 42 ns 204 ns Verified longest qualification route
FC2..FC0 -> SYSREGx_n 204 ns + 42 ns 246 ns Verified longest qualification route
FC2..FC0 -> DEBUG_CLK 246 ns + 30 ns + 25 ns 301 ns Verified longest qualification route
A23..A21 -> IOx_n 45 ns + 30 ns + 42 ns 117 ns Verified
A23..A21 -> SYSREGx_n 45 ns + 30 ns + 42 ns + 42 ns 159 ns Verified
A23..A21 -> DEBUG_CLK 45 ns + 30 ns + 42 ns + 42 ns + 30 ns + 25 ns 214 ns Verified
A23..A17 -> ROM_ALIAS_n 45 ns + 42 ns + 30 ns + 30 ns 147 ns Verified longest input route
A23..A17 -> RAM0_REQ_n 45 ns + 42 ns + 30 ns + 25 ns + 30 ns 172 ns Verified longest alias-suppression route
A23..A17 -> ROM_CYCLE_n 45 ns + 42 ns + 30 ns + 30 ns + 30 ns 177 ns Verified longest alias route
A23..A17 -> ROMx_xDS_n 177 ns + 30 ns + 30 ns 237 ns Verified longest ROM chip-select route
FC2..FC0 -> ROMx_xDS_n 60 ns + 30 ns + 42 ns + 30 ns + 30 ns + 30 ns + 30 ns 252 ns Verified longest ROM qualification route
Completion input to CPU /DTACK, release 5.3 ns + 5.3 ns + 6.6 ns 17.2 ns FAST tree only; see the Acknowledgement Release Path discussion. Verified, SN74F21 SDFS006A and SN74F32 SDFS044B
Completion input to CPU /DTACK, assertion 5.5 ns + 5.5 ns + 6.3 ns 17.3 ns FAST tree only; assertion may add a CPU wait state. Verified, SN74F21 SDFS006A and SN74F32 SDFS044B
Clock falling edge to TIMEOUT_ACTIVE 50 ns + (9 x 19 ns) 221 ns Verified worst-case Q10 ripple delay

Each broad address range above reports its longest input route. For example, an A20..A18 change reaches ROM_ALIAS_n through the 45 ns select path of U_LOW128, while an A23..A21 change first passes through U_PRIMARY and then uses the 42 ns enable path of U_LOW128.

Timing Boundary

The totals above end at the motherboard request outputs or begin at a subsystem completion input. Each subsystem document adds its local decode, device access time, and completion generation. Every adapter must keep its full response below the 51.1 microsecond minimum timeout boundary.

For the acknowledgement-release direction the constraint is the MC68EC000FN10 limit of 110 ns from AS_n or the data strobes negating to /DTACK negating. The shared motherboard contribution is the 17.2 ns FAST release tree (SN74F21 + SN74F21 + SN74F32, all low-to-high). This is logic delay only and does not on its own prove the CPU-pin timing: each subsystem adds its own local release-qualification logic ahead of its completion output, and PCB trace, connector, and receiver loading delay must be added. Those are resolved on the subsystem pages and in the final board timing review.

Measure each complete release path on the assembled board at the CPU pin. The pass limit is 110 ns from AS_n or both data strobes negating to DTACK_n high. The DRAM path has 28.5 ns of verified logic delay and an 81.5 ns allowance for receiver, interconnect, and loading; see DRAM release timing.

The firmware chip select takes at most 237 ns from the address path or 252 ns from the function-code qualification path. The AT28C256 then needs as much as 150 ns to produce valid data. The firmware interface therefore supplies the required wait states instead of acknowledging the cycle directly from ROM_CYCLE_n.

These calculations use the SN74HCT -40 C to +85 C values and a 50 pF test load, except the SN74F21 and SN74F32 release-tree stages, which use the 0 C to +70 C SN74F N-package limits (see the FAST-family temperature note in section 25). Section 25 also defines how socket, trace, and receiver capacitance are checked when each subsystem schematic is completed.

25. Electrical Compatibility and Fanout

This section verifies logic levels and static-current fanout within the address-decode network. It does not include memory, peripheral, expansion, connector, or PCB trace loading.

Verification Rules

HIGH noise margin = VOH(min) - VIH(min)
LOW noise margin  = VIL(max) - VOL(max)

A connection is statically compatible when both margins are zero or greater. Fanout is checked by comparing the sum of receiver input currents with the output current at which the driver guarantees its stated VOH or VOL.

Datasheet Limits

Worst-case electrical values used in this section
Device Parameter Guaranteed value Condition Source
MC68EC000 VOH(min) VCC - 0.75 V, or 4.00 V at minimum VCC IOH = -400 uA; VCC = 5 V +/-5% MC68000UM, section 10.13
MC68EC000 address and function-code outputs VOL(max) 0.50 V IOL = 3.2 mA MC68000UM, section 10.13
MC68EC000 bus-control outputs VOL(max) 0.50 V IOL = 5.3 mA for AS_n, R/W, UDS_n, and LDS_n MC68000UM, section 10.13
SN74HCT input VIH(min) / VIL(max) 2.00 V / 0.80 V VCC = 4.5 V to 5.5 V TI recommended operating conditions
SN74HCT output VOH(min) / VOL(max) 3.84 V / 0.33 V VCC = 4.5 V; IOH = -4 mA; IOL = 4 mA TI electrical characteristics
SN74HCT input II(max) +/-1 uA VI = VCC or 0 V; VCC = 5.5 V TI electrical characteristics
SN74HCT input Ci(max) 10 pF VCC = 4.5 V to 5.5 V TI electrical characteristics
MC68EC000 input (/DTACK group) VIH(min) / VIL(max) 2.00 V / 0.80 V VCC = 5 V +/-5% MC68000UM, section 10.13
MC68EC000 input (/DTACK group) Iin(max) / Cin(max) +/-2.5 uA / 20 pF /DTACK is in the listed leakage group; Vin = 0 V, 1 MHz for Cin MC68000UM, section 10.13
SN74F input (F10, F21, F32) VIH(min) / VIL(max) 2.00 V / 0.80 V VCC = 4.5 V to 5.5 V SN74F21 SDFS006A, SN74F32 SDFS044B, SN74F10 SDFS039A (identical recommended operating conditions)
SN74F output (F10, F21, F32) VOH(min) / VOL(max) 2.50 V / 0.50 V VCC = 4.5 V; IOH = -1 mA; IOL = 20 mA (VOH = 2.7 V at VCC = 4.75 V) SN74F electrical characteristics (identical across the three)
SN74F input (F10, F21, F32) IIH(max) / IIL(max) 20 uA / -0.6 mA VCC = 5.5 V; VI = 2.7 V / VI = 0.5 V; II = 0.1 mA at VI = 7 V SN74F electrical characteristics (identical across the three)
SN74F output drive (F10, F21, F32) IOH / IOL at rated VOH / VOL 1 mA source / 20 mA sink From recommended operating conditions SN74F recommended operating conditions
MC68EC000 output CL(max) 130 pF All outputs used here MC68000UM, section 10.13
SN74HCT output timing Published switching test load 50 pF Includes probe and fixture capacitance TI switching characteristics
SN74F output timing (F10, F21, F32) Published switching test load 50 pF, RL = 500 ohm Includes probe and fixture capacitance SN74F switching characteristics

The HCT values above are common to the project datasheets for the SN74HCT04, SN74HCT08, SN74HCT32, and SN74HCT138 at the stated test conditions. The SN74F input and output values are common to the SN74F10, SN74F21, and SN74F32 data sheets; the N-package parts state no input capacitance and are characterized only over TA = 0 C to +70 C.

CPU-to-HCT Compatibility

MC68EC000 output to SN74HCT input noise margins
Driver Receiver VOH(min) VIH(min) High margin VOL(max) VIL(max) Low margin Status
MC68EC000 address, function-code, or bus-control output SN74HCT input 4.00 V 2.00 V 2.00 V 0.50 V 0.80 V 0.30 V Compatible

The high-level calculation uses the minimum CPU supply of 4.75 V: 4.75 V - 0.75 V = 4.00 V. The low-level voltage is the same for the CPU output groups used by the decoder, although their guaranteed sink currents differ.

HCT-to-HCT Compatibility

SN74HCT output to SN74HCT input noise margins
Driver Receiver VOH(min) VIH(min) High margin VOL(max) VIL(max) Low margin Status
SN74HCT output SN74HCT input 3.84 V 2.00 V 1.84 V 0.33 V 0.80 V 0.47 V Compatible

FAST-Family Compatibility

The acknowledgement AND tree (U_DTACK_A, U_DTACK_B, SN74F21N) and the timeout OR mask (U_OR_DTACK, SN74F32N) are FAST TTL. The DRAM completion driver U_DRAM_DTACK_GATE (SN74F10N, documented on the DRAM page) shares the same DC limits. The voltage checks below use the rated-current worst-case values from the Datasheet Limits table.

FAST acknowledgement-path noise margins
Driver Receiver VOH(min) VIH(min) High margin VOL(max) VIL(max) Low margin Status
SN74F output (DRAM_DTACK_n, DTACK_GROUPx_n, DTACK_RAW_n) SN74F input (F21 or F32) 2.50 V 2.00 V 0.50 V 0.50 V 0.80 V 0.30 V Compatible
SN74F output (DTACK_n, U_OR_DTACK) MC68EC000 /DTACK input 2.50 V 2.00 V 0.50 V 0.50 V 0.80 V 0.30 V Compatible
MC68EC000 bus-control output (AS_n, UDS_n, LDS_n) SN74F input (F10 completion gate) 4.00 V 2.00 V 2.00 V 0.50 V 0.80 V 0.30 V Compatible
SN74HCT output (TIMEOUT_ACTIVE, CD74HCT4040 Q10) SN74F input (U_OR_DTACK) 3.84 V 2.00 V 1.84 V 0.33 V 0.80 V 0.47 V Compatible

The high margin uses the 2.50 V FAST VOH(min) at VCC = 4.5 V; at a nominal 5 V rail the guaranteed VOH is 2.7 V or higher, so 0.50 V is a floor. Every FAST driver in the path also meets the CPU's VIL(max) with 0.30 V of low-side margin, the same figure the CPU-to-HCT check carries.

FAST acknowledgement-path static-current fanout
Signal Driver FAST loads Load current (LOW / HIGH) Driver guaranteed drive Status
DRAM_DTACK_n and each other subsystem completion signal Subsystem completion driver 1 (one U_DTACK_A / U_DTACK_B input) 0.6 mA / 20 uA SN74F10N for DRAM: 20 mA sink, 1 mA source. Other subsystems verify their own driver on their page. Pass for the FAST-driven completion inputs
DTACK_GROUP0_n..DTACK_GROUP2_n U_DTACK_A / U_DTACK_B, SN74F21N 1 (one U_DTACK_B gate-2 input) 0.6 mA / 20 uA 20 mA sink; 1 mA source Pass; ratio 33 sink, 50 source
DTACK_RAW_n U_DTACK_B gate 2, SN74F21N 1 (one U_OR_DTACK input) 0.6 mA / 20 uA 20 mA sink; 1 mA source Pass
TIMEOUT_ACTIVE CD74HCT4040 Q10 1 FAST (U_OR_DTACK) plus 1 HCT (U_INVERT) 0.6 mA + 1 uA / 20 uA + 1 uA HCT 4 mA sink / 4 mA source; the 0.6 mA FAST IIL is well inside it Pass; HCT VOL stays below the 0.8 V FAST limit
DTACK_n U_OR_DTACK, SN74F32N MC68EC000 /DTACK (2.5 uA leakage) 2.5 uA / 2.5 uA 20 mA sink; 1 mA source Pass with large margin

The binding FAST current is the 0.6 mA LOW input current (IIL) that each SN74F input can pull from its driver. No net in the acknowledgement tree presents more than one FAST load to an SN74F21 or SN74F32 output, and each of those outputs sinks 20 mA, so the sink ratio never falls below about 33. AS_n, UDS_n, and LDS_n gain FAST loads at U_DRAM_DTACK_GATE; that budget is on the DRAM page because those strobes are decoded there.

FAST-Family Temperature Range

The N-package SN74F10, SN74F21, and SN74F32 are characterized only over TA = 0 C to +70 C. This is the motherboard's specified operating range because the design requires plastic through-hole FAST parts. The HCT devices have wider published ranges, but that does not widen the assembled motherboard rating.

Static-Current Fanout

Each HCT input contributes at most 1 uA of leakage magnitude. The current checks below cover the documented decode-network loads only. Each named stage is one of the package assignments above.

Static-current fanout within the address-decode network
Signal Driver HCT loads Maximum load current Guaranteed driver current Status
A23, A22, or A21 MC68EC000 3 3 uA 400 uA source; 3.2 mA sink Pass
A20, A19, A18, or A17 MC68EC000 5 5 uA 400 uA source; 3.2 mA sink Pass
FC2, FC1, or FC0 MC68EC000 1 1 uA 400 uA source; 3.2 mA sink Pass for the normal decode network
AS_n MC68EC000 3 3 uA 400 uA source; 5.3 mA sink Pass
UDS_n MC68EC000 4 4 uA 400 uA source; 5.3 mA sink Pass within the ROM decoder
LDS_n MC68EC000 6 6 uA 400 uA source; 5.3 mA sink Pass within the shared decoder
R/W MC68EC000 10 10 uA 400 uA source; 5.3 mA sink Pass with six expansion-interface inputs
CPU_SPACE_STAGE1 SN74HCT08N 1 1 uA 4 mA source or sink Pass
CPU_SPACE SN74HCT08N 2 2 uA 4 mA source or sink Pass; one load is the interrupt acknowledge qualifier
REGION0_n U_PRIMARY, SN74HCT138N 2 2 uA 4 mA source or sink Pass
NORMAL_CYCLE_n U_OR1, SN74HCT32N 3 3 uA 4 mA source or sink Pass
NORMAL_MEM_n or NORMAL_EXP_n U_NORMAL_BUF, SN74HCT244N 4 4 uA 6 mA source or sink Pass
NORMAL_MISC_n U_NORMAL_BUF, SN74HCT244N 2 2 uA 6 mA source or sink Pass
TOP_IO_n U_OR1, SN74HCT32N 2 2 uA 4 mA source or sink Pass
ROM_ALIAS_ADDR_n U_OR2, SN74HCT32N 2 2 uA 4 mA source or sink Pass
ROM_CYCLE_n U_AND, SN74HCT08N 2 2 uA 4 mA source or sink Pass

The smallest calculated CPU source-current ratio is on R/W: 400 uA / 10 uA, or 40. The smallest HCT current ratio is on a four-load normal-cycle copy: 6000 uA / 4 uA, or 1500. Static-current fanout is therefore not the limiting factor for the defined network.

Capacitive Loading

Receiver capacitance before PCB trace and probe loading
Signal group HCT inputs Maximum receiver capacitance Comparison value Status
A23..A21 3 per signal 30 pF per signal MC68EC000 CL(max) = 130 pF Pass within documented network
FC2..FC0 1 per signal 10 pF per signal MC68EC000 CL(max) = 130 pF Pass within documented network
A20..A17 5 per signal 50 pF per signal MC68EC000 CL(max) = 130 pF Pass within documented network
AS_n, UDS_n, or LDS_n 3 to 6 per signal 30 pF to 60 pF per signal MC68EC000 CL(max) = 130 pF Pass within the shared decoder
R/W 10 100 pF MC68EC000 CL(max) = 130 pF 30 pF remains for PCB loading
CPU_SPACE_STAGE1 1 10 pF HCT timing characterized at 50 pF 40 pF remains for traces and probing
CPU_SPACE 2 20 pF HCT timing characterized at 50 pF 30 pF remains for traces and probing; second load is the interrupt acknowledge qualifier
REGION0_n, TOP_IO_n, or ROM_ALIAS_ADDR_n 2 20 pF HCT timing characterized at 50 pF 30 pF remains for traces and probing
NORMAL_CYCLE_n 3 30 pF HCT timing characterized at 50 pF 20 pF remains for socket, trace, and probe loading
NORMAL_MEM_n or NORMAL_EXP_n 4 40 pF HCT timing characterized at 50 pF 10 pF remains for socket, trace, and probe loading
NORMAL_MISC_n 2 20 pF HCT timing characterized at 50 pF 30 pF remains for socket, trace, and probe loading
ROM_CYCLE_n 2 20 pF HCT timing characterized at 50 pF 30 pF remains for socket, trace, and probe loading

The capacitance totals use the 10 pF maximum for each HCT input. They exclude package sockets, traces, vias, connectors, and measurement probes. The four-load normal-cycle copies have the least remaining margin. Keep each completed HCT net at or below 50 pF, or add another HCT buffer and recalculate its timing.

Each of A16..A1 also gains two HCT244 inputs from the expansion interface, for at most 20 pF added receiver capacitance and 2 uA added leakage per line. Add these to the line's device-specific consumers when checking the complete motherboard.

The SN74F10, SN74F21, and SN74F32 data sheets state no input capacitance. The FAST acknowledgement nets each carry one FAST load and a short motherboard trace, so they stay well inside the 50 pF, 500 ohm switching-test load; the exact receiver plus trace figure is confirmed in the final board load audit alongside the HCT nets.

Subsystem Integration Rules

Loading rules for the remaining subsystem schematics
Item Rule Where it is checked
CPU outputs Keep total direct loading at or below 100 pF. This leaves 30 pF below the processor's 130 pF limit for board and measurement loading. Each device page and the final motherboard load audit.
HCT outputs Keep total loading at or below the 50 pF timing condition. Add an HCT buffer if a net exceeds it. The page that owns the driven receivers.
Socket and layout loading Count socket, trace, via, connector, and probe capacitance in addition to receiver inputs. PCB review after placement and routing.
FAST parts in the acknowledgement path (SN74F21N, SN74F32N, SN74F10N) Keep each FAST-driven net at or below the 50 pF, 500 ohm switching-test load, and at most one FAST load per SN74F21 or SN74F32 output as wired. Voltage and static-current margins are checked in FAST-Family Compatibility above. Operating temperature is limited to 0 C to +70 C for the N-package parts (FAST-Family Temperature Range). FAST-family compatibility above; the DRAM page for the strobe loading added at U_DRAM_DTACK_GATE.
Expansion slots Each connector has its own HCT244 address/control banks and HCT245 data path. The motherboard supports two front slots. expansion.html

26. Internal Signal Reference

This reference lists named signals generated or consumed by the motherboard bus-and-decode logic. Names ending in _n are active low. Other names are active high unless their description says otherwise.

CPU pins such as A23..A0, FC2..FC0, AS_n, and R/W are external inputs to this logic and are not listed as internal signals. Package pin names such as /Y0 are not separate reference entries. The package names match the assignments in this document.

Cycle and Address Decode

Cycle qualification and address-decode signals
Signal Meaning Active level Generated by Used by
CPU_SPACE_STAGE1 Intermediate function-code decode. High FC2 AND FC1 in U_AND gate 1 U_AND gate 2
CPU_SPACE The function codes select CPU space. High CPU_SPACE_STAGE1 AND FC0 in U_AND gate 2 Normal-cycle qualification
NORMAL_CYCLE_n An ordinary memory or I/O bus cycle is active. Low AS_n OR CPU_SPACE U_NORMAL_BUF
NORMAL_MEM_n Buffered normal-cycle qualifier for on-board memory decode. Low U_NORMAL_BUF RAM requests, CL-GD5428 host memory, and top I/O
NORMAL_EXP_n Buffered normal-cycle qualifier for expansion memory. Low U_NORMAL_BUF Four expansion-memory request gates
NORMAL_MISC_n Buffered normal-cycle qualifier for ROM alias and timeout. Low U_NORMAL_BUF ROM-alias qualifier and timeout reset
REGION0_n Raw decode for $000000-$1FFFFF. Low U_PRIMARY /Y0 RAM0 base request and low-128-KiB decoder
REGION1_n Raw decode for $200000-$3FFFFF. Low U_PRIMARY /Y1 RAM1 request
REGION2_n Raw decode for $400000-$5FFFFF. Low U_PRIMARY /Y2 Expansion interface
REGION3_n Raw decode for $600000-$7FFFFF. Low U_PRIMARY /Y3 Expansion interface
REGION4_n Raw decode for $800000-$9FFFFF. Low U_PRIMARY /Y4 CL-GD5428 VGA host-memory request
REGION5_n Raw decode for $A00000-$BFFFFF. Low U_PRIMARY /Y5 Reserved-region qualifier only
REGION6_n Raw decode for $C00000-$DFFFFF. Low U_PRIMARY /Y6 Reserved-region qualifier only
REGION7_n Raw decode for $E00000-$FFFFFF. Low U_PRIMARY /Y7 Top-I/O qualification
RAM1_REQ_n Qualified request for DRAM bank 1. Low REGION1_n OR NORMAL_MEM_n DRAM controller
VGA_MEM_n Qualified request for the CL-GD5428 VGA host-memory aperture. Low REGION4_n OR NORMAL_MEM_n CL-GD5428 host interface
TOP_IO_n Qualified cycle in $E00000-$FFFFFF. Low REGION7_n OR NORMAL_MEM_n U_IO_LOW and U_IO_HIGH
EXP_MEM2_n, EXP_MEM3_n Qualified selects for the two fitted expansion slots. Low Corresponding REGIONx_n OR NORMAL_EXP_n Front expansion slots 1 and 2
EXP_MEM5_n, EXP_MEM6_n Qualified reserved-region selects with no connector route. Low Corresponding REGIONx_n OR NORMAL_EXP_n No consumer in revision 1.0
IO0_n..IO7_n Eight qualified 128 KiB slot selects in $E00000-$EFFFFF. Low U_IO_LOW /Y0../Y7 MFP, floppy, OPL3, CL-GD5428 VGA I/O, system registers, MIDI, and two front expansion slots
IO8_n..IO15_n Eight qualified 128 KiB slot selects in $F00000-$FFFFFF. Low U_IO_HIGH /Y0../Y7 RTC, six reserved slots, and permanent firmware ROM
SYSREG0_n..SYSREG7_n Lower-byte selects for the eight motherboard system registers. Low U_SYSREG /Y0../Y7 Overlay and debug registers; SYSREG2_n..SYSREG7_n are reserved

Overlay, ROM, and DRAM Control

Internal write, overlay, ROM, and DRAM request signals
Signal Meaning Active level Generated by Used by
OVERLAY_WRITE_n A write to SYSREG0 / SYSCTRL is active. Low SYSREG0_n OR R/W U_OVERLAY 1/CLR
DEBUG_WRITE_n A write to SYSREG1 / DEBUG is active. Low SYSREG1_n OR R/W DEBUG_CLK inverter
DEBUG_CLK Positive-edge clock for the debug-byte register. Rising edge NOT DEBUG_WRITE_n in U_INVERT gate 5 U_DEBUG CLK
OVERLAY_EN Stored boot-overlay state; high means enabled. High U_OVERLAY Q Overlay state logic
OVERLAY_n Active-low complement of OVERLAY_EN. Low U_OVERLAY /Q ROM alias address logic
LOW128_n Raw decode for $000000-$01FFFF. Low U_LOW128 /Y0 ROM alias address logic
ROM_ALIAS_ADDR_n The address is in the low 128 KiB while the overlay is enabled. Low LOW128_n OR OVERLAY_n ROM alias qualification and RAM0 suppression
ROM_ALIAS_n A normal bus cycle is accessing the low firmware alias. Low ROM_ALIAS_ADDR_n OR NORMAL_MISC_n Firmware ROM cycle selection
ROM_CYCLE_n Either firmware mapping owns the current bus cycle. Low IO15_n AND ROM_ALIAS_n Firmware EEPROM interface
A16_n Inverted ROM half-select address bit. Low when A16 is high U_INVERT gate 1 ROM_BANK1_n generation
READ_n Active-low firmware output-enable signal. Low NOT R/W in U_INVERT gate 2 All four EEPROM /OE pins
ROM_BANK0_n, ROM_BANK1_n Qualified selects for the lower and upper 64 KiB ROM halves. Low ROM_CYCLE_n combined with A16 or A16_n ROM byte-lane select gates
ROM0_UDS_n, ROM0_LDS_n, ROM1_UDS_n, ROM1_LDS_n Chip enables for the four AT28C256-15PU devices. Low Selected ROM half combined with UDS_n or LDS_n EEPROM /CE pins
ALIAS_ACTIVE Active-high form of the unqualified ROM alias address condition. High NOT ROM_ALIAS_ADDR_n RAM0 suppression
RAM0_BASE_n Qualified REGION0 request before overlay suppression. Low REGION0_n OR NORMAL_MEM_n Final RAM0 request logic
RAM0_REQ_n Qualified DRAM bank 0 request after overlay suppression. Low RAM0_BASE_n OR ALIAS_ACTIVE DRAM controller

Bus Completion and Error Signals

Subsystem completion names describe logical active-low responses. They are not necessarily pins on the named peripheral.

Internal bus-completion and error signals
Signal Meaning Active level Generated by Used by
DRAM_DTACK_n A DRAM transaction completed. Low DRAM controller DTACK_n combination logic
ROM_DTACK_n A firmware ROM transaction completed. Low Firmware ROM interface DTACK_n combination logic
SYSREG_ACK_STAGE_n A lower-byte access to the system-register slot is active. Low IO4_n OR LDS_n in U_OR6 SYSREG_DTACK_n generation
SYSREG_DTACK_n A system-register transaction completed. Low SYSREG_ACK_STAGE_n OR R/W in U_OR6 DTACK_n combination logic
MFP_DTACK_n An MFP register or vectored acknowledge transaction completed. Low MFP interface DTACK_n combination logic
FDC_DTACK_n A floppy-controller transaction completed. Low Floppy interface DTACK_n combination logic
OPL3_DTACK_n An OPL3 transaction completed. Low OPL3 interface DTACK_n combination logic
VGA_DTACK_n A CL-GD5428 VGA memory or I/O transaction completed. Low CL-GD5428 host interface DTACK_n combination logic
MIDI_DTACK_n The MC6850 enable cycle completed and read data, when present, is held for the processor. Low MC6850 bus adapter DTACK_n combination logic
RTC_DTACK_n An RTC transaction completed. Low RTC interface DTACK_n combination logic
EXP_DTACK_n An expansion transaction completed. Low Expansion interface DTACK_n combination logic
DTACK_GROUP0_n..DTACK_GROUP2_n Intermediate groups of active-low completion responses. Low U_DTACK_A and U_DTACK_B DTACK_RAW_n generation
DTACK_RAW_n Combined response before the timeout mask. Low U_DTACK_B gate 2 Final DTACK_n gate
DTACK_n Combined motherboard completion response. Low DTACK_RAW_n OR TIMEOUT_ACTIVE in U_OR_DTACK (SN74F32N) Processor /DTACK input
TIMEOUT_ACTIVE The 512-edge normal-cycle timeout has expired. High U_TIMEOUT Q10 DTACK_n mask and bus-error inverter
TIMEOUT_BERR_n An unanswered normal cycle exceeded the permitted time. Low NOT TIMEOUT_ACTIVE in U_INVERT U_AND gate 4 (BERR_n)
INT_BERR_n Spurious or phantom interrupt-acknowledge abort; the CPU-space backstop the bus timeout cannot provide. Low Interrupt logic U_AND gate 4 (BERR_n)
BERR_n Combined bus error: TIMEOUT_BERR_n AND INT_BERR_n. Low U_AND gate 4 Processor /BERR input

27. Sources