diff --git a/rom/keyboard_rom.asm b/rom/keyboard_rom.asm new file mode 100644 index 0000000..c0ec71e --- /dev/null +++ b/rom/keyboard_rom.asm @@ -0,0 +1,3136 @@ +label175 CODE 5804h +label179 CODE 800h +label182 CODE 5904h +label191 CODE 0B40h +label206 CODE 1011h +label215 CODE 0B69h +label216 CODE 2000h + + ORG 0h +label180: + ljmp label0 + ljmp label1 + nop + nop + ljmp label2 + ljmp label3 + nop + nop + ljmp label2 + nop + nop + nop + nop + nop + ljmp label2 + nop + nop + nop + nop + nop + ljmp label2 + ljmp label4 +label5: ljmp label2 +label3: push ACC + push DPH + push PSW + mov PSW, #8h + cjne R2, #55h, label5 + mov TH0, #0B3h + dec R4 + mov R2, #0AAh + jnb 13h, label6 + mov A, R3 + jz label6 + djnz R3, label6 + mov R0, #3Fh +label8: inc R0 + mov A, R0 + add A, #0B0h + cpl A + jb 0E7h, label7 + mov A, @R0 + jz label8 + mov A, 26h + mov R3, A + clr C + mov A, R7 + subb A, R6 + jz label9 +label174: + jnc label10 + add A, #10h + clr C +label10: + subb A, #2h + jc label6 +label9: mov A, 28h + lcall label11 + mov A, R5 + lcall label11 +label6: mov PSW, #18h + mov R0, #58h + mov A, R7 + anl A, #7h + xch A, R7 + anl A, #0F8h + xch A, R7 + jz label12 + clr C + rlc A + jnb 0E3h, label13 +label12: + mov A, #1h +label13: + orl 1Fh, A + dec A + add A, R0 + mov R0, A + mov A, R7 + cpl A + jnb 1Ch, label14 + anl A, #1Fh +label14: + mov DPH, #30h + movx @DPTR, A + mov A, @R0 + cpl A + jnb 1Ch, label15 + clr A +label15: + mov DPH, #38h + movx @DPTR, A + mov A, SP + cjne A, #67h, label16 +label16: + jc label7 + cjne A, #80h, label17 +label17: + jnc label7 + pop PSW + pop DPH + pop ACC +label33: + reti +label7: ljmp label2 +label0: mov A, PCON + orl A, #4h + mov PCON, A + mov IE, #0h + mov TCON, #0h + mov A, #0FFh + mov P1, #0FFh + mov P2, #0FFh + mov P3, #0FFh + clr T0 + clr T1 + mov DPH, #38h + movx @DPTR, A + mov DPH, #30h + movx @DPTR, A + clr 19h + mov PSW, #0h + mov R0, #27h + mov A, @R0 + xrl A, #55h + jnz label18 + ljmp label2 +label18: + mov IE, #0h + mov TCON, #0h + mov A, PCON + jnb 19h, label19 + setb 0E3h + sjmp label20 +label19: + clr 0E3h +label20: + mov PCON, A + mov B, #7Fh + mov DPTR, #000h + mov SP, #5Bh +label21: + mov R0, B + mov @R0, SP + mov A, DPL + add A, @R0 + mov DPL, A + mov A, DPH + addc A, #0h + mov DPH, A + inc SP + djnz B, label21 + mov B, #1h +label23: + mov R0, B + mov A, @R0 + cpl A + mov @R0, A + mov A, DPL + add A, @R0 + mov DPL, A + jnc label22 + inc DPH +label22: + inc B + mov A, B + jnb 0E7h, label23 + mov A, #80h + mov R0, #7Fh +label24: + mov PSW, #0h + mov @R0, #0h + dec R0 + inc A + jb 0E7h, label24 + mov A, DPH + cjne A, #7Eh, label25 + mov A, DPL + cjne A, #81h, label25 + ljmp label26 +label25: + setb 1Fh +label26: + mov R0, #0h + mov R1, #0h + mov R2, #0FEh + mov DPTR, #1000h +label28: + mov A, R2 + dec A + dec DPH + movc A, @A+DPTR + inc DPH + add A, R0 + mov R0, A + jnc label27 + inc R1 +label27: + djnz R2, label28 + djnz DPH, label28 + mov DPTR, #0FFEh + clr A + movc A, @A+DPTR + xrl A, R1 + jnz label29 + inc DPTR + movc A, @A+DPTR + xrl A, R0 + jz label30 +label29: + setb 1Eh +label30: + mov A, PCON + jnb 0E3h, label31 + setb 19h + mov 45h, #20h + mov 1Dh, #1h + sjmp label2 +label31: + clr 19h +label2: mov A, PCON + jnb 0E2h, label32 + anl A, #0FBh + mov PCON, A + setb 20h +label32: + mov IE, #0h + mov SP, #67h + acall label33 + mov TCON, #0h + clr A + mov PSW, A + movx @DPTR, A + mov SP, #67h + mov R0, #40h + mov 26h, #32h + mov A, 58h + clr 0E5h + setb 0E6h + mov 58h, A + clr EA + mov DPH, #2h + mov A, #20h + movx @DPTR, A + mov DPH, #7h + mov A, #10h + movx @DPTR, A + mov DPH, #2h + mov A, #0h + movx @DPTR, A + mov DPH, #3h + mov A, #9Bh + movx @DPTR, A + mov DPH, #0h + mov A, #78h + movx @DPTR, A + mov DPH, #1h + clr A + movx @DPTR, A + mov DPH, #3h + mov A, #1Bh + movx @DPTR, A + mov DPH, #2h + mov A, #40h + movx @DPTR, A + mov DPH, #1h + clr A + movx @DPTR, A + mov DPH, #3h + mov A, #0h + movx @DPTR, A + mov DPH, #4h + mov A, #8h + movx @DPTR, A + mov DPH, #0h + mov A, #0h + movx @DPTR, A + mov DPH, #7h + mov A, #0h + movx @DPTR, A + mov DPH, #2h + mov A, #60h + movx @DPTR, A + mov DPH, #0h + mov A, #50h + movx @DPTR, A + mov DPH, #1h + mov A, #4h + movx @DPTR, A + mov DPH, #5h + mov A, #0h + movx @DPTR, A + mov DPH, #2h + clr A + movx @DPTR, A + mov DPH, #1h + mov A, #0h + movx @DPTR, A + mov DPH, #2h + mov A, #20h + movx @DPTR, A + mov DPH, #6h + mov A, #2h + movx @DPTR, A + mov DPH, #5h + mov A, #40h + movx @DPTR, A + mov TMOD, #20h + mov IP, #0h + mov TCON, #0h + mov SCON, #40h + mov TH0, #0B3h + mov TH1, #0F8h + mov PSW, #8h + mov R6, #30h + mov R7, #30h + mov R3, #0h + mov R2, #55h + mov R4, #3h + setb TR0 + setb TR1 + setb ET0 + setb EA + ljmp label34 +label42: + mov PSW, #0h + lcall label35 + lcall label36 + jz label37 + ljmp label38 +label37: + mov A, 25h + cpl A + jz label39 + cpl A + anl A, #4Fh + orl A, #40h + xrl A, R0 + jnz label39 + mov 25h, #0FFh +label39: + mov PSW, #0h + inc R0 + mov A, R0 + cjne A, #50h, label40 + ljmp label34 +label40: + jnc label41 + sjmp label42 +label41: + ajmp label2 +label34: + orl P1, #0FFh + orl P2, #0FFh + clr IE0 + clr IE1 + setb EX0 + setb TR0 + setb TR1 + setb ET0 + setb ES + setb EA + setb REN + clr EA + jbc 18h, label43 + ljmp label44 +label43: + ljmp label45 +label45: + mov 1Fh, #0h + mov 58h, #0h + mov 59h, #0h + mov 5Bh, #0h + clr T0 + clr T1 + mov A, 58h + clr 0E5h + setb 0E6h + mov 58h, A + ljmp label46 +label44: + mov A, 24h + anl A, #0Fh + jnz label47 + ljmp label46 +label47: + jbc 20h, label48 + jbc 21h, label49 +label48: + setb 18h + ljmp label46 +label49: + setb 19h + ajmp label18 +label46: + setb EA + mov PSW, #0h + mov R0, #40h + setb 13h + mov PSW, #8h + mov 27h, #55h + mov R2, #55h + mov A, R4 + jnb 0E7h, label50 + ljmp label51 +label50: + jb 17h, label52 + clr EA + mov 0Ah, #55h + mov A, R7 + cjne A, #30h, label53 +label53: + jc label54 + cjne A, #40h, label55 +label55: + jnc label54 + mov A, R6 + anl A, #7Fh + cjne A, #30h, label56 +label56: + jc label54 + cjne A, #40h, label57 +label57: + jnc label54 + mov A, R7 + xrl A, R6 + mov PSW, #0h + jz label52 + lcall label58 + setb EA + mov PSW, #8h + sjmp label50 +label54: + ajmp label2 +label52: + ajmp label42 +label58: + push PSW + mov PSW, #8h + mov A, R6 + jnb 0E7h, label59 + mov A, R7 + mov R6, A +label59: + mov A, R7 + inc A + cjne A, #40h, label60 +label60: + jc label61 + mov A, #30h +label61: + mov R1, A + mov R7, A + mov A, @R1 + mov DPH, #0h + movx @DPTR, A + mov DPH, #2h + clr A + movx @DPTR, A + mov DPH, #1h + mov A, #2h + movx @DPTR, A + setb 17h + pop PSW + ret +label51: + add A, #3h + mov R4, A + mov PSW, #18h + jb 1Ch, label62 + djnz R5, label62 + mov R5, #0Ch + clr EA + mov R0, #60h + mov A, @R0 + jnz label63 + mov A, 23h + anl A, #0C8h + jnz label64 + jnb 19h, label65 + mov A, 59h + orl A, #10h + mov @R0, #19h + clr 19h + ljmp label66 +label64: + mov @R0, #3h + mov A, 59h + xrl A, #10h + mov 59h, A + ljmp label67 +label63: + dec A + mov @R0, A + jnz label67 +label65: + mov A, 59h + anl A, #0EFh +label66: + mov 59h, A +label67: + mov R0, #64h + mov A, @R0 + jz label68 + dec A + mov @R0, A + jnz label68 + mov A, R7 + anl A, #0BFh + mov R7, A +label68: + inc R0 + mov A, @R0 + jz label62 + dec A + mov @R0, A + jnz label62 + mov A, R7 + anl A, #7Fh + mov R7, A +label62: + setb EA + mov PSW, #8h + mov A, R4 + jnb 0E7h, label69 + sjmp label51 +label69: + mov PSW, #0h + jbc 10h, label70 + mov A, R1 + inc A + orl A, #2Ch + anl A, #2Fh + mov R1, A + mov @R1, #0FFh +label70: + mov PSW, #8h + ajmp label50 +label73: + ajmp label39 +label38: + mov R3, A + mov A, R0 + orl A, #40h + anl A, #5Fh + mov R0, A + mov R2, #10h + mov A, TH0 + djnz R2, $ + cjne A, TH0, label71 + ajmp label2 +label71: + lcall label35 + mov R2, #3h +label72: + lcall label36 + anl A, R3 + mov R3, A + djnz R2, label72 + jz label73 + mov R3, A +label91: + mov PSW, #0h + mov R2, #1h + mov A, R0 + clr C + subb A, #40h + swap A + rr A + mov R7, A + mov A, R2 +label75: + mov PSW, #0h + anl A, R3 + jnz label74 + mov A, R3 + jz label73 + mov A, R2 + jz label73 + rl A + mov R2, A + inc R7 + sjmp label75 +label74: + mov PSW, #8h + mov A, R6 + jb 0E7h, label76 + clr EA + clr C + mov A, R7 + subb A, R6 + setb EA + jz label77 + jnc label78 + add A, #10h + clr C +label78: + subb A, #6h + jc label76 +label77: + mov PSW, #0h + mov A, R2 + cpl A + anl A, R3 + mov R3, A + mov A, R2 + anl A, @R0 + jnz label79 + ljmp label80 +label79: + ljmp label81 +label76: + ajmp label34 +label80: + mov A, R7 + jb 0E7h, label82 + mov A, 25h + cpl A + jz label83 + cpl A + xrl A, R0 + jnz label84 +label83: + mov R6, #40h +label86: + lcall label35 + lcall label36 + anl A, R2 + jz label84 + mov A, R6 + xrl A, #50h + jz label82 + mov A, R6 + xch A, R0 + mov R6, A + lcall label35 + lcall label36 + orl A, @R0 + anl A, R2 + jnz label85 +label87: + mov A, R6 + xch A, R0 + inc A + mov R6, A + sjmp label86 +label85: + mov A, R6 + xrl A, R0 + jz label87 + lcall label36 + orl A, @R0 + xch A, R2 + cpl A + xch A, R2 + anl A, R2 + jnz label88 + mov A, R2 + cpl A + mov R2, A + mov A, R3 + jz label87 +label88: + mov A, R6 + mov R0, A + mov 25h, A +label84: + ajmp label39 +label82: + lcall label89 + jz label90 + ajmp label91 +label90: + lcall label92 + mov PSW, #0h + mov A, R2 + xrl A, @R0 + mov @R0, A + mov A, R7 + mov R4, A + lcall label93 + jz label94 + ljmp label95 + ljmp label96 +label94: + clr EA + mov 0Ah, #55h + mov A, R5 + jb 0E7h, label97 + jb 0E1h, label98 + jb 0E4h, label99 + jb 0E5h, label100 + mov DPTR, #856h + ljmp label101 +label97: + jb 0E5h, label102 + mov DPTR, #8E6h + ljmp label101 +label102: + mov DPTR, #0AE6h + ljmp label101 +label98: + mov DPTR, #966h + ljmp label101 +label99: + mov DPTR, #9E6h + ljmp label101 +label100: + mov DPTR, #0A66h +label101: + mov A, R7 + movc A, @A+DPTR + jnz label103 + ljmp label104 +label103: + mov A, R0 + mov DPTR, #896h + movc A, @A+DPTR + anl A, R2 + jz label105 + mov A, #0A8h + ljmp label106 +label105: + mov A, #0A1h +label106: + mov 28h, A + lcall label11 + mov A, R5 + jb 0E7h, label107 + jb 0E1h, label108 + jb 0E4h, label109 + jb 0E5h, label110 + mov DPTR, #856h + ljmp label111 +label107: + jb 0E5h, label112 + mov DPTR, #8E6h + ljmp label111 +label112: + mov DPTR, #0AE6h + ljmp label111 +label108: + mov DPTR, #966h + ljmp label111 +label109: + mov DPTR, #9E6h + ljmp label111 +label110: + mov DPTR, #0A66h +label111: + mov A, R7 + movc A, @A+DPTR + mov 0Dh, A + lcall label11 + mov A, R7 + cjne A, #6h, label113 + mov A, 59h + cpl 0E6h + mov 59h, A + ljmp label114 +label113: + cjne A, #7h, label115 + mov A, 5Bh + cpl 0E0h + mov 5Bh, A + ljmp label114 +label115: + cjne A, #21h, label116 + mov A, 59h + cpl 0E5h + mov 59h, A + ljmp label114 +label116: + cjne A, #28h, label117 + mov A, 59h + cpl 0E3h + mov 59h, A + ljmp label114 +label117: + cjne A, #29h, label118 + mov A, 59h + cpl 0E0h + mov 59h, A + ljmp label114 +label118: + cjne A, #2Eh, label119 + mov A, 59h + cpl 0E1h + mov 59h, A + ljmp label114 +label119: + cjne A, #2Fh, label120 + mov A, 59h + cpl 0E2h + mov 59h, A + ljmp label114 +label120: + cjne A, #0h, label114 + mov A, 5Bh + cpl 0E1h + mov 5Bh, A +label114: + setb EA + jnb 13h, label96 + mov A, R0 + mov DPTR, #0B26h + movc A, @A+DPTR + anl A, R2 + mov PSW, #8h +label104: + mov R3, A + jz label96 + mov R3, #7Dh +label96: + mov PSW, #0h + ajmp label91 +label81: + lcall label89 + jz label121 + ljmp label122 +label121: + lcall label92 + mov PSW, #0h + mov A, R2 + xrl A, @R0 + mov @R0, A + lcall label93 + jz label123 + ljmp label124 +label123: + mov A, R7 + xrl A, R4 + jnz label122 + mov R4, A + mov PSW, #8h + mov R3, A + mov PSW, #0h +label122: + ajmp label91 +label95: + mov PSW, #8h + mov R3, #0h + mov PSW, #0h + mov A, R7 + cjne A, #51h, label125 + mov A, R5 + orl A, #84h + ljmp label126 +label125: + cjne A, #54h, label127 + mov A, R5 + orl A, #88h + ljmp label126 +label127: + cjne A, #57h, label128 + mov A, R5 + cpl 0E5h + ljmp label126 +label128: + cjne A, #53h, label129 + mov A, R5 + setb 0E1h + ljmp label126 +label129: + cjne A, #56h, label130 + mov A, R5 + setb 0E4h + ljmp label126 +label130: + cjne A, #2Dh, label131 + setb 21h + ljmp label132 +label131: + cjne A, #49h, label133 + mov DPH, #28h + movx A, @DPTR + jb 0E0h, label134 +label134: + ljmp label132 +label133: + cjne A, #4Fh, label134 + mov DPH, #28h + movx A, @DPTR + jb 0E1h, label134 + clr T0 + clr T1 + mov A, 58h + clr 0E5h + setb 0E6h + mov 58h, A + ljmp label132 +label124: + mov A, R7 + cjne A, #51h, label135 + mov A, R5 + anl A, #0FBh + jnb 0E3h, label136 + ljmp label126 +label135: + cjne A, #54h, label137 + mov A, R5 + anl A, #0F7h + jb 0E2h, label138 +label136: + anl A, #7Fh +label138: + ljmp label126 +label137: + cjne A, #53h, label139 + mov A, R5 + clr 0E1h + ljmp label126 +label139: + cjne A, #56h, label140 + mov A, R5 + clr 0E4h + ljmp label126 +label140: + cjne A, #2Dh, label132 + clr 1Ch + mov A, R5 + anl A, #0FEh +label126: + mov R5, A +label132: + ajmp label91 +label93: + mov A, R0 + clr C + subb A, #3Eh + movc A, @A+PC + anl A, R2 + ret + nop + nop + nop + nop + nop + jb 0h, label141 +label141: + nop + anl C, CCF2 + nop + nop + nop + nop + nop +label89: + mov PSW, #0h + mov A, #3h + xch A, R0 + mov R6, A +label143: + mov A, R7 + xrl A, @R1 + jnz label142 + mov A, R1 + add A, #3h + orl A, #2Ch + anl A, #2Fh + mov R1, A + mov A, R6 + mov R0, A + ret +label142: + mov A, R1 + inc A + orl A, #2Ch + anl A, #2Fh + mov R1, A + djnz R0, label143 + mov A, R6 + mov R0, A + clr A + ret +label92: + mov PSW, #0h + mov A, R1 + inc A + orl A, #2Ch + anl A, #2Fh + mov R1, A + mov A, R7 + mov @R1, A + setb 10h + ret +label35: + mov 0Ah, #55h + mov P1, #0FFh + mov A, R0 + clr EA + mov DPH, #28h + movx @DPTR, A + setb EA + ret +label36: + mov P1, #0FFh + mov A, P1 + cpl A + xrl A, @R0 + ret +label11: + push ACC + push PSW + mov PSW, #8h + xch A, R6 + clr 11h + jb 0E7h, label144 + setb 11h + inc A + cjne A, #40h, label145 +label145: + jc label146 + mov A, #30h +label146: + mov R1, A + xch A, R6 + mov @R1, A + mov A, R7 + xrl A, R6 + jnz label147 + mov A, R6 + orl A, #80h +label151: + mov R6, A +label147: + pop PSW + mov A, SP + cjne A, #67h, label148 +label148: + jc label149 + cjne A, #80h, label150 +label150: + jnc label149 + pop ACC + ret +label144: + sjmp label151 +label149: + ajmp label2 + ret +label4: push PSW + push ACC + jnb TI, label152 + clr TI +label152: + jbc RI, label153 + ljmp label154 +label153: + mov PSW, #10h + mov A, SBUF + mov R6, A + jb 0E7h, label155 + jb 0E6h, label156 + anl A, #3Fh + mov 29h, A + jz label157 + setb 15h + jnb 0E5h, label157 + orl 29h, #0C0h +label157: + ljmp label154 +label155: + jb 0E6h, label158 + anl A, #3Fh + mov 2Ah, A + jz label159 + setb 15h + jnb 0E5h, label159 + orl 2Ah, #0C0h +label159: + jbc 15h, label160 +label158: + ljmp label154 +label160: + mov A, #0A2h + acall label11 + mov A, 29h + acall label11 + mov A, 2Ah + acall label11 + ljmp label154 +label156: + xrl A, #7h + mov R6, A + xrl A, 2Bh + mov R5, A + jnz label161 + ljmp label154 +label161: + jnb 0E0h, label162 + mov A, R6 + jb 0E0h, label163 + ljmp label162 +label163: + mov A, #0A4h + acall label11 + mov A, #40h + acall label11 +label162: + mov A, R5 + jnb 0E1h, label164 + mov A, R6 + jb 0E1h, label165 + mov 65h, #3h + ljmp label164 +label165: + mov 65h, #0h + orl 1Fh, #80h + mov A, #0A4h + acall label11 + mov A, #41h + acall label11 +label164: + mov A, R5 + jnb 0E2h, label166 + mov A, R6 + jb 0E2h, label167 + mov 64h, #3h + ljmp label166 +label167: + mov 64h, #0h + orl 1Fh, #40h + mov A, #0A4h + acall label11 + mov A, #42h + acall label11 +label166: + mov A, R6 + mov 2Bh, A +label154: + mov A, SP + cjne A, #67h, label168 +label168: + jc label169 + cjne A, #80h, label170 +label170: + jnc label169 + pop ACC + pop PSW + reti +label169: + ajmp label2 + ajmp label2 +label1: push PSW + push DPH + push DPL + mov 14h, A + mov DPH, #2h + movx A, @DPTR + mov PSW, #8h + mov A, R7 + xrl A, R6 + jz label171 + acall label58 + ljmp label172 +label171: + clr 17h + mov DPH, #2h + clr A + movx @DPTR, A + mov DPH, #1h + mov A, #0h + movx @DPTR, A +label172: + ljmp label173 +label173: + mov A, 14h + pop DPL + pop DPH + pop PSW + reti + nop + nop + nop + nop + nop + nop + nop + nop + anl A, R0 + ajmp label174 + ljmp label175 + anl A, R0 + inc R0 + anl A, R0 + jbc 58h, label176 + anl A, R0 + jc label177 + sjmp label178 +label178: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + anl A, R3 + ajmp label179 + nop + nop + nop + anl A, R3 + ljmp label180 + nop + nop + nop + nop + nop + nop +label176: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + anl A, R1 + ajmp label181 + ljmp label182 + anl A, R1 + inc R0 + anl A, R1 + jbc 59h, label183 + anl A, R1 + jc label184 + sjmp label185 + inc A + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + anl A, R3 + inc R0 + xrl A, R6 +label177: + addc A, R1 + xrl A, R7 +label181: + xrl A, R4 + add A, R6 + xrl A, R7 + xrl A, R4 + xrl A, R5 + addc A, R1 + nop +label183: + rlc A + mov R3, #78h + mov R2, #36h + mov R6, #38h + acall label186 + addc A, @R1 + jnb 7Ch, label187 + addc A, #27h + addc A, R5 + add A, R5 + anl A, R4 + jz label188 + anl A, R3 + anl A, R5 + addc A, R3 + xrl A, R3 + xrl 64h, #65h + add A, R7 +label188: + jnz label189 + xrl A, R1 + xrl A, @R0 + anl A, R3 + anl A, R4 + anl A, R5 + nop + xrl A, @R1 + xrl A, R0 + nop + nop + orl A, R0 + nop + orl A, R2 + nop + nop + nop + nop + addc A, R0 + nop + xrl A, R3 + nop + add A, R4 + nop + xrl A, R1 + xrl A, R0 + addc A, @R1 + addc A, @R0 + xrl A, R2 + xrl A, R6 + xrl A, R5 +label184: + mov R1, #75h + anl A, R1 + nop +label185: + anl A, R2 + anl A, R0 +label187: + anl A, @R0 + anl A, @R1 + nop + nop + inc R5 + nop + ajmp label190 + nop + jb 0h, label189 +label189: + orl A, @R0 + reti + nop + jmp @A+DPTR + nop + mov R0, #44h + mov @R1, #61h + nop + xrl 60h, A + anl A, R6 + anl A, R7 + nop + nop + xrl A, @R1 + addc A, #35h + xrl A, @R0 + xrl 76h, A + mov A, #72h + nop + rlc A + nop + xrl A, #0h + xrl 0h, #65h + ajmp label191 + acall label192 + mov R2, #0h + acall label193 + dec R6 + nop + nop + mov R7, A + ajmp label194 + nop + mov R2, 0FFh + nop + add A, SPSR + nop + mov R7, A + mov R2, 55h + nop + add A, R0 + orl A, R7 + orl A, R4 + addc A, R6 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + ret + add A, R3 +label192: + anl A, R7 + mov R4, #7Eh + nop + mov R3, #7Dh + addc A, R2 + nop + nop + nop + nop + addc A, R7 + jnc label195 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + orl A, R7 + nop + orl A, R5 + nop + add A, R2 + nop + orl A, R3 + nop + addc A, R4 + nop + orl A, R1 +label199: + orl A, R0 + add A, @R0 + anl A, R6 + orl A, R2 + orl A, R6 + orl A, R5 + anl A, R1 + anl A, 0h + nop + nop + nop +label186: + nop + nop + nop + nop + nop +label195: + nop + anl C, 0h + nop + nop + nop + nop + nop + jc label196 +label196: + anl 0h, #58h + nop + anl A, @R1 + nop + nop + nop + nop + nop + nop + nop + nop + orl A, @R1 + add A, #25h + orl A, @R0 + orl 56h, A + anl A, #52h + nop + rl A + nop + orl A, #0h + orl 0h, #45h + ajmp label197 + ajmp label192 + anl A, R2 + nop + acall label197 + cjne R6, #0h, label198 +label198: + nop + nop + xch A, R6 + mov TCON, R4 + nop + nop +label201: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + mov KBE, R6 + subb A, R6 + subb A, R7 + nop + nop + nop + cjne R2, #0CCh, label199 + subb A, @R0 + subb A, @R1 + nop + cjne R4, #0CAh, label200 +label200: + nop + cjne A, 0h, label201 + movx @DPTR, A + nop + pop 0h + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + movc A, @A+DPTR + nop + subb A, #92h + mov DPTR, #9100h + nop + nop + nop + nop + nop + nop + nop + nop + nop + movx A, @R0 + nop + nop + nop + nop + nop + setb 0h + subb A, R3 + nop + subb A, R4 + subb A, R2 + subb A, R0 + subb A, R1 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + ajmp label202 + nop + nop + nop + nop + cpl 0BFh + nop + nop + nop + nop + xch A, R7 + mov TMOD, R5 + nop + nop + nop +label205: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop +label197: + nop + nop + nop + nop + nop + nop + nop + mov 1Dh, R7 + dec R6 + dec R7 + nop + nop + nop + cjne R3, #0CDh, label203 + dec @R0 + dec @R1 + nop + cjne R5, #0CBh, label204 +label204: + nop + cjne @R0, #0h, label205 + acall label194 + acall label202 + nop + nop + nop + nop + nop + nop + nop +label203: + nop + nop + nop + nop + nop + nop + nop + nop + rrc A + nop + dec A + lcall label206 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + movx A, @R1 + nop +label211: + nop + nop +label212: + nop + nop + setb C + nop + dec R3 + nop + dec R4 + dec R2 + dec R0 + dec R1 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + clr 0h + nop + nop + nop + nop + cpl C + xrl A, R6 + addc A, R1 + orl A, R7 + orl A, R4 + add A, R6 + xrl A, R7 + xrl A, R4 + xrl A, R5 + addc A, R1 + nop + rlc A + mov R3, #78h + mov R2, #36h + mov R6, #38h + acall label186 + addc A, @R1 + jnb 7Ch, label207 + addc A, #27h + addc A, R5 + add A, R5 + anl A, R4 + jz label208 + anl A, R3 + anl A, R5 + addc A, R3 + xrl A, R3 + xrl 64h, #65h + add A, R7 +label208: + jnc label209 + xrl A, R1 + xrl A, @R0 + anl A, R3 + anl A, R4 + anl A, R5 + nop + xrl A, @R1 + xrl A, R0 + nop + nop + orl A, R0 + nop + orl A, R2 + nop + nop + nop + nop + addc A, R0 + nop + orl A, R3 + nop + add A, R4 + nop + orl A, R1 + orl A, R0 + addc A, @R1 + addc A, @R0 + orl A, R2 + orl A, R6 + orl A, R5 + anl A, R1 + anl A, 59h + nop + anl A, R2 + anl A, R0 +label207: + anl A, @R0 + anl A, @R1 + nop + nop + inc R5 + nop + ajmp label190 + nop + jb 0h, label209 +label209: + orl A, @R0 + reti + nop + anl 0h, #58h + orl A, #57h + ajmp label210 + xrl 60h, A + anl A, R6 + anl A, R7 + nop + nop + orl A, @R1 + addc A, #35h + orl A, @R0 + orl 56h, A + anl A, #52h + nop + rlc A + nop + orl A, #0h + orl 0h, #45h + ajmp label211 + acall label192 + anl A, R2 + nop + acall label212 + nop + add A, R0 + xrl A, R7 + xrl A, R4 + addc A, R6 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + ret + add A, R3 +label210: + anl A, R7 + mov R4, #7Eh + nop + mov R3, #7Dh + addc A, R2 + nop + nop + nop + nop + addc A, R7 + jnz label213 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + orl A, R7 + nop + orl A, R5 + nop + add A, R2 + nop + xrl A, R3 + nop + addc A, R4 + nop + xrl A, R1 + xrl A, R0 + add A, @R0 + anl A, R6 + xrl A, R2 + xrl A, R6 + xrl A, R5 + mov R1, #75h + nop + nop + nop + nop + nop + nop + nop + nop + nop +label213: + nop + anl C, 0h + nop + nop + nop + nop + nop + jc label214 +label214: + jmp @A+DPTR +label193: + nop + mov R0, #0h + mov @R1, #0h + nop + nop + nop + nop + nop + nop + nop + xrl A, @R1 + add A, #25h + xrl A, @R0 + xrl 76h, A + mov A, #72h + nop + rl A + nop + xrl A, #0h + xrl 0h, #65h + ajmp label210 + ajmp label192 + mov R2, #0h + acall label210 + dec R6 + movx @DPTR, A + jnc label215 + ajmp label194 + nop + mov R2, 0FFh + inc 25h + mov R2, 5h + mov R7, A + mov R2, 55h + nop + inc A + ljmp label216 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + ljmp label180 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop +label190: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop +label202: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop +label194: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + dec 0E5h + + END \ No newline at end of file