15 ICs
6A ’08
7A ’161 7B ’161 7C ’161 7D ’161
8A ’10 8B ’00 8C ’32 8D ’161
9A ’04 9B ’’ 9C ’32 9D ’86
10B ’08 10C ’20
7C — 74LS161: Byte counter (161) clocked by /$BPHIBB. Load inputs are DRIVEN not strapped: A=GND, B from 8A pin 6, C+D from 8A pin 12 - so it preloads 12 or 2 depending on the scan-state term. ~CL=/OVER24 (9D.11), ~LD from 10B pin 6, P/T=+5. Outputs OB0(14)/OB1(13); QD(11) -> 9A pin 1 + 10C pin 10; QC(12) not drawn. CA(15) -> 8C pin 13 + 7D P/T. — verified 2026-07-26
7C ✓
74LS161
/OVER24 · <- 9D pin 11 (also to 10C pin 13) | overbar confirmed on the sheet (Robert, 2026-07-27)
~CL
1
/OVER24
BPHIBB · <- 9A pin 12 (B-board phi-BB, = H1 inverted)
CLK
2
BPHIBB
GND
A
3
GND
/$SCANST · <- 8A pin 6
B
4
/$SCANST
$SCANST · <- 8A pin 12
C
5
$SCANST
$SCANST · <- 8A pin 12 (same net as C)
D
6
$SCANST
+5V
P
7
+5V
/$BYTELD · <- 10B pin 6
~LO
9
/$BYTELD
+5V
T
10
+5V
$OB1Y · -> 9A pin 1 + 10C pin 10
QD
11
$OB1Y
OB1 · -> 1/6 and 3/6
QB
13
OB1
OB0 · -> 1/6 and 3/6
QA
14
OB0
$BYTECA · -> 8C pin 13, and 7D pins 7+10 (P/T)
CA
15
$BYTECA
GND:8=GND VCC:16=+5V
7B — 74LS161: Object index counter low (161): OB2-OB5 on pins 14/13/12/11. Clocked /$BPHIBB; ~CL tied +5 (never cleared); ~LD from 6A pin 8 (shared with 7A); P/T from 8C pin 11 so it advances once per 4-byte entry; A-D grounded. CA(15)=$OBCARRY -> 7A P/T + 8A pin 9. — verified 2026-07-26
7B ✓
74LS161
+5V · never cleared
~CL
1
+5V
BPHIBB · <- 9A pin 12 (B-board phi-BB, = H1 inverted)
CLK
2
BPHIBB
GND
A
3
GND
GND
B
4
GND
GND
C
5
GND
GND
D
6
GND
$OBADV · <- 8C pin 11
P
7
$OBADV
$OBJLD · <- 6A pin 8
~LO
9
$OBJLD
$OBADV · <- 8C pin 11
T
10
$OBADV
OB5 · -> OB bus (1/6, 3/6)
QD
11
OB5
OB4 · -> OB bus (1/6, 3/6)
QC
12
OB4
OB3 · -> OB bus (1/6, 3/6)
QB
13
OB3
OB2 · -> OB bus (1/6, 3/6)
QA
14
OB2
$OBCARRY · -> 7A pins 7 and 10 (P/T), and 8A pin 9
CA
15
$OBCARRY
GND:8=GND VCC:16=+5V
7A — 74LS161: Object index counter high (161): OB6(14)/OB7(13)/OB8(12). Clocked /$BPHIBB; ~CL tied +5; ~LD from 6A pin 8 (shared with 7B); P/T from 7B pin 15 ($OBCARRY) so it advances on the low counter rollover; A-D grounded (loads 0). QD(11) and CA(15) unused - the index only needs 7 bits for 0-95. — verified 2026-07-26
7A ✓
74LS161
+5V · never cleared, like 7B
~CL
1
+5V
BPHIBB · <- 9A pin 12 (B-board phi-BB, = H1 inverted)
CLK
2
BPHIBB
GND · load value 0
A
3
GND
GND · load value 0
B
4
GND
GND · load value 0
C
5
GND
GND · load value 0
D
6
GND
$OBCARRY · <- 7B pin 15
P
7
$OBCARRY
$OBJLD · <- 6A pin 8
~LO
9
$OBJLD
$OBCARRY · <- 7B pin 15
T
10
$OBCARRY
OB8 · -> 8A pin 10, 8B pin 13
QC
12
OB8
OB7 · -> 8B pin 12/13 (/OVER96 gate)
QB
13
OB7
OB6 · -> 8A pin 11
QA
14
OB6
GND:8=GND VCC:16=+5V
7D — 74LS161: Line-store slot counter low (161): OBA0-OBA3. Clocked /$BPHIBB, ~CL=+5, ~LD from 10B pin 8 (shared with 8D), P/T from 7C pin 15 ($BYTECA). Load value 8 (D tied +5, A-C GND). CA -> 8D P/T. — verified 2026-07-26
7D ✓
74LS161
+5V · never cleared
~CL
1
+5V
BPHIBB · <- 9A pin 12 (B-board phi-BB, = H1 inverted)
CLK
2
BPHIBB
GND
A
3
GND
GND
B
4
GND
GND
C
5
GND
+5V · load value = 8 (D only)
D
6
+5V
$BYTECA · <- 7C pin 15
P
7
$BYTECA
/$SLOTLD · <- 10B pin 8 (shared with 8D pin 9)
~LO
9
/$SLOTLD
$BYTECA · <- 7C pin 15
T
10
$BYTECA
OBA3 · -> 3/6 (line-store slot address)
QD
11
OBA3
OBA2 · -> 3/6 (line-store slot address)
QC
12
OBA2
OBA1 · -> 3/6 (line-store slot address)
QB
13
OBA1
OBA0 · -> 3/6 (line-store slot address)
QA
14
OBA0
$SLOTCA · -> 8D pins 7 and 10
CA
15
$SLOTCA
GND:8=GND VCC:16=+5V
8D — 74LS161: Slot counter high (161): OBA4 on pin 14. Loads 0; P/T from 7D carry. QB (pin 13) is bit 5 of the pair - it sets when the count passes 31, i.e. exactly 24 slots after the preloaded 8 - and drives 9D pin 12 to make /OVER24. QC/QD/CA unused. — verified 2026-07-26
8D ✓
74LS161
+5V · never cleared
~CL
1
+5V
BPHIBB · <- 9A pin 12 (B-board phi-BB, = H1 inverted)
CLK
2
BPHIBB
GND · load value = 0
A
3
GND
GND · load value = 0
B
4
GND
GND · load value = 0
C
5
GND
GND · load value = 0
D
6
GND
$SLOTCA · <- 7D pin 15
P
7
$SLOTCA
/$SLOTLD · <- 10B pin 8 (shared with 7D pin 9)
~LO
9
/$SLOTLD
$SLOTCA · <- 7D pin 15
T
10
$SLOTCA
$SLOT32 · bit 5 of the pair: sets at count 32 = 24 slots used -> 9D pin 12
QB
13
$SLOT32
OBA4 · -> 3/6 (slot address MSB)
QA
14
OBA4
GND:8=GND VCC:16=+5V
9A — 74LS04: Hex inverter (04), all six gates used. 1->2: $OB1Y -> /$OB1Y (10B.1). 3->4: H256 -> 9B clock. 5->6: /$BYTEDONE -> /$BYTEDONE (8C.10). 9->8: 8C pin 3 -> 10B pin 4. 11->10: /$BPHIBB -> /$BPHIBB (10C.9). 13->12: H1 -> /$BPHIBB, the object-scan clock for all five counters + out to sheet 1/6. — verified 2026-07-26
9A ✓
74LS04
$OB1Y · <- 7C pin 11
A1
1
$OB1Y
H256 · <- 3/6
A2
3
H256
$BYTEDONE · <- 10B pin 3 (also 10B pin 12, 8C pin 1)
A3
5
$BYTEDONE
$SEQ8C1 · <- 8C pin 3
A4
9
$SEQ8C1
BPHIBB · <- 9A pin 12
A5
11
BPHIBB
H1 · <- 3/6
A6
13
H1
/$OB1Y · -> 10B pin 1
Y1
2
/$OB1Y
$H256B · -> 9B CLK (pin 3)
Y2
4
$H256B
/$BYTEDONE · -> 8C pin 10
Y3
6
/$BYTEDONE
$SEQ9A4 · -> 10B pin 4
Y4
8
$SEQ9A4
/$BPHIBB · -> 10C pin 9
Y5
10
/$BPHIBB
BPHIBB · B-board phi-BB: 5 counter clocks + 9A.11 + out to sheet 1/6
Y6
12
BPHIBB
GND:7=GND VCC:14=+5V
10B — 74LS08: Quad AND (08). g1: /$OB1Y (9A.2) AND OB1 -> /$BYTEDONE. g4: /$BYTEDONE AND /MATCH -> $STORE, to 8C pin 12. g2: 9A pin 8 AND $OBJLD -> /$BYTELD to 7C pin 9. g3: /24-96TM (9B.6) AND /HINIT -> /$SLOTLD to 7D+8D pin 9. — verified 2026-07-26
10B ✓
74LS08
/$OB1Y · <- 9A pin 2
A1
1
/$OB1Y
OB1 · <- 7C pin 13
B1
2
OB1
$SEQ9A4 · <- 9A pin 8
A2
4
$SEQ9A4
$OBJLD · <- 6A pin 8
B2
5
$OBJLD
/24_96TM · <- 9B pin 6
A3
9
/24_96TM
/HINITB · <- CN-2 C18 (same net as 8B pin 5)
B3
10
/HINITB
$BYTEDONE · <- 10B pin 3
A4
12
$BYTEDONE
/MATCH · <- 1/6 (2E pin 8)
B4
13
/MATCH
$BYTEDONE · -> 10B pin 12
Y1
3
$BYTEDONE
/$BYTELD · -> 7C pin 9
Y2
6
/$BYTELD
/$SLOTLD · -> 7D pin 9 and 8D pin 9
Y3
8
/$SLOTLD
$STORE · -> 8C pin 12
Y4
11
$STORE
GND:7=GND VCC:14=+5V
8C — 74LS32: Quad OR (32), all four gates. g1: /$BYTEDONE + $BYTECA -> 9A pin 9. g2: /HINIT + 24-96TM -> 6A pin 10. g3: /MATCH + /$BYTEDONE -> 8A pin 13. g4: $STORE + $BYTECA -> $OBADV, advancing the object index (7B P/T). — verified 2026-07-26
8C ✓
74LS32
$BYTEDONE · <- 10B pin 3
A1
1
$BYTEDONE
$BYTECA · <- 7C pin 15
B1
2
$BYTECA
/HINITB · <- CN-2 C18
A2
4
/HINITB
24_96TM · <- 9B pin 5
B2
5
24_96TM
/MATCH · <- 1/6 (2E pin 8)
A3
9
/MATCH
/$BYTEDONE · <- 9A pin 6
B3
10
/$BYTEDONE
$STORE · <- 10B pin 11
A4
12
$STORE
$BYTECA · <- 7C pin 15
B4
13
$BYTECA
$SEQ8C1 · -> 9A pin 9
Y1
3
$SEQ8C1
$LINEOR · -> 6A pin 10
Y2
6
$LINEOR
$SEQ8C · -> 8A pin 13
Y3
8
$SEQ8C
$OBADV · -> 7B pins 7 and 10 (object index advance)
Y4
11
$OBADV
GND:7=GND VCC:14=+5V
8A — 74LS10: Triple 3-input NAND (10). g1: NAND(8B.6, /AKB, 8C.8) -> pin 12 = scan-state term, to 8A pin 3 + 7C load inputs C/D. g2: pins 4,5 tied +5 so it inverts pin 3 -> pin 6 to 7C load input B. g3: NAND($OBCARRY, OB8, OB6) -> pin 8 to 8B pin 9. — verified 2026-07-26
8A ✓
74LS10
$SEQ8B · <- 8B pin 6 (measured; NOT the +5 rail)
A1
1
$SEQ8B
/AKB · <- CN-1 B21 via 1/6
B1
2
/AKB
$SCANST · <- 8A pin 12
A2
3
$SCANST
+5V
B2
4
+5V
+5V
C2
5
+5V
$OBCARRY · <- 7B pin 15; same net feeds 7A pins 7 and 10
A3
9
$OBCARRY
OB8 · <- 7A pin 12 (also 8B pin 13)
B3
10
OB8
OB6 · <- 7A pin 14
C3
11
OB6
$SEQ8C · <- 8C pin 8
C1
13
$SEQ8C
/$SCANST · gate 2 = inverter (B,C tied +5) -> 7C pin 4
Y2
6
/$SCANST
$SEQ8A3 · -> 8B pin 9
Y3
8
$SEQ8A3
$SCANST · -> 8A pin 3 and 7C pins 5,6
Y1
12
$SCANST
GND:7=GND VCC:14=+5V
8B — 74LS00: Quad NAND (00), three gates used. g4: NAND(OB7, OB8) = /OVER96 -> 1/6, ending the 96-object scan at index 96 (64+32). g3: NAND(8A pin 8, /OVER96) -> pin 8. g2: NAND(that, /HINIT) -> 8A pin 1. Gate 1 not drawn on this sheet. — verified 2026-07-26
8B ✓
74LS00
$SEQ8B3 · <- 8B pin 8 (gate 3 output)
A2
4
$SEQ8B3
/HINITB · <- CN-2 C18 (A-board 2N pin 2); also to 10B pin 10
B2
5
/HINITB
$SEQ8A3 · <- 8A pin 8
A3
9
$SEQ8A3
/OVER96 · <- 8B pin 11 (gate 4 output); overbar confirmed on the sheet (Robert, 2026-07-27)
B3
10
/OVER96
OB7 · <- 7A pin 13
A4
12
OB7
OB8 · <- 7A pin 12 (Robert read 2026-07-26)
B4
13
OB8
$SEQ8B · -> 8A pin 1
Y2
6
$SEQ8B
$SEQ8B3 · -> 8B pin 4
Y3
8
$SEQ8B3
/OVER96 · -> 1/6 (6B pin 4 + 5B pin 3): ends the 96-object scan
Y4
11
/OVER96
GND:7=GND VCC:14=+5V
6A — 74LS08: One AND gate of the 08 drawn on this sheet: 9C pin 3 AND $LINEOR (8C pin 6) -> $OBJLD (pin 8), which reloads both object counters (7A/7B pin 9) and gates 10B pin 5. Other gates of the package not drawn here. — verified 2026-07-26
6A ✓
74LS08
drawn on b1-4-objrom - click to jump there · V1a · <- 6F pin 5
A1
1
V1a
↗
drawn on b1-4-objrom - click to jump there · FLIP · <- 1/6
B1
2
FLIP
↗
drawn on b1-1-objram - click to jump there · /ACL1 · <- CN-1 B19 (drawn ACL2 on this sheet; same wire as A-board /ACL1)
A2
4
/ACL1
↗
drawn on b1-1-objram - click to jump there · $DMAEND · <- 6B pin 6
B2
5
$DMAEND
↗
$SEQ9C1 · <- 9C pin 3
A3
9
$SEQ9C1
$LINEOR · <- 8C pin 6
B3
10
$LINEOR
drawn on b1-4-objrom - click to jump there · /$V1a · <- 9K pin 12
A4
12
/$V1a
↗
drawn on b1-4-objrom - click to jump there · FLIP · <- 1/6 (same vertical that feeds pin 2)
B4
13
FLIP
↗
drawn on b1-4-objrom - click to jump there · OBFLIP2 · -> 6/6
Y1
3
OBFLIP2
↗
drawn on b1-1-objram - click to jump there · $DMAPR · -> 6C pin 4 (~PR1): releases the bus request
Y2
6
$DMAPR
↗
$OBJLD · -> 7B pin 9, 7A pin 9, 10B pin 5
Y3
8
$OBJLD
drawn on b1-4-objrom - click to jump there · OBFLIP1 · -> 5/6
Y4
11
OBFLIP1
↗
GND:7=GND VCC:14=+5V
9D — 74LS86: Two XOR units used as inverters (other input tied +5). g4: $SLOT32 (8D pin 13) -> /OVER24 (pin 11) to 7C ~CL and 10C pin 13. g3: /$LV1 from 4/6 -> /$LV1 (pin 8) to 9C pin 9. Gates 1 and 2 not drawn on this sheet. — verified 2026-07-26
9D ✓
74LS86
LV1 · <- 4/6
A3
9
LV1
+5V · XOR with 1 = inverter
B3
10
+5V
$SLOT32 · <- 8D pin 13
A4
12
$SLOT32
+5V · XOR with 1 = inverter
B4
13
+5V
/$LV1 · -> 9C pin 9
Y3
8
/$LV1
/OVER24 · -> 7C pin 1 (~CL) and 10C pin 13 | overbar confirmed on the sheet (Robert, 2026-07-27)
Y4
11
/OVER24
GND:7=GND VCC:14=+5V
9B — 74LS74: Line-phase FF (74), first half only. BLTIMING (from 4/6) sampled on $H256B (9A pin 4) -> Q = 24/96TM, the signal that splits each scanline into the 96-object search and the 24-sprite playback; ~Q -> 10B pin 9. Both ~CL and ~PR tied +5. Second FF (pins 8-13) not drawn - parked. The second flip-flop of the package is unused: not drawn on any B-board sheet and confirmed with no tracks on the board. — verified 2026-07-26
9B ✓
74LS74
+5V
~CL1
1
+5V
BLTIMING · <- 4/6
D1
2
BLTIMING
$H256B
CLK1
3
$H256B
+5V
~PR1
4
+5V
24_96TM · line phase -> 3/6 and 9C
Q
5
24_96TM
/24_96TM · -> 10B pin 9
~Q
6
/24_96TM
GND:7=GND VCC:14=+5V
9C — 74LS32: Quad OR (32), three gates drawn. g1: BLEN + /24-96TM -> 6A pin 9 (part of the counter reload). g2: /$LV1 + 24-96TM -> OBBSEL. g3: /$LV1 + 24-96TM -> OBASEL. The two SEL outputs are complementary in /$LV1 and both held high during the 96-object search, so /$LV1 alternates the staging buffers (2D/3D on sheet 1/6) during playback. — verified 2026-07-26
9C ✓
74LS32
BLEN · <- 1/6
A1
1
BLEN
/24_96TM · <- 9B pin 6 (also 10B pin 9, 10C pin 12)
B1
2
/24_96TM
LV1 · <- 4/6
A2
4
LV1
24_96TM · <- 9B pin 5
B2
5
24_96TM
/$LV1 · <- 9D pin 8
A3
9
/$LV1
24_96TM · <- 9B pin 5
B3
10
24_96TM
drawn on b1-4-objrom - click to jump there · OBHFLIPa · <- 3/6 2F pin 12
A4
12
OBHFLIPa
↗
drawn on b1-4-objrom - click to jump there · 4-3H · <- CN-2 C4
B4
13
4-3H
↗
$SEQ9C1 · -> 6A pin 9
Y1
3
$SEQ9C1
OBBSEL · -> 3/6 and 1/6 (6B pin 12)
Y2
6
OBBSEL
OBASEL · -> 1/6 (6B pin 1) and 3/6
Y3
8
OBASEL
drawn on b1-4-objrom - click to jump there · $OBS0 · -> all four shifters pin 9
Y4
11
$OBS0
↗
GND:7=GND VCC:14=+5V
10C — 74LS20: Staging write strobe (20, 4-input NAND): /$BPHIBB (9A.10) + $OB1Y (7C.11) + /24-96TM (9B.6) + /OVER24 (9D.11) -> /OBJABWR to 3/6. So a sprite is written to the line store only on the right byte, in the playback phase, before the 24-slot limit is hit, timed by the inverted clock. First gate not drawn on this sheet. — verified 2026-07-26
10C ✓
74LS20
/$BPHIBB · <- 9A pin 10
B
9
/$BPHIBB
$OB1Y · <- 7C pin 11
B
10
$OB1Y
/24_96TM · <- 9B pin 6
A
12
/24_96TM
/OVER24 · <- 9D pin 11 | overbar confirmed on the sheet (Robert, 2026-07-27)
C
13
/OVER24
/OBJABWR · -> 3/6: writes the matched sprite into the line store
Y
8
/OBJABWR
GND:7=GND VCC:14=+5V