Xa = V (18 ) = P2 UP
Xb = W (19) = P2 DOWN
Ya = X (20) = P2 LEFT
Yb = Y (21) = P2 RIGHT
$380001 (REG_POUTPUT)
D7 = ?
D6 = ?
D5 = P2 output
D4 = P2 output
D3 = P2 output
D2 = P1 output
D1 = P1 output
D0 = P1 output
D7 = ?
D6 = ?
D5 = Air jet
D4 = Card dispenser ?
D3 = Latch
D2 = Clock
D1 = Data
D0 = Trackball X /Y select
Read $380000
w $380001 0 Trackball X select
r $340000 Joypad port 2 inputs (REG_P2CNT)- read left/right A/B buttons (buttons A~D pass-through, left A = A, left B = B, right A = C, right B = D)
w $380001 0 Trackball X select
r $300000 Joypad port 1 inputs (REG_P1CNT) - read trackball X
w $380001 1 Trackball Y select
r $300000 Joypad port 1 inputs (REG_P1CNT) - read trackball Y
r $340000 Joypad port 2 inputs (REG_P2CNT)
w $380001 1, 5 x 14 Read trackball Y, Clock = 0, Data = 0 => Read trackball Y, Clock = 1, Data = 0
w $380001 3 Read trackball Y, Clock = 0, Data = 1
w $380001 7 Read trackball Y, Clock = 1, Data = 1
w $380001 1 Read trackball Y, Clock = 0, Data = 0
w $380001 5 Read trackball Y, Clock = 1, Data = 0
w $380001 3 Read trackball Y, Clock = 0, Data = 1
w $380001 B Read trackball Y, Latch = 1, Clock = 0, Data = 1
w $380001 1 Read trackball Y, Clock = 0, Data = 0
r $380000 Aux inputs (REG_STATUS_B) - Select/Start, etc.
D0 to switch between X and Y on P1 inputs
$3800001 for SIPO (Serial Input Parallel Output) + card dispenser? + air jet
P1 left (20) = card OK => routed to P2 18 (UP)
P1 right (21) = card error => routed to P2 19 (DOWN)
P1 A (22) = card empty => routed to P2 20 (LEFT)
P1 B => routed to P2 21 (RIGHT)
P1 select = P1 select
P1 C = NC
P1 D = NC