12 ICs
1L ’20
6K ’163 6L ’163 6M ’163
7L ’86 7M ’86
8L ’257 8M ’257
9L 2148H 9M 2148H
10L ’1’ 10M ’1’
6L — 74LS163: X counter low for buffer 2 - the mirror of 5L on sheet 5/6. Preloads DF0-DF3 at /2LOAD, cleared per line at /2CL, counts at OB6M with P and T tied high, and carries into 6M. — verified 2026-07-27
6L ✓
74LS163
/2CL · from 4/6
~CL
1
/2CL
OB6M · from 4/6
CLK
2
OB6M
DF0 · from 3/6
A
3
DF0
DF1 · from 3/6
B
4
DF1
DF2 · from 3/6
C
5
DF2
DF3 · from 3/6
D
6
DF3
+5V
P
7
+5V
/2LOAD · from 4/6
~LD
9
/2LOAD
+5V
T
10
+5V
$X2D · -> 7L
QD
11
$X2D
$X2C · -> 7L
QC
12
$X2C
$X2B · -> 7L
QB
13
$X2B
$X2A · -> 7L
QA
14
$X2A
$X2CA1 · -> 6M pins 7 (P) and 10 (T) - ripple carry into the high counter
CA
15
$X2CA1
GND:8=GND VCC:16=+5V
6M — 74LS163: X counter high for buffer 2 - the mirror of 5M. Preloads DF4-DF7 at /2LOAD, enabled by 6L's carry, and carries on into 6K, so 6L/6M/6K make one 9-bit X counter as on sheet 5/6. — verified 2026-07-27
6M ✓
74LS163
/2CL · from 4/6
~CL
1
/2CL
OB6M · from 4/6
CLK
2
OB6M
DF4 · from 3/6
A
3
DF4
DF5 · from 3/6
B
4
DF5
DF6 · from 3/6
C
5
DF6
DF7 · from 3/6
D
6
DF7
$X2CA1 · <- 6L pin 15 CA
P
7
$X2CA1
/2LOAD · from 4/6
~LD
9
/2LOAD
$X2CA1 · <- 6L pin 15 CA
T
10
$X2CA1
$X2H · -> 7M
QD
11
$X2H
$X2G · -> 7M
QC
12
$X2G
$X2F · -> 7M
QB
13
$X2F
$X2E · -> 7M
QA
14
$X2E
$X2CA2 · -> 6K pins 7 (P) and 10 (T)
CA
15
$X2CA2
GND:8=GND VCC:16=+5V
6K — 74LS163: X counter bit 8 for buffer 2 - the mirror of 5K. Preloads HOVER with B/C/D grounded, enabled by 6M's carry. Its QA is address bit 8 of the line RAM, and because the RAM is only 256 deep that bit is wired to /CE: the moment the X counter passes pixel 255 the RAM deselects and the sprite clips at the right edge. QB/QC/QD and CA unused. — verified 2026-07-27
6K ✓
74LS163
/2CL · from 4/6
~CL
1
/2CL
OB6M · from 4/6
CLK
2
OB6M
HOVER · from 3/6
A
3
HOVER
GND · strapped together to ground
B
4
GND
GND · strapped together to ground
C
5
GND
GND · strapped together to ground
D
6
GND
$X2CA2 · <- 6M pin 15 CA
P
7
$X2CA2
/2LOAD · from 4/6
~LD
9
/2LOAD
$X2CA2 · <- 6M pin 15 CA
T
10
$X2CA2
$X2OVER · -> 9L and 9M pin 8 /CE - address bit 8, drawn as line '8' on the bus | the sheet annotates this wire as bit 8 of the address bus
QA
14
$X2OVER
GND:8=GND VCC:16=+5V
7L — 74LS86: Flip XOR for buffer 2 (low half) - the mirror of 4L on sheet 5/6. OBFLIP2 inverts the X bits so a horizontally flipped sprite writes its pixels into the line backwards. — verified 2026-07-27
7L ✓
74LS86
$X2A · <- 6L pin 14
A1
1
$X2A
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B1
2
OBFLIP2
$X2B · <- 6L pin 13
A2
4
$X2B
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B2
5
OBFLIP2
$X2C · <- 6L pin 12
A3
9
$X2C
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B3
10
OBFLIP2
$X2D · <- 6L pin 11
A4
12
$X2D
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B4
13
OBFLIP2
$LB2CA0 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y1
3
$LB2CA0
$LB2CA1 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y2
6
$LB2CA1
$LB2CA2 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y3
8
$LB2CA2
$LB2CA3 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y4
11
$LB2CA3
GND:7=GND VCC:14=+5V
7M — 74LS86: Flip XOR for buffer 2 (high half) - the mirror of 4M on sheet 5/6. OBFLIP2 inverts the X bits so a horizontally flipped sprite writes its pixels into the line backwards. — verified 2026-07-27
7M ✓
74LS86
$X2E · <- 6M pin 14
A1
1
$X2E
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B1
2
OBFLIP2
$X2F · <- 6M pin 13
A2
4
$X2F
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B2
5
OBFLIP2
$X2G · <- 6M pin 12
A3
9
$X2G
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B3
10
OBFLIP2
$X2H · <- 6M pin 11
A4
12
$X2H
OBFLIP2 · the sheet letters this bundle just FLIP; it is OBFLIP2, in from 4/6
B4
13
OBFLIP2
$LB2CA4 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y1
3
$LB2CA4
$LB2CA5 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y2
6
$LB2CA5
$LB2CA6 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y3
8
$LB2CA6
$LB2CA7 · -> 9L/9M RAM address | the sheet annotates this address bus as bit indices 0-7, not by name
Y4
11
$LB2CA7
GND:7=GND VCC:14=+5V
9L — 2148H: Line RAM for buffer 2, low nibble - the mirror of 3K on sheet 5/6. A0-A7 from the flip XORs, A8/A9 grounded, /CE is the 9th X bit so the sprite clips at the right edge, /2WR shared with its partner. Data pins sit on the read-modify-write bus with 8L's '257 and are read by 10L. — verified 2026-07-27
9L ✓
2148H
$LB2CA6 · the sheet annotates this address bus as bit indices 0-7, not by name
A6
1
$LB2CA6
$LB2CA5 · the sheet annotates this address bus as bit indices 0-7, not by name
A5
2
$LB2CA5
$LB2CA4 · the sheet annotates this address bus as bit indices 0-7, not by name
A4
3
$LB2CA4
$LB2CA3 · the sheet annotates this address bus as bit indices 0-7, not by name
A3
4
$LB2CA3
$LB2CA0 · the sheet annotates this address bus as bit indices 0-7, not by name
A0
5
$LB2CA0
$LB2CA1 · the sheet annotates this address bus as bit indices 0-7, not by name
A1
6
$LB2CA1
$LB2CA2 · the sheet annotates this address bus as bit indices 0-7, not by name
A2
7
$LB2CA2
$X2OVER · <- 6K pin 14 QA - the 9th address bit doubles as chip enable, clipping the sprite at the right edge of the line | the sheet annotates this wire as bit 8 of the address bus
~CE
8
$X2OVER
/2WR · from 4/6 - one wire shared with the other RAM
~WE
10
/2WR
$CD3 · <-> 8L pin 4 through the RA6 pull-ups, read by 10L
IO4
11
$CD3
$CD2 · <-> 8L pin 7 through the RA6 pull-ups, read by 10L
IO3
12
$CD2
$CD1 · <-> 8L pin 9 through the RA6 pull-ups, read by 10L
IO2
13
$CD1
$CD0 · <-> 8L pin 12 through the RA6 pull-ups, read by 10L
IO1
14
$CD0
GND
A9
15
GND
GND
A8
16
GND
$LB2CA7 · the sheet annotates this address bus as bit indices 0-7, not by name
A7
17
$LB2CA7
GND:9=GND VCC:18=+5V
9M — 2148H: Line RAM for buffer 2, high nibble - the mirror of 4K on sheet 5/6. A0-A7 from the flip XORs, A8/A9 grounded, /CE is the 9th X bit so the sprite clips at the right edge, /2WR shared with its partner. Data pins sit on the read-modify-write bus with 8M's '257 and are read by 10M. — verified 2026-07-27
9M ✓
2148H
$LB2CA6 · the sheet annotates this address bus as bit indices 0-7, not by name
A6
1
$LB2CA6
$LB2CA5 · the sheet annotates this address bus as bit indices 0-7, not by name
A5
2
$LB2CA5
$LB2CA4 · the sheet annotates this address bus as bit indices 0-7, not by name
A4
3
$LB2CA4
$LB2CA3 · the sheet annotates this address bus as bit indices 0-7, not by name
A3
4
$LB2CA3
$LB2CA0 · the sheet annotates this address bus as bit indices 0-7, not by name
A0
5
$LB2CA0
$LB2CA1 · the sheet annotates this address bus as bit indices 0-7, not by name
A1
6
$LB2CA1
$LB2CA2 · the sheet annotates this address bus as bit indices 0-7, not by name
A2
7
$LB2CA2
$X2OVER · <- 6K pin 14 QA - the 9th address bit doubles as chip enable, clipping the sprite at the right edge of the line | the sheet annotates this wire as bit 8 of the address bus
~CE
8
$X2OVER
/2WR · from 4/6 - one wire shared with the other RAM
~WE
10
/2WR
$CD7 · <-> 8M pin 4 through the RA7 pull-ups, read by 10M
IO4
11
$CD7
$CD6 · <-> 8M pin 7 through the RA7 pull-ups, read by 10M
IO3
12
$CD6
$CD5 · <-> 8M pin 9 through the RA7 pull-ups, read by 10M
IO2
13
$CD5
$CD4 · <-> 8M pin 12 through the RA7 pull-ups, read by 10M
IO1
14
$CD4
GND
A9
15
GND
GND
A8
16
GND
$LB2CA7 · the sheet annotates this address bus as bit indices 0-7, not by name
A7
17
$LB2CA7
GND:9=GND VCC:18=+5V
1L — 74LS20: Transparency test for buffer 2 - gate 2 of the same physical '20 whose gate 1 serves buffer 1 on sheet 5/6. NANDs the low nibble read back from the RAM: all four bits high means pen 15, the pixel is still empty, so the output drops and steers both write-back muxes to take the new sprite pixel. One chip, one gate per line buffer. — verified 2026-07-27
1L ✓
74LS20
drawn on b1-5-linebuffer1 - click to jump there · OB10
A
1
OB10
↗
drawn on b1-5-linebuffer1 - click to jump there · OB13
D
2
OB13
↗
drawn on b1-5-linebuffer1 - click to jump there · OB11
B
4
OB11
↗
drawn on b1-5-linebuffer1 - click to jump there · OB12
C
5
OB12
↗
OB21 · <- 10L
B
9
OB21
OB22 · <- 10L
C
10
OB22
OB20 · <- 10L
A
12
OB20
OB23 · <- 10L
D
13
OB23
drawn on b1-5-linebuffer1 - click to jump there · /$B1EMPTY · one wire to SEL on both 1K pin 1 and 2K pin 1
Y
6
/$B1EMPTY
↗
/$B2EMPTY · one wire to SEL on both 8L and 8M
Y
8
/$B2EMPTY
GND:7=GND VCC:14=+5V
8L — 74LS257: Write-back mux for buffer 2, low nibble - the mirror of 1K on sheet 5/6. (A) is the incoming sprite pixel, (B) is the value 10L latched back out of the RAM, and 1L's transparency test picks between them so the first sprite to reach a pixel keeps it. Tri-stated by /2ST while the RAM drives the shared bus. Note the sheet numbers the mux channels 1-4 top to bottom, opposite to the datasheet. — verified 2026-07-27
8L ✓
74LS257
/$B2EMPTY · <- 1L pin 8, shared with the other mux
SEL
1
/$B2EMPTY
COL3 · from 4/6
4A
2
COL3
OB23 · <- 10L
4B
3
OB23
COL2 · from 4/6
3A
5
COL2
OB22 · <- 10L
3B
6
OB22
OB21 · <- 10L
2B
10
OB21
COL1 · from 4/6
2A
11
COL1
OB20 · <- 10L
1B
13
OB20
COL0 · from 4/6
1A
14
COL0
/2ST · from 4/6 - one line to both muxes
~ST
15
/2ST
$CD3 · -> 9L pin 11 and 10L pin 3 (shared bus)
4Y
4
$CD3
$CD2 · -> 9L pin 12 and 10L pin 4 (shared bus)
3Y
7
$CD2
$CD1 · -> 9L pin 13 and 10L pin 6 (shared bus)
2Y
9
$CD1
$CD0 · -> 9L pin 14 and 10L pin 11 (shared bus)
1Y
12
$CD0
GND:8=GND VCC:16=+5V
8M — 74LS257: Write-back mux for buffer 2, high nibble - the mirror of 2K on sheet 5/6. (A) is the incoming sprite pixel, (B) is the value 10M latched back out of the RAM, and 1L's transparency test picks between them so the first sprite to reach a pixel keeps it. Tri-stated by /2ST while the RAM drives the shared bus. Note the sheet numbers the mux channels 1-4 top to bottom, opposite to the datasheet. — verified 2026-07-27
8M ✓
74LS257
/$B2EMPTY · <- 1L pin 8, shared with the other mux
SEL
1
/$B2EMPTY
OB27 · <- 10M
4B
3
OB27
OB26 · <- 10M
3B
6
OB26
OB25 · <- 10M
2B
10
OB25
COL5 · from 3/6
2A
11
COL5
OB24 · <- 10M
1B
13
OB24
COL4 · from 3/6
1A
14
COL4
/2ST · from 4/6 - one line to both muxes
~ST
15
/2ST
$CD7 · -> 9M pin 11 and 10M pin 3 (shared bus)
4Y
4
$CD7
$CD6 · -> 9M pin 12 and 10M pin 4 (shared bus)
3Y
7
$CD6
$CD5 · -> 9M pin 13 and 10M pin 6 (shared bus)
2Y
9
$CD5
$CD4 · -> 9M pin 14 and 10M pin 11 (shared bus)
1Y
12
$CD4
GND:8=GND VCC:16=+5V
10L — 74LS174: Playback latch for buffer 2, low nibble - the mirror of 3L. Registers the RAM data bus at L6MB and sends it across to sheet 5/6, where it arrives on the (B) side of the output muxes. Cleared each line by /2CL so stale pixels cannot leak through. Two of the '174's six flip-flops are unused. — verified 2026-07-27
10L ✓
74LS174
/2CL · from 4/6 - cleared at the start of every line
~CL
1
/2CL
$CD3 · <- shared RAM data bus
D1
3
$CD3
$CD2 · <- shared RAM data bus
D2
4
$CD2
$CD1 · <- shared RAM data bus
D3
6
$CD1
L6MB · from 4/6 - the buffered 6M pixel clock
CLK
9
L6MB
$CD0 · <- shared RAM data bus
D4
11
$CD0
OB23 · -> 5/6 (2L/2M (B) side)
Q1
2
OB23
OB22 · -> 5/6 (2L/2M (B) side)
Q2
5
OB22
OB21 · -> 5/6 (2L/2M (B) side)
Q3
7
OB21
OB20 · -> 5/6 (2L/2M (B) side)
Q4
10
OB20
GND:8=GND VCC:16=+5V
10M — 74LS174: Playback latch for buffer 2, high nibble - the mirror of 3M. Registers the RAM data bus at L6MB and sends it across to sheet 5/6, where it arrives on the (B) side of the output muxes. Cleared each line by /2CL so stale pixels cannot leak through. Two of the '174's six flip-flops are unused. — verified 2026-07-27
10M ✓
74LS174
/2CL · from 4/6 - cleared at the start of every line
~CL
1
/2CL
$CD7 · <- shared RAM data bus
D1
3
$CD7
$CD6 · <- shared RAM data bus
D2
4
$CD6
$CD5 · <- shared RAM data bus
D3
6
$CD5
L6MB · from 4/6 - the buffered 6M pixel clock
CLK
9
L6MB
$CD4 · <- shared RAM data bus
D4
11
$CD4
OB27 · -> 5/6 (2L/2M (B) side)
Q1
2
OB27
OB26 · -> 5/6 (2L/2M (B) side)
Q2
5
OB26
OB25 · -> 5/6 (2L/2M (B) side)
Q3
7
OB25
OB24 · -> 5/6 (2L/2M (B) side)
Q4
10
OB24
GND:8=GND VCC:16=+5V