ORG 09000H PUSH HL PUSH AF LD HL,0FFFEH ;previous 10 key state LD A,(HL) INC A JR NZ,TEN_KEY ;10 key start FULL_KEY: IN A,(0) ;check 10 key input INC A JR NZ,KEY_OFF ;10 key start -> stop song IN A,(6) ;check full key input LD HL,0FFFFH ;previous full key state CP (HL) LD (HL),A ;update previous full key state JR Z,KEY_ON ;same full key INC A JR Z,KEY_ON ;full key off JR KEY_OFF ;other key on TEN_KEY: IN A,(0) ;check 10 key input INC A JR Z,KEY_OFF ;10 key off JR KEY_ON ;10 key on KEY_OFF: POP AF POP HL SCF ;stop song RET KEY_ON: POP AF POP HL SCF CCF ;continue RET