004A: CALL 386Eh ;call 'KEYBOARD-2' 0B52: JP 3B9Fh ;jump to 'PO-T&UDG-2' 0B55: NOP 1349: CALL 3B3Bh ;call 'PO-MSG-2' 134C: NOP 1B7D: CALL 3B4Dh ;call 'STMT-R-2' 1B80: NOP 1B81: JR NZ,71h 1B83: LD HL,5C42h 2646: JP 3B6Ch ;jump to 'KEY-SCAN-2' ;'KEYBOARD-2' 386E: PUSH IX 3870: BIT 4,(IY+01h) 3874: JR Z,+03h 3876: CALL 3A42h ;call 'KEYPAD' 3879: CALL 02BFh ;call 'KEYBOARD' 387C: POP IX 387E: RET ;return 387F: LD C,FDh 3881: LD D,FFh 3883: LD E,BFh 3885: LD B,D 3886: LD A,07h 3888: OUT (C),A 388A: IN H,(C) 388C: LD A,0Eh 388E: OUT (C),A 3890: IN A,(C) 3892: OR F0h 3894: LD L,A 3895: RET ;return 3896: LD B,D 3897: LD A,0Eh 3899: OUT (C),A 389B: LD B,E 389C: OUT (C),L 389E: RET ;return 389F: LD B,D 38A0: LD A,0Eh 38A2: OUT (C),A 38A4: IN A,(C) 38A6: RET ;return 38A7: LD A,L 38A8: AND FEh 38AA: LD L,A 38AB: JR -17h 38AD: LD A,L 38AE: OR 01h 38B0: LD L,A 38B1: JR -1Dh 38B3: DJNZ -02h 38B5: RET ;return 38B6: PUSH BC 38B7: LD B,10h 38B9: CALL 38B3h 38BC: POP BC 38BD: DJNZ -09h 38BF: RET ;return 38C0: PUSH BC 38C1: CALL 389Fh 38C4: POP BC 38C5: AND 20h 38C7: JR Z,+02h 38C9: DJNZ -0Bh 38CB: RET ;return 38CC: PUSH BC 38CD: CALL 389Fh 38D0: POP BC 38D1: AND 20h 38D3: JR NZ,+02h 38D5: DJNZ -0Bh 38D7: RET ;return 38D8: CALL 387Fh 38DB: LD B,01h 38DD: JR +05h 38DF: CALL 387Fh 38E2: LD B,04h 38E4: PUSH BC 38E5: CALL 389Fh 38E8: POP BC 38E9: AND 20h 38EB: JR Z,+40h 38ED: XOR A 38EE: PUSH BC 38EF: PUSH AF 38F0: CALL 38ADh 38F3: LD B,A3h 38F5: CALL 38C0h 38F8: JR NZ,+31h 38FA: CALL 38A7h 38FD: JR +02h 38FF: RST 38h 3900: RST 38h 3901: LD B,2Bh 3903: CALL 38B3h 3906: CALL 389Fh 3909: BIT 5,A 390B: JR Z,+04h 390D: POP AF 390E: SCF 390F: JR +03h 3911: POP AF 3912: SCF 3913: CCF 3914: RRA 3915: PUSH AF 3916: CALL 38ADh 3919: LD B,26h 391B: CALL 38B3h 391E: CALL 38A7h 3921: LD B,23h 3923: CALL 38B3h 3926: POP AF 3927: POP BC 3928: DJNZ -3Ch 392A: RET ;return 392B: POP AF 392C: POP BC 392D: CALL 38ADh 3930: XOR A 3931: LD (5B88h),A 3934: INC A 3935: SCF 3936: CCF 3937: RET ;return 3938: CALL 387Fh 393B: LD A,(5B88h) 393E: AND 80h 3940: JR NZ,+57h 3942: CALL 389Fh 3945: AND 20h 3947: JR Z,-1Ch 3949: LD A,(5B88h) 394C: AND A 394D: JR NZ,+0Bh 394F: INC A 3950: LD (5B88h),A 3953: LD A,4Ch 3955: LD (5B89h),A 3958: JR +42h 395A: LD A,(5B89h) 395D: DEC A 395E: LD (5B89h),A 3961: JR NZ,+39h 3963: XOR A 3964: LD (5B88h),A 3967: LD (5B89h),A 396A: LD (5B8Ah),A 396D: CALL 38A7h 3970: LD B,21h 3972: CALL 38C0h 3975: JR NZ,-4Ah 3977: CALL 38ADh 397A: LD B,24h 397C: CALL 38CCh 397F: JR Z,-54h 3981: CALL 38A7h 3984: LD B,0Fh 3986: CALL 38B6h 3989: CALL 38DFh 398C: JR NZ,-61h 398E: SET 7,A 3990: AND F0h 3992: LD (5B88h),A 3995: XOR A 3996: SRL A 3998: RET ;return 3999: XOR A 399A: SCF 399B: RET ;return 399C: XOR A 399D: INC A 399E: SCF 399F: RET ;return 39A0: CALL 3938h 39A3: LD A,(5B88h) 39A6: CPL 39A7: AND C0h 39A9: RET NZ 39AA: LD IX,5B8Ah 39AE: LD B,05h 39B0: PUSH BC 39B1: CALL 38D8h 39B4: JP NZ,3A3Ah 39B7: BIT 7,A 39B9: JR Z,+21h 39BB: CALL 38DFh 39BE: JR NZ,+7Ah 39C0: POP BC 39C1: PUSH BC 39C2: LD C,A 39C3: LD A,(IX+00h) 39C6: BIT 0,B 39C8: JR Z,+0Ch 39CA: SRL C 39CC: SRL C 39CE: SRL C 39D0: SRL C 39D2: AND F0h 39D4: JR +02h 39D6: AND 0Fh 39D8: OR C 39D9: LD (IX+00h),A 39DC: POP BC 39DD: BIT 0,B 39DF: JR NZ,+02h 39E1: DEC IX 39E3: DJNZ -35h 39E5: LD E,80h 39E7: LD IX,5B88h 39EB: LD HL,3A3Fh 39EE: LD B,03h 39F0: LD A,(IX+00h) 39F3: AND (HL) 39F4: JR Z,+21h 39F6: BIT 7,E 39F8: JR Z,+42h 39FA: PUSH BC 39FB: PUSH AF 39FC: LD A,B 39FD: JR +02h 39FF: RST 38h 3A00: RST 38h 3A01: DEC A 3A02: SLA A 3A04: SLA A 3A06: SLA A 3A08: OR 07h 3A0A: LD B,A 3A0B: POP AF 3A0C: SLA A 3A0E: JP C,3A13h 3A11: DJNZ -07h 3A13: LD E,B 3A14: POP BC 3A15: JR NZ,+25h 3A17: INC IX 3A19: INC HL 3A1A: DJNZ -2Ch 3A1C: BIT 7,E 3A1E: JR NZ,+07h 3A20: LD A,E 3A21: AND FCh 3A23: JR Z,+02h 3A25: DEC E 3A26: DEC E 3A27: LD A,(5B8Ah) 3A2A: AND 08h 3A2C: JR Z,+06h 3A2E: LD A,E 3A2F: AND 7Fh 3A31: ADD 12h 3A33: LD E,A 3A34: LD A,E 3A35: ADD 5Ah 3A37: LD E,A 3A38: XOR A 3A39: RET ;return 3A3A: POP BC 3A3B: RET ;return 3A3C: XOR A 3A3D: INC A 3A3E: RET ;return 3A3F: RRCA 3A40: RST 38h 3A41: DEFB F2h ;'KEYPAD' 3A42: LD E,80h 3A44: LD A,(5C78h) 3A47: AND 01h 3A49: JR NZ,+04h 3A4B: CALL 39A0h 3A4E: RET NZ 3A4F: LD HL,5C00h 3A52: BIT 7,(HL) 3A54: JR NZ,+0Ch 3A56: LD A,(HL) 3A57: CP 5Bh 3A59: JR C,+07h 3A5B: INC HL 3A5C: DEC (HL) 3A5D: DEC HL 3A5E: JR NZ,+02h 3A60: LD (HL),FFh 3A62: LD A,L 3A63: LD HL,5C04h 3A66: CP L 3A67: JR NZ,-17h 3A69: CALL 3AAEh 3A6C: RET NZ 3A6D: LD A,E 3A6E: LD HL,5C00h 3A71: CP (HL) 3A72: JR Z,+2Ah 3A74: EX DE,HL 3A75: LD HL,5C04h 3A78: CP (HL) 3A79: JR Z,+23h 3A7B: BIT 7,(HL) 3A7D: JR NZ,+04h 3A7F: EX DE,HL 3A80: BIT 7,(HL) 3A82: RET Z 3A83: LD E,A 3A84: LD (HL),A 3A85: INC HL 3A86: LD (HL),0Ah 3A88: INC HL 3A89: LD A,(5C09h) 3A8C: SRL A 3A8E: LD (HL),A 3A8F: INC HL 3A90: CALL 3AD7h ;call 'KPD-DECODE' 3879: CALL 02BFh ;call 'KEYBOARD' 3A93: LD (HL),E 3A94: LD A,E 3A95: LD (5C08h),A 3A98: LD HL,5C3Bh 3A9B: SET 5,(HL) 3A9D: RET ;return 3A9E: INC HL 3A9F: LD (HL),0Ah 3AA1: INC HL 3AA2: DEC (HL) 3AA3: RET NZ 3AA4: LD A,(5C0Ah) 3AA7: SRL A 3AA9: LD (HL),A 3AAA: INC HL 3AAB: LD E,(HL) 3AAC: JR -1Ah 3AAE: LD A,E 3AAF: LD HL,5B66h 3AB2: BIT 0,(HL) 3AB4: JR Z,+06h 3AB6: CP 6Dh 3AB8: JR NC,+1Ah 3ABA: XOR A 3ABB: RET 3ABC: CP 80h 3ABE: JR NC,+14h 3AC0: CP 6Ch 3AC2: JR NZ,-0Ah 3AC4: NOP 3AC5: NOP 3AC6: NOP 3AC7: NOP 3AC8: NOP 3AC9: NOP 3ACA: NOP 3ACB: NOP 3ACC: NOP 3ACD: NOP 3ACE: NOP 3ACF: NOP 3AD0: NOP 3AD1: NOP 3AD2: NOP 3AD3: NOP 3AD4: XOR A 3AD5: INC A 3AD6: RET ;return ;'KPD-DECODE' 3AD7: PUSH HL 3AD8: LD A,E 3AD9: SUB 5Bh 3ADB: LD D,00h 3ADD: LD E,A 3ADE: LD HL,5B66h 3AE1: BIT 0,(HL) 3AE3: JR Z,+05h 3AE5: LD HL,3B13h ;look up table for keypad 3AE8: JR +25h 3AEA: LD HL,3B25h ;look up table for keypad 3AED: CP 11h 3AEF: JR C,+1Eh 3AF1: LD HL,3B21h ;look up table for keypad 3AF4: CP 15h 3AF6: JR Z,+17h 3AF8: CP 16h 3AFA: JR Z,+13h 3AFC: JR +03h 3AFE: NOP 3AFF: RST 38h 3B00: RST 38h 3B01: CP 17h 3B03: JR Z,+0Ah 3B05: LD HL,3B18h 3B08: CP 21h 3B0A: JR NC,+03h 3B0C: LD HL,3B13h 3B0F: ADD HL,DE 3B10: LD E,(HL) 3B11: POP HL 3B12: RET ;return 3B13: '.' 3B14: 'ENTER' 3B15: '3' 3B16: '2' 3B17: '1' 3B18: ')' 3B19: '(' 3B1A: '*' 3B1B: '/' 3B1C: '-' 3B1D: '9' 3B1E: '8' 3B1F: '7' 3B20: '+' 3B21: '6' 3B22: '5' 3B23: '4' 3B24: '0' 3B25: 'RND' ;last line 3B26: 'ENTER' 3B27: 'INKEY$' ;first line 3B28: 'PI' ;end of line 3B29: 'FN' ;start of line 3B2A: 'POINT' ;screen 3B2B: 'SCREEN$' ;delete this character 3B2C: 'cursor up' 3B2D: 'DELETE' 3B2E: 'EDIT' ;menu 3B2F: 'cursor right' 3B30: 'cursor down' 3B31: 'cursor left' 3B32: 'AT' ;down ten lines 3B33: 'TAB' ;up ten lines 3B34: 'VAL$' ;beginning of next word 3B35: 'CODE' ;begining of previous word 3B36: 'VAL' ;delete to end of line 3B37: 'LEN' ;delete to start of line 3B38: 'SIN' ;I dont know what this does. ;'LIST' does delete this character ;but is not in this set of data. 3B39: 'COS' ;delete word right 3B3A: 'TAN' ;delete word left ;'PO-MSG-2' 3B3B: BIT 4,(IY+01h) 3B3F: JR NZ,+05h 3B41: XOR A 3B42: LD DE,1536h 3B45: RET 3B46: LD HL,010Fh 3B49: EX HL,(SP) 3B4A: JP 5B00h ;'STMT-R-2' 3B4D: BIT 4,(IY+01h) 3B51: JR NZ,+05h 3B53: BIT 7,(IY+0Ah) 3B57: RET 3B58: LD HL,0112h 3B5B: JR -14h 3B5D: BIT 4,(IY+01h) 3B61: JR NZ,+04h 3B63: RST 18h 3B64: CP 0Dh 3B66: RET 3B67: LD HL,0115h 3B6A: JR -23h 'KEY-SCAN-2' 3B6C: CALL 028Eh 3B6F: LD C,00h 3B71: JR NZ,+0Dh 3B73: CALL 031Eh 3B76: JR NC,+08h 3B78: DEC D 3B79: LD E,A 3B7A: CALL 0333h 3B7D: JP 2657h 3B80: BIT 4,(IY+01h) 3B84: JP Z,2660h 3B87: DI 3B88: CALL 39A0h 3B8B: EI 3B8C: JR NZ,+0Ch 3B8E: CALL 3AAEh 3B91: JR NZ,+07h 3B93: CALL 3AD7h 3B96: LD A,E 3B97: JP 2657h 3B9A: LD C,00h 3B9C: JP 2660h ;'PO-T&UDG-2' 3B9F: CP A3h 3BA1: JR Z,+0Ch 3BA3: CP A4h 3BA5: JR Z,+08h 3BA7: SUB A5h 3BA9: JP NC,0B5Fh 3BAC: JP 0B56h 3BAF: BIT 4,(IY+01h) 3BB3: JR Z,-0Eh 3BB5: LD DE,3BC9h 3BB8: PUSH DE 3BB9: SUB A3h 3BBB: LD DE,3BD2h ;'SPECTRUM' 3BBE: JR Z,+03h 3BC0: LD DE,3BDAh ;'PLAY' 3BC3: LD A,04h 3BC5: PUSH AF 3BC6: JP 0C17h 3BC9: SCF 3BCA: BIT 1,(IY+01h) 3BCE: RET NZ 3BCF: JP 0B03h 3BD2: 'SPECTRUM' 3BDA: 'PLAY 3BDE: JP 3C01h 3BE1: NOP 3BE2: NOP 3BE3: NOP 3BE4: NOP 3BE5: NOP 3BE6: NOP 3BE7: NOP 3BE8: NOP 3BE9: NOP 3BEA: NOP 3BEB: NOP 3BEC: NOP 3BED: NOP 3BEE: NOP 3BEF: NOP 3BF0: NOP 3BF1: NOP 3BF2: NOP 3BF3: NOP 3BF4: NOP 3BF5: NOP 3BF6: NOP 3BF7: NOP 3BF8: NOP 3BF9: NOP 3BFA: NOP 3BFB: NOP 3BFC: NOP 3BFD: NOP 3BFE: NOP 3BFF: RST 38h ;maskable interrupt 3C00: RST 38h ;maskable interrupt 3C01: JP 39A0h 3C04: JP 3C10h ; call 'TEST-SCRN' 3C07: JP 3C10h ; call 'TEST-SCRN' 3C0A: JP 3C10h ; call 'TEST-SCRN' 3C0D: JP 3C10h ; call 'TEST-SCRN' ;'TEST-SCRN' 3C10: LD A,7Fh 3C12: INA (FEh) 3C14: RRA 3C15: RET C 3C16: LD A,FEh 3C18: INA (FEh) 3C1A: RRA 3C1B: RET C 3C1C: LD A,07h 3C1E: OUTA (FEh) 3C20: LD A,02h 3C22: CALL 1601h 3C25: XOR A 3C26: LD (5C3Ch),A 3C29: LD A,16h 3C2B: RST 10h 3C2C: XOR A 3C2D: RST 10h 3C2E: XOR A 3C2F: RST 10h 3C30: LD E,08h 3C32: LD B,E 3C33: LD D,B 3C34: LD A,B 3C35: DEC A 3C36: RL A 3C38: RL A 3C3A: RL A 3C3C: ADD D 3C3D: DEC A 3C3E: LD (5C8Fh),A 3C41: LD HL,3C8Fh 3C44: LD C,E 3C45: LD A,(HL) 3C46: RST 10h 3C47: INC HL 3C48: DEC C 3C49: JR NZ,-06h 3C4B: DJNZ -19h 3C4D: LD B,E 3C4E: DEC D 3C4F: JR NZ,-1Dh 3C51: LD HL,4800h 3C54: LD D,H 3C55: LD E,L 3C56: INC DE 3C57: XOR A 3C58: LD (HL),A 3C59: LD BC,0FFFh 3C5C: LDIR 3C5E: EX DE,HL 3C5F: LD DE,5900h 3C62: LD BC,0200h 3C65: LDIR 3C67: DI 3C68: LD DE,0370h 3C6B: LD L,07h 3C6D: LD BC,0099h 3C70: DEC BC 3C71: LD A,B 3C72: OR C 3C73: JR NZ,-05h 3C75: LD A,L 3C76: XOR 10h 3C78: LD L,A 3C79: OUTA (FEh) 3C7B: DEC DE 3C7C: LD A,D 3C7D: OR E 3C7E: JR NZ,-13h 3C80: LD BC,h 3C83: DEC BC 3C84: LD A,B 3C85: OR C 3C86: JR NZ,-05h 3C88: DEC BC 3C89: LD A,B 3C8A: OR C 3C8B: JR NZ,-05h 3C8D: JR -27h 3C8F: INC DE 3C90: NOP ;test screen text 3C91: '19' 3C93: DEFB 13h ;BRIGHT 3C94: DEFB 01h ;1 3C95: '86' ;3C98-3CFF holds NOP