
; O acumulador contém 1=Kempston, 2=Sinclair 2, 3=Sinclair 1 ;e 4=Cursor.
25537 CP 1 ; Salta para diante se não for
JR NZ,25550 ;Kempston. LD BC,31 ; Porta para Kempston.
IN A,(C) ; Faz leitura da porta.
LD (24811),A ; Guarda resultado da leitura.
RET25550 CP 2 ; Salta para diante se não for JR NZ,25582 ;Sinclair 2. 25554 LD BC,63486 ; Porta para Sinclair 2.
IN A,(C) ; Faz leitura da porta. LD B,0 ; Inicializa modelo de bits.
BIT 0,A ; Se a tecla 1 (esquerda) foi JR NZ,25567 ;pressionada, levanta bit 1 de B.
SET 1,B
25567 BIT 1,A ; Se a tecla 2 (direita) foi
JR NZ,25573 ;pressionada, levanta bit 0 de B.
SET 0,B
25573 AND 011100 ; Zera os bits exceto b2 a b4.
XOR 011100 ; Inverte os bits b2 a b4 e
OR B ;mescla com os bits em B.
LD (24811),A ; Guarda resultado final. RET25582 CP 3 ; Salta para diante se não for JR NZ,25635 ;Sinclair 1. LD A,(24814) ; Lê Sinclair 2 se for o primeiro
CP 1 ;jogador no modo 2 jogadores.
25591 JR Z,25554
LD BC,61438 ; Porta para Sinclair 1.
IN A,(C) ; Faz leitura da porta. BIT 0,A ; Se tecla 0 foi pressionada,
JR NZ,25606 ;levanta bit 4 de B.
SET 4,B
25606 BIT 1,A ; Se tecla 9 foi pressionada,
JR NZ,25612 ;levanta bit 3 de B.
SET 3,B
25612 BIT 2,A ; Se tecla 8 foi pressionada,
JR NZ,25618 ;levanta bit 2 de B.
SET 2,B
25618 BIT 3,A ; Se tecla 7 foi pressionada,
JR NZ,25624 ;levanta bit 0 de B.
SET 0,B
25624 BIT 4,A ; Se tecla 6 foi pressionada,
JR NZ,25630 ;levanta bit 1 de B.
SET 1,B
25630 LD A,B
LD (24811),A ; Guarda resultado final. RETJR Z para JR NZ, com o seguinte POKE:POKE 25591,32