Код:
MKEY LD A,(FIRE):LD (LFIRE),A
LD BC,#FADF:IN A,(C)
CPL:LD E,A
AND 1:SLA A:LD D,A:LD A,E
AND 2:SRL A:OR D:LD D,A
LD A,E:AND 252:OR D:LD (FIRE),A
RET
KMDRV LD HL,(X_COORD):LD DE,(LAST_X)
LD BC,#FBDF:IN A,(C)
LD (LAST_X),A:SUB E:JR Z,NEXT
CP 1:JR Z,ONR
CP 255:JR Z,ONL
CALL RE_XY
ONR JP P,MAR
ONL ADD A,L:JR C,RGK+1
XOR A:JR RGK+1
MAR ADD A,L:JR C,RGK
CP 255:JR C,RGK+1
RGK LD A,255:LD L,A
NEXT LD BC,#FFDF:IN A,(C)
LD (LAST_Y),A:SUB D:JR Z,NEXT1
NEG
CP 1:JR Z,OND
CP 255:JR Z,ONU
CALL RE_XY
OND JP P,MAD
ONU ADD A,H:JR C,DKR+1
XOR A:JR DKR+1
MAD ADD A,H:JR C,DKR
CP 191:JR C,DKR+1
DKR LD A,191:LD H,A
NEXT1 LD (X_COORD),HL
RET
RE_XY ADD A,A:RET
FIRE DB 0
LFIRE DB 0
LAST_X DB 0
LAST_Y DB 0
X_COORD DB 0
Y_COORD DB 0
Тут три функции. Первая опрашивает кнопки (и по тупому левую кнопку устанавливает в первый бит результата, правую - во второй)