[转贴]斑竹写的用keil环境和SST89c58制作的51在线下载器源程序。
<P>这是我去年写的sst89c58下载器,使用keilc51的debug调试环境下载。将本程序编译后写入sst89c58,并编程为remap 4kbytes。该芯片即有了keil环境在线下载功能。
当p1.0拉低时,启动时进入下载程序,进入下载程序后将会自动删除block0。p1.0高电平时进入用户程序。
进入下载程序后,可以通过串口和keil的仿真环境连通,波特率自动调节。
选择load HEX文件,即可将程序下载到sst89c58的低端32keeprom中。除了7e00-7fffh被占用了。
</P>;sst89c58下载器,使用keilc51的debug调试器下载。
;将本程序编译后写入sst89c58,并编程为remap 4kbytes。该芯片即有了keil环境下载功能。
;当p1.0拉低时,启动时进入下载程序,进入下载程序后将会自动删除block0。p1.0高电平时进入用户程序。
;进入下载程序后,可以通过串口和keil的仿真环境连通,波特率自动调节。
;选择load HEX文件,即可将程序下载到sst89c58的低端32keeprom中。除了7e00-7fffh被占用了。
;程序编写:丁丁 2000.12.26
;个人主页:http://www.mcu51.com
sfcf data 0b1h
sfcm data 0b2h
sfal data 0b3h
sfah data 0b4h
sfdt data 0b5h
sfst data 0b6h
ORG 0F000H
ljmp disremap ;千万不要删除这句看似没用的程序,至于为什么就想想吧。
disremap:mov sfcf,#11000000b ;disable remap
;jb p1.0,user;在这里设置你要用来控制进入iap的管脚
clr p3.1;led指示正在擦除
lcall clearuser
setb p3.1
ljmp LF026;main
user: ljmp 0000h
writebyte: push acc ;这个子程序是用来写一个eeprom字节的,如果你仅仅是用来iap,也可以将它简化,后面那一大段就可以删了。
push psw
push dph
push dpl
push b
push 02h
push 00h
push acc ;保存要写入的数据
CLR A ;测试是否为空0ffh
MOVC A, @A+DPTR
inc a
jnz clear_save
w_b_: pop acc ;如果该位置是空的就直接写入,不用擦除
w1byte: mov sfah,dph
mov sfal,dpl
mov sfdt,a
mov sfcm,#0eh
t_over: mov a,sfst
jb acc.2,T_over
ajmp endend
clear_save: ;清除用来暂时保存的rom
mov sfah,#7fh
mov sfal,#00h
mov sfcm,#0bh
t_c7f_over: mov a,sfst
jb acc.2,t_c7f_over
;将高端内存搬到暂时保存rom
mov r2,#00h ;将高端ram搬到7f00rom
mov r0,#80h ;指向高端ram
t_w1_next: mov sfah,#7fh
mov sfal,r2
mov sfdt,@r0
mov sfcm,#06h ;burst write
t_w1_over: mov a,sfst
jb acc.3,t_w1_over
inc r2
inc r0
cjne r0,#0c0h,t_w1_n1 ;write 64
t_w1_over1: mov a,sfst
jb acc.2,t_w1_over1
ajmp t_w1_next
t_w1_n1: cjne r0,#00h,t_w1_next
t_w1_over2: mov a,sfst
jb acc.2,t_w1_over2
;将被写字节所在扇搬到高端内存
mov b,dpl;save dpl当前字节所在地低端位置b
anl dpl,#80h
mov r0,#80h
save_w0: clr a
movc a,@a+dptr
mov @r0,a
inc r0
inc dpl
cjne r0,#00h,save_w0
;写入当前字节到高端内存
mov a,b
orl a,#80h
mov r0,a
pop acc
mov @r0,a
;擦除原位置扇区
mov sfah,dph
mov sfal,b
mov sfcm,#0bh
t_w1_c1: mov a,sfst
jb acc.2,t_w1_c1
;将高端内存搬到原位置扇区
anl b,#80h
mov r0,#80h ;指向高端ram
t1_w1_next: mov sfah,dph
mov sfal,b
mov sfdt,@r0
mov sfcm,#06h ;burst write
t1_w1_over: mov a,sfst
jb acc.3,t1_w1_over
inc b
inc r0
cjne r0,#0c0h,t1_w1_n1 ;write 64
t1_w1_over1: mov a,sfst
jb acc.2,t1_w1_over1
ajmp t1_w1_next
t1_w1_n1: cjne r0,#00h,t1_w1_next
t1_w1_over2: mov a,sfst
jb acc.2,t1_w1_over2
;将保存区的内容搬回到高端ram
mov r0,#80h
mov dptr,#7f00h
t_w1_b: clr a
movc a,@a+dptr
mov @r0,a
inc r0
inc dpl
cjne r0,#0,t_w1_b
endend: pop 00h
pop 02h
pop b
pop dpl
pop dph
pop psw
pop acc
ret
org 0f200h;//////////////////////
LF200:PUSH DPL
PUSH DPH
MOV DPTR, #7E08H
lcall writebyte
MOV A, PSW
INC DPTR
lcall writebyte
CLR A
MOV PSW, A
XCH A, IE
INC DPTR
lcall writebyte
POP ACC
INC DPTR
lcall writebyte
POP ACC
INC DPTR
lcall writebyte
POP ACC
INC DPTR
lcall writebyte
POP ACC
INC DPTR
lcall writebyte
INC DPTR
CLR A
MOVC A, @A+DPTR
XCH A, SP
lcall writebyte
MOV A, B
INC DPTR
lcall writebyte
MOV A, R0
INC DPTR
lcall writebyte
MOV R0, #00H
LF232:INC R0
INC DPTR
CLR A
MOVC A, @A+DPTR
XCH A, @R0
lcall writebyte
MOV A, R0
CJNE A, #6FH, LF232
LCALLLF0AF
LCALLLF2A0
LCALLLFBD0
LCALLLFAD4
LCALLLF9EC
LCALLLF9EC
LCALLLF9EC
LF251:LCALLLFAD4
MOV DPTR, #7E0DH
MOV A, R0
lcall writebyte
INC DPTR
MOV A, R1
lcall writebyte
LCALLLF0A2
RET
LF260:MOV R2, #01H
LF262:LCALLLFBD0
MOV R6, 01H
MOV R5, 00H
LF269:LCALLLFB0C
CJNE A, #01H, LF29B
PUSH DPH
PUSH DPL
LCALLLFACA
CLR C
MOV A, R6
SUBB A, R1
MOV R4, A
MOV A, R5
SUBB A, R0
JNZ LF28A
CJNE R4, #02H, LF281
LF281:JNC LF28A
MOV 28H, #08H
MOV A, #01H
SJMP LF296
LF28A:MOV A, #12H
LCALLLFADF
MOV A, #0F1H
LCALLLFADF
MOV A, #03H
LF296:POP DPL
POP DPH
lcall writebyte
LF29B:INC R2
CJNE R2, #0CH, LF269
RET
LF2A0:MOV R2, #0BH
LF2A2:LCALLLFB0C
CJNE A, #03H, LF2B4
MOV A, #01H
lcall writebyte
LCALLLFACA
LCALLLFADD
LCALLLFADD
LF2B4:DJNZ R2, LF2A2
LF2B6:MOV A, #81H
LF2B8:SETB 10H
MOV R0, A
SJMP LF2C1
LF2BD:MOV R0, #81H
LF2BF:CLR 10H
LF2C1:MOV DPTR, #7E08H
CJNE R0, #0E0H, LF2C9
SJMP LF2ED
LF2C9:INC DPTR
CJNE R0, #0D0H, LF2CF
SJMP LF2ED
LF2CF:INC DPTR
CJNE R0, #0A8H, LF2D5
SJMP LF2ED
LF2D5:INC DPTR
CJNE R0, #83H, LF2DB
SJMP LF2ED
LF2DB:INC DPTR
CJNE R0, #82H, LF2E1
SJMP LF2ED
LF2E1:MOV DPTR, #7E0FH
CJNE R0, #81H, LF2E9
SJMP LF2ED
LF2E9:INC DPTR
CJNE R0, #0F0H, LF2F5
LF2ED:JB 10H, LF2F2
lcall writebyte
RET
LF2F2:CLR A
MOVC A, @A+DPTR
RET
LF2F5:MOV R1, #0E5H
JB 10H, LF2FC
MOV R1, #88H
LF2FC:PUSH ACC
MOV DPTR, #7EC3H
MOV A, R1
LCALLLF8F4
MOV R1, DPL
MOV A, DPH
XCH A, R0
INC DPTR
LCALLLFAF0
MOV A, #22H
LCALLLFAF0
MOV DPL, R1
MOV DPH, R0
CLR A
POP 00H
JMP @A+DPTR
LF31B:MOV A, #0E0H
LCALLLF2B8
MOV DPL, 2CH ;///????????
MOV DPH, 2BH
MOVC A, @A+DPTR
MOV R0, #0E0H
LJMP LF2BF
LF32C:LCALLLF2B6
PUSH 06H
MOV R1, A
MOV A, 2CH
LCALLLF918
MOV A, 2BH
LCALLLF918
MOV A, R1
POP 06H
LJMP LF2BD
Lf342: ;f342hdata area
db 01h,06h;AJMP LF006
db 0fh;INC R7
db 01h,01h;AJMP 0F001H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 23h;RL A
db 0ah;INC R2
db 13h;RRC A
db 01h,01h;AJMP 0F001H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 23h;RL A
db 06h;INC @R0
db 15h,01h;DEC 01H
db 02h,02h,01h;LJMP 0201H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,23h;AJMP LF023
db 0ah;INC R2
db 19h;DEC R1
db 01h,02h;AJMP 0F002H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 1eh;DEC R6
db 06h;INC @R0
db 02h,03h,02h;LJMP 0302H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 1eh;DEC R6
db 0ah;INC R2
db 02h,03h,02h;LJMP 0302H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 1eh;DEC R6
db 06h;INC @R0
db 02h,03h,02h;LJMP 0302H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 1eh;DEC R6
db 0ah;INC R2
db 02h,29h,02h;LJMP 2902H
db 03h;RR A
db 02h,02h,02h;LJMP 0202H
db 02h,02h,02h;LJMP 0202H
db 02h,02h,02h;LJMP 0202H
db 02h,1eh,06h;LJMP 1E06H
db 02h,25h,01h;LJMP 2501H
db 03h;RR A
db 02h,02h,02h;LJMP 0202H
db 02h,02h,02h;LJMP 0202H
db 02h,02h,02h;LJMP 0202H
db 02h,03h,0ah;LJMP 030AH
db 02h,01h,02h;LJMP 0102H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 02h,06h,02h;LJMP 0602H
db 01h,01h;AJMP 0F001H
db 01h,02h;AJMP 0F002H
db 02h,02h,02h;LJMP 0202H
db 02h,02h,02h;LJMP 0202H
db 02h,02h,02h;LJMP 0202H
db 02h,0ah,02h;LJMP 0A02H
db 01h,23h;AJMP LF023
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 23h;RL A
db 02h,06h,02h;LJMP 0602H
db 01h,01h;AJMP 0F001H
db 02h,01h,01h;LJMP 0101H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 02h,0ah,02h;LJMP 0A02H
db 01h,01h;AJMP 0F001H
db 23h;RL A
db 01h,01h;AJMP 0F001H
db 1eh;DEC R6
db 1eh;DEC R6
db 1eh;DEC R6
db 1eh;DEC R6
db 1eh;DEC R6
db 1eh;DEC R6
db 1eh;DEC R6
db 1eh;DEC R6
db 01h,06h;AJMP LF006
db 01h,01h;AJMP 0F001H
db 01h,02h;AJMP 0F002H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,0ah;AJMP LF00A
db 01h,01h;AJMP 0F001H
db 01h,02h;AJMP 0F002H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
db 01h,01h;AJMP 0F001H
Lf442: db 56h,33h,2eh,30h ;,75h,81h,07h,90h,7eh,08h,0e4h,78h,05h ;f442h code area
Lf446: mov sp,#07h ;program start
mov dptr,#7e08h
clr a
mov r0,#05h
LF44F:lcall writebyte
INC DPTR
DJNZ R0, LF44F
MOV A, #00H
lcall writebyte
INC DPTR
MOV A, #00H
lcall writebyte
INC DPTR
MOV A, #07H
lcall writebyte
INC DPTR
CLR A
lcall writebyte
MOV 23H, A
INC A
MOV 24H, A
MOV DPTR, #7E00H
MOV R1, #00H
MOV R0, #0A5H
LCALLLF4C3
MOV R0, #33H
LCALLLF4C3
MOV R0, #0CCH
LCALLLF4C3
MOV A, R1
JZ LF48D
MOV R2, #0BH
MOV R5, #00H
LCALLLFB83
CLR A
MOV 30H, A
MOV 31H, A
MOV DPTR, #7E07H
lcall writebyte
LF48D:LCALLLF2A0
LF490:LCALLLF890
CJNE A, #11H, LF4A0
MOV A, 23H
LCALLLF884
CPL A
MOV 23H, A
SJMP LF490
LF4A0:CJNE A, #01H, LF4AA
MOV A, 24H
LCALLLF884
SJMP LF490
LF4AA:LCALLLF4AF
SJMP LF490
LF4AF:MOV 25H, A
DEC A
DEC A
ANL A, #0EH
MOV DPTR, #Lf8c0
MOV R7, A
MOVC A, @A+DPTR
XCH A, R7
INC DPTR
MOVC A, @A+DPTR
MOV DPH, R7
MOV DPL, A
CLR A
JMP @A+DPTR
LF4C3:CLR A
MOVC A, @A+DPTR
XRL A, R0
ORL A, R1
MOV R1, A
MOV A, R0
lcall writebyte
INC DPTR
RET
LF4CC:MOV A, #06H
LCALLLF884
MOV A, 28H
LCALLLF884
MOV DPTR, #7E03H
MOV R0, #04H
LF4DB:CLR A
MOVC A, @A+DPTR
LCALLLF884
INC DPTR
DJNZ R0, LF4DB
MOV A, #04H
LCALLLF884
RET
MOV 28H, #00H
LCALLLF89C
MOV 26H, A
JZ LF51A
LCALLLF89C
MOV DPH, A
LCALLLF89C
MOV DPL, A
LCALLLF89C
MOV 27H, A
LF502:LCALLLF89C
LCALLLF8D0
INC DPTR
DJNZ 27H, LF502
LF50C:LCALLLF89C
MOV A, 25H
JZ LF516
MOV 28H, #02H
LF516:LCALLLF4CC
RET
LF51A:LCALLLF89C
MOV DPTR, #7E0DH
lcall writebyte
INC DPTR
LCALLLF89C
lcall writebyte
LCALLLF89C
SJMP LF50C
MOV 28H, #00H
LCALLLF89C
MOV 26H, A
LCALLLF89C
MOV DPH, A
LCALLLF89C
MOV DPL, A
LCALLLF89C
MOV 27H, A
LCALLLF89C
MOV A, 25H
JZ LF550
MOV 28H, #02H
LF54C:LCALLLF4CC
RET
LF550:MOV 25H, #00H
MOV A, #02H
LCALLLF8B0
MOV A, 26H
JZ LF56E
LF55C:LCALLLF96B
LCALLLF8B0
INC DPTR
DJNZ 27H, LF55C
LF566:CLR A
CLR C
SUBB A, 25H
LCALLLF8B0
RET
LF56E:MOV DPTR, #7E0DH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPTR
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
SJMP LF566
MOV 28H, #00H
LCALLLF89C
MOV 29H, A
LCALLLF89C
MOV 27H, A
LCALLLF89C
MOV 26H, A
LCALLLF89C
MOV DPH, A
LCALLLF89C
MOV DPL, A
LCALLLF89C
MOV A, 25H
JZ LF5A8
MOV 28H, #02H
LCALLLF4CC
RET
LF5A8:CLR A
CJNE A, 29H, LF5B2
LCALLLFB52
LJMP LF4CC
LF5B2:INC A
CJNE A, 29H, LF5BC
LCALLLFB76
LJMP LF4CC
LF5BC:INC A
CJNE A, 29H, LF5C6
LCALLLFB72
LJMP LF4CC
LF5C6:INC A
CJNE A, 29H, LF5D0
LCALLLFB7A
LJMP LF4CC <P>LF5D0:LCALLLFBA7
LJMP LF4CC
MOV 28H, #00H
LCALLLF89C
MOV 29H, A
LCALLLF89C
MOV 27H, A
LCALLLF89C
MOV 26H, A
LCALLLF89C
MOV DPH, A
LCALLLF89C
MOV DPL, A
LCALLLF89C
MOV R2, A
LCALLLF89C
MOV R0, A
LCALLLF89C
MOV R1, A
LCALLLF89C
MOV A, 25H
JZ LF60C
MOV 28H, #02H
LCALLLF4CC
RET
LF60C:CLR A
CJNE A, 29H, LF61C
LCALLLFCC9
LCALLLF093
JNC LF61B
LCALLLF890
LF61B:RET
LF61C:INC A
CJNE A, 29H, LF623
LJMP LF643
LF623:INC A
CJNE A, 29H, LF62F
CLR 11H
LCALLLFC8D
LJMP LF643
LF62F:CLR 12H
LCALLLFC8B
JB 12H, LF642
LCALLLF4CC
LCALLLF093
JNC LF642
LCALLLF890
LF642:RET
LF643:MOV 25H, #00H
MOV A, #02H
LCALLLF8B0
MOV 26H, #04H
MOV DPH, #00H
MOV DPL, #0E0H
LCALLLF96B
LCALLLF8B0
MOV DPL, #0F0H
LCALLLF96B
LCALLLF8B0
MOV DPL, #0D0H
MOV 2AH, #08H
LCALLLF96B
ANL A, #18H
MOV DPL, A
LF670:LCALLLF96B
LCALLLF8B0
INC DPTR
DJNZ 2AH, LF670
MOV DPL, #83H
LCALLLF96B
LCALLLF8B0
MOV DPL, #82H
LCALLLF96B
LCALLLF8B0
MOV DPTR, #7E0DH
CLR A
LF690:MOVC A, @A+DPTR
LCALLLF8B0
INC DPTR
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
MOV DPL, #0D0H
LCALLLF96B
LCALLLF8B0
CLR A
LCALLLF8B0
CLR A
LCALLLF8B0
CLR A
LCALLLF8B0
CLR A
LCALLLF8B0
MOV DPL, #81H
LCALLLF96B
MOV DPL, A
LCALLLF8B0
MOV 26H, #01H
LF6C1:LCALLLF96B
LCALLLF8B0
DEC DPL
DJNZ 27H, LF6C1
CLR A
CLR C
SUBB A, 25H
LCALLLF8B0
RET
MOV 28H, #00H
LCALLLF89C
MOV 26H, A
LCALLLF89C
MOV DPH, A
LCALLLF89C
MOV DPL, A
LCALLLF89C
INC A
MOV 29H, A
LCALLLF89C
INC A
MOV 27H, A
LCALLLF89C
MOV 2AH, A
SJMP LF6FF
LF6F9:MOV A, 2AH
LCALLLF8D0
INC DPTR
LF6FF:DJNZ 27H, LF6F9
DJNZ 29H, LF6F9
LCALLLF89C
MOV A, 25H
JZ LF70F
MOV 28H, #02H
LF70F:LCALLLF4CC
RET
MOV 28H, #00H
LCALLLF89C
MOV A, 25H
JZ LF724
MOV 28H, #02H
LCALLLF4CC
RET
LF724:CLR 11H
LCALLLFC8D
MOV DPTR, #7E0DH
CLR A
MOVC A, @A+DPTR
MOV R0, A
INC DPTR
CLR A
MOVC A, @A+DPTR
MOV R1, A
MOV DPTR, #7E03H
MOV A, R0
lcall writebyte
INC DPTR
MOV A, R1
lcall writebyte
MOV DPH, R0
MOV DPL, R1
MOV 26H, #05H
LCALLLF96B
MOV DPTR, #7E05H
lcall writebyte
LCALLLF4CC
RET
MOV 28H, #00H
LCALLLF89C
MOV 29H, A
LCALLLF89C
MOV 27H, A
LCALLLF89C
MOV A, 25H
JZ LF767
MOV 28H, #02H
LJMP LF4CC
LF767:CLR A
CJNE A, 29H, LF771
ANL 24H, #0FBH
LJMP LF4CC
LF771:INC A
CJNE A, 29H, LF77B
ORL 24H, #04H
LJMP LF4CC
LF77B:INC A
CJNE A, 29H, LF787
CLR A
MOV 30H, A
MOV 31H, A
LJMP LF4CC
LF787:MOV DPL, 30H
MOV A, 27H
JZ LF797
CLR C
MOV A, 30H
SUBB A, 27H
MOV DPL, A
JNC LF79E
LF797:MOV A, 31H
JNZ LF79E
LJMP LF4CC
LF79E:MOV 25H, #00H
MOV A, #02H
LCALLLF8B0
MOV DPH, #6AH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
INC DPH
CLR A
MOVC A, @A+DPTR
LCALLLF8B0
CLR A
CLR C
SUBB A, 25H
LCALLLF8B0
RET
MOV 28H, #00H
LCALLLF89C
MOV 29H, A
LCALLLF89C
MOV A, 25H
JZ LF850
MOV 28H, #02H
LJMP LF4CC
LF850:CLR A
CJNE A, 29H, LF85B
MOV DPTR, #7E07H
lcall writebyte
LJMP LF4CC
LF85B:INC A
CJNE A, 29H, LF866
MOV DPTR, #7E07H
lcall writebyte
LJMP LF4CC
LF866:MOV R0, #04H
MOV DPTR, #LF442
MOV R1, #02H
LF86D:CLR A
MOVC A, @A+DPTR
MOV @R1, A
INC DPTR
INC R1
DJNZ R0, LF86D
MOV R0, #04H
MOV DPTR, #7E03H
MOV R1, #02H
LF87B:MOV A, @R1
lcall writebyte
INC DPTR
INC R1
DJNZ R0, LF87B
LJMP LF4CC
LF884:LCALLLF096
JNC LF884
LCALLLF09F
LCALLLF09C
RET </P><P>LF890:LCALLLF093
JNC LF890
LCALLLF099
LCALLLF0A5
RET
LF89C:LCALLLF093
JNC LF89C
LCALLLF099
LCALLLF0A5
PUSH ACC
ADD A, 25H
MOV 25H, A
POP ACC
RET </P> <P>LF8B0:LCALLLF096
JNC LF8B0
LCALLLF09F
LCALLLF09C
ADD A, 25H
MOV 25H, A
RET</P><P>lf8c0: db 0f5h,017h,0f5h,05dh,0f5h,0b0h,0f6h,008h
db 0f7h,006h,0f7h,045h,0f7h,085h,0f8h,073h;data
;db 0f4h,0e9h,0f5h,02bh,0f5h,07eh,0f5h,0d6h
;db 0f6h,0d4h,0f7h,013h,0f7h,04dh,0f8h,03bh;data
;;;end
LF8D0:MOV R7, 26H
CJNE R7, #01H, LF8D7
SJMP LF91D
LF8D7:CJNE R7, #02H, LF8DC
SJMP LF912
LF8DC:CJNE R7, #03H, LF8E1
SJMP LF914
LF8E1:CJNE R7, #04H, LF8E6
SJMP LF91D
LF8E6:CJNE R7, #05H, LF8EB
SJMP LF8F4
LF8EB:CJNE R7, #06H, LF8F0
SJMP LF950
LF8F0:MOV 28H, #0FFH
RET
LF8F4:LCALLLF0B0
MOV R7, A
CLR A
MOVC A, @A+DPTR
CJNE A, 07H, LF8FE
RET
LF8FE:MOV A, 28H
JNZ LF911
MOV 28H, #03H
MOV R0, DPL
MOV R1, DPH
MOV DPTR, #7E05H
MOV A, R1
lcall writebyte
INC DPTR
MOV A, R0
lcall writebyte
LF911:RET
LF912:lcall writebyte
RET
LF914:;mov dph,P2
lcall writebyte
;MOV R0, DPL
;MOVX @R0, A ;!!!!!!!
RET
LF918:INC R1
MOV DPL, R1
MOV R7, #01H
LF91D:MOV R6, A
MOV A, DPL
LF920:CJNE A, #70H, LF923
LF923:JC LF92C
JB ACC.7, LF93D
LF928:MOV R0, A
MOV A, R6
MOV @R0, A
RET
LF92C:PUSH DPL
PUSH DPH
MOV DPTR, #7E11H
LCALLLF9E2
MOV A, R6
lcall writebyte
POP DPH
POP DPL
RET
LF93D:CJNE R7, #01H, LF942
SJMP LF928
LF942:PUSH DPL
PUSH DPH
MOV R0, A
MOV A, R6
LCALLLF2BF
POP DPH
POP DPL
RET
LF950:RRC A
MOV f0, C
LCALLLF9D2
PUSH ACC
LCALLLF99F
INC R6
MOV R7, 06H
LF95E:RRC A
DJNZ R7, LF95E
MOV C, F0
LF963:RLC A
DJNZ R6, LF963
MOV R6, A
POP ACC
SJMP LF920</P><P>LF96B:MOV R7, 26H
CJNE R7, #01H, LF972
SJMP LF99D
LF972:CJNE R7, #02H, LF977
SJMP LF992
LF977:CJNE R7, #03H, LF97C
SJMP LF994
LF97C:CJNE R7, #04H, LF981
SJMP LF99D
LF981:CJNE R7, #05H, LF986
SJMP LF98F
LF986:CJNE R7, #06H, LF98B
SJMP LF9C5
LF98B:MOV 28H, #0FFH
RET
LF98F:CLR A
MOVC A, @A+DPTR
RET
LF992:CLR A
MOVC A, @A+DPTR
;MOVX A, @DPTR ;!!!!!!
RET
LF994:;mov dph,P2
CLR A
MOVC A, @A+DPTR
;MOV R0, DPL
;MOVX A, @R0 ;!!!!!!
RET
LF998:MOV DPL, R1
DEC R1
MOV R7, #01H
LF99D:MOV A, DPL
LF99F:CJNE A, #70H, LF9A2
LF9A2:JC LF9AA
JB ACC.7, LF9B7
LF9A7:MOV R0, A
MOV A, @R0
RET
LF9AA:PUSH DPL
PUSH DPH
MOV DPTR, #7E11H
MOVC A, @A+DPTR
LF9B2:POP DPH
POP DPL
RET
LF9B7:CJNE R7, #01H, LF9BC
SJMP LF9A7
LF9BC:PUSH DPL
PUSH DPH
LCALLLF2B8
SJMP LF9B2
LF9C5:LCALLLF9D2
LCALLLF99F
INC R6
LF9CC:RRC A
DJNZ R6, LF9CC
CLR A
RLC A
RET
LF9D2:MOV A, DPL
MOV R6, A
ANL A, #07H
XCH A, R6
XRL A, R6
JB ACC.7, LF9E1
RR A
RR A
RR A
ADD A, #20H
LF9E1:RET
LF9E2:ADD A, DPL
MOV DPL, A
CLR A
ADDC A, DPH
MOV DPH, A
RET
LF9EC:INC DPL
DJNZ DPL, LF9F3
DEC DPH
LF9F3:DEC DPL
RET
LF9F6:MOV DPTR, #0023H ;?????????///
CLR A
MOVC A, @A+DPTR
XRL A, #02H
JZ LFA0A
MOV A, #02H
LCALLLF0B0
CLR A
MOVC A, @A+DPTR
XRL A, #02H
JNZ LFA3C
LFA0A:INC DPTR
CLR A
MOVC A, @A+DPTR
XRL A, #0FAH
JZ LFA22
CLR A
MOVC A, @A+DPTR
XRL A, #0FAH
JZ LFA22
MOV A, #0FAH
LCALLLF0B0
CLR A
MOVC A, @A+DPTR
XRL A, #0FAH
JNZ LFA3C
LFA22:INC DPTR
CLR A
MOVC A, @A+DPTR
XRL A, #99H
JZ LFA3A
CLR A
MOVC A, @A+DPTR
XRL A, #7CH
JZ LFA3A
MOV A, #99H
LCALLLF0B0
CLR A
MOVC A, @A+DPTR
XRL A, #99H
JNZ LFA3C
LFA3A:CLR C
RET
LFA3C:SETB C
RET </P><P>LFA3E:LCALLLF0A8
LCALLLF0A2
MOV A, SP
ADD A, #0FAH
XCH A, R0
MOV DPH, @R0
INC R0
MOV DPL, @R0
INC DPTR
INC DPTR
INC DPTR
MOV @R0, DPL
DEC R0
MOV @R0, DPH
XCH A, R0
POP PSW
POP DPH
POP DPL
POP ACC
LCALLLFA65
LJMP LF200
LFA65:RETI
LFA66:LCALLLF096
JNC LFA66
LCALLLF09F
LCALLLF0AB
MOV DPTR, #7E0AH
CLR A
MOVC A, @A+DPTR
ORL A, #80H
ORL A, IE
lcall writebyte
RET </P><P> PUSH ACC
PUSH DPL
PUSH DPH
PUSH PSW
MOV PSW, #00H
MOV DPTR, #7E07H
CLR A
MOVC A, @A+DPTR
JNZ LFAA4
POP PSW
POP DPH
POP DPL
POP ACC
LJMP 8023H
PUSH ACC
PUSH DPL
PUSH DPH
PUSH PSW
MOV PSW, #00H
LFAA4:LCALLLF093
JC LFAAC
LJMP LFABE
LFAAC:LCALLLF099
LCALLLF0A5
CJNE A, #11H, LFAB8
LJMP LFABE
LFAB8:CJNE A, #1BH, LFABE
LJMP LFA3E
LFABE:LCALLLF09F
POP PSW
POP DPH
POP DPL
POP ACC
RETI </P><P>LFACA:INC DPTR
LFACB:CLR A
MOVC A, @A+DPTR
MOV R0, A
INC DPTR
CLR A
MOVC A, @A+DPTR
MOV R1, A
INC DPTR
RET
LFAD4:XCH A, R0
XCH A, DPH
XCH A, R0
XCH A, R1
XCH A, DPL
XCH A, R1
RET
LFADD:CLR A
MOVC A, @A+DPTR
LFADF:MOV R3, A
LCALLLFAD4
CLR A
MOVC A, @A+DPTR
XCH A, R3
LCALLLFAF0
LCALLLFAD4
MOV A, R3
lcall writebyte
INC DPTR
RET
LFAF0:LCALLLF8F4
INC DPTR
RET
LFAF5:MOV 28H, A
MOV R0, DPL
MOV R1, DPH
MOV DPTR, #7E03H
MOV A, 27H
lcall writebyte
INC DPTR
MOV A, 26H
lcall writebyte
INC DPTR
MOV A, R1
lcall writebyte
INC DPTR
MOV A, R0
lcall writebyte
RET </P><P>LFB0C:MOV A, R2
MOV B, #06H
MUL AB
MOV DPTR, #7E7BH
LCALLLF9E2
CLR A
MOVC A, @A+DPTR
RET </P> <P>LF8B0:LCALLLF096
JNC LF8B0
LCALLLF09F
LCALLLF09C
ADD A, 25H
MOV 25H, A
RET</P><P>lf8c0: db 0f5h,017h,0f5h,05dh,0f5h,0b0h,0f6h,008h
db 0f7h,006h,0f7h,045h,0f7h,085h,0f8h,073h;data
;db 0f4h,0e9h,0f5h,02bh,0f5h,07eh,0f5h,0d6h
;db 0f6h,0d4h,0f7h,013h,0f7h,04dh,0f8h,03bh;data
;;;end
LF8D0:MOV R7, 26H
CJNE R7, #01H, LF8D7
SJMP LF91D
LF8D7:CJNE R7, #02H, LF8DC
SJMP LF912
LF8DC:CJNE R7, #03H, LF8E1
SJMP LF914
LF8E1:CJNE R7, #04H, LF8E6
SJMP LF91D
LF8E6:CJNE R7, #05H, LF8EB
SJMP LF8F4
LF8EB:CJNE R7, #06H, LF8F0
SJMP LF950
LF8F0:MOV 28H, #0FFH
RET
LF8F4:LCALLLF0B0
MOV R7, A
CLR A
MOVC A, @A+DPTR
CJNE A, 07H, LF8FE
RET
LF8FE:MOV A, 28H
JNZ LF911
MOV 28H, #03H
MOV R0, DPL
MOV R1, DPH
MOV DPTR, #7E05H
MOV A, R1
lcall writebyte
INC DPTR
MOV A, R0
lcall writebyte
LF911:RET
LF912:lcall writebyte
RET
LF914:;mov dph,P2
lcall writebyte
;MOV R0, DPL
;MOVX @R0, A ;!!!!!!!
RET
LF918:INC R1
MOV DPL, R1
MOV R7, #01H
LF91D:MOV R6, A
MOV A, DPL
LF920:CJNE A, #70H, LF923
LF923:JC LF92C
JB ACC.7, LF93D
LF928:MOV R0, A
MOV A, R6
MOV @R0, A
RET
LF92C:PUSH DPL
PUSH DPH
MOV DPTR, #7E11H
LCALLLF9E2
MOV A, R6
lcall writebyte
POP DPH
POP DPL
RET
LF93D:CJNE R7, #01H, LF942
SJMP LF928
LF942:PUSH DPL
PUSH DPH
MOV R0, A
MOV A, R6
LCALLLF2BF
POP DPH
POP DPL
RET
LF950:RRC A
MOV f0, C
LCALLLF9D2
PUSH ACC
LCALLLF99F
INC R6
MOV R7, 06H
LF95E:RRC A
DJNZ R7, LF95E
MOV C, F0
LF963:RLC A
DJNZ R6, LF963
MOV R6, A
POP ACC
SJMP LF920</P><P>LF96B:MOV R7, 26H
CJNE R7, #01H, LF972
SJMP LF99D
LF972:CJNE R7, #02H, LF977
SJMP LF992
LF977:CJNE R7, #03H, LF97C
SJMP LF994
LF97C:CJNE R7, #04H, LF981
SJMP LF99D
LF981:CJNE R7, #05H, LF986
SJMP LF98F
LF986:CJNE R7, #06H, LF98B
SJMP LF9C5
LF98B:MOV 28H, #0FFH
RET
LF98F:CLR A
MOVC A, @A+DPTR
RET
LF992:CLR A
MOVC A, @A+DPTR
;MOVX A, @DPTR ;!!!!!!
RET
LF994:;mov dph,P2
CLR A
MOVC A, @A+DPTR
;MOV R0, DPL
;MOVX A, @R0 ;!!!!!!
RET
LF998:MOV DPL, R1
DEC R1
MOV R7, #01H
LF99D:MOV A, DPL
LF99F:CJNE A, #70H, LF9A2
LF9A2:JC LF9AA
JB ACC.7, LF9B7
LF9A7:MOV R0, A
MOV A, @R0
RET
LF9AA:PUSH DPL
PUSH DPH
MOV DPTR, #7E11H
MOVC A, @A+DPTR
LF9B2:POP DPH
POP DPL
RET
LF9B7:CJNE R7, #01H, LF9BC
SJMP LF9A7
LF9BC:PUSH DPL
PUSH DPH
LCALLLF2B8
SJMP LF9B2
LF9C5:LCALLLF9D2
LCALLLF99F
INC R6
LF9CC:RRC A
DJNZ R6, LF9CC
CLR A
RLC A
RET
LF9D2:MOV A, DPL
MOV R6, A
ANL A, #07H
XCH A, R6
XRL A, R6
JB ACC.7, LF9E1
RR A
RR A
RR A
ADD A, #20H
LF9E1:RET
LF9E2:ADD A, DPL
MOV DPL, A
CLR A
ADDC A, DPH
MOV DPH, A
RET
LF9EC:INC DPL
DJNZ DPL, LF9F3
DEC DPH
LF9F3:DEC DPL
RET
LF9F6:MOV DPTR, #0023H ;?????????///
CLR A
MOVC A, @A+DPTR
XRL A, #02H
JZ LFA0A
MOV A, #02H
LCALLLF0B0
CLR A
MOVC A, @A+DPTR
XRL A, #02H
JNZ LFA3C
LFA0A:INC DPTR
CLR A
MOVC A, @A+DPTR
XRL A, #0FAH
JZ LFA22
CLR A
MOVC A, @A+DPTR
XRL A, #0FAH
JZ LFA22
MOV A, #0FAH
LCALLLF0B0
CLR A
MOVC A, @A+DPTR
XRL A, #0FAH
JNZ LFA3C
LFA22:INC DPTR
CLR A
MOVC A, @A+DPTR
XRL A, #99H
JZ LFA3A
CLR A
MOVC A, @A+DPTR
XRL A, #7CH
JZ LFA3A
MOV A, #99H
LCALLLF0B0
CLR A
MOVC A, @A+DPTR
XRL A, #99H
JNZ LFA3C
LFA3A:CLR C
RET
LFA3C:SETB C
RET </P><P>LFA3E:LCALLLF0A8
LCALLLF0A2
MOV A, SP
ADD A, #0FAH
XCH A, R0
MOV DPH, @R0
INC R0
MOV DPL, @R0
INC DPTR
INC DPTR
INC DPTR
MOV @R0, DPL
DEC R0
MOV @R0, DPH
XCH A, R0
POP PSW
POP DPH
POP DPL
POP ACC
LCALLLFA65
LJMP LF200
LFA65:RETI
LFA66:LCALLLF096
JNC LFA66
LCALLLF09F
LCALLLF0AB
MOV DPTR, #7E0AH
CLR A
MOVC A, @A+DPTR
ORL A, #80H
ORL A, IE
lcall writebyte
RET </P><P> PUSH ACC
PUSH DPL
PUSH DPH
PUSH PSW
MOV PSW, #00H
MOV DPTR, #7E07H
CLR A
MOVC A, @A+DPTR
JNZ LFAA4
POP PSW
POP DPH
POP DPL
POP ACC
LJMP 8023H
PUSH ACC
PUSH DPL
PUSH DPH
PUSH PSW
MOV PSW, #00H
LFAA4:LCALLLF093
JC LFAAC
LJMP LFABE
LFAAC:LCALLLF099
LCALLLF0A5
CJNE A, #11H, LFAB8
LJMP LFABE
LFAB8:CJNE A, #1BH, LFABE
LJMP LFA3E
LFABE:LCALLLF09F
POP PSW
POP DPH
POP DPL
POP ACC
RETI </P><P>LFACA:INC DPTR
LFACB:CLR A
MOVC A, @A+DPTR
MOV R0, A
INC DPTR
CLR A
MOVC A, @A+DPTR
MOV R1, A
INC DPTR
RET
LFAD4:XCH A, R0
XCH A, DPH
XCH A, R0
XCH A, R1
XCH A, DPL
XCH A, R1
RET
LFADD:CLR A
MOVC A, @A+DPTR
LFADF:MOV R3, A
LCALLLFAD4
CLR A
MOVC A, @A+DPTR
XCH A, R3
LCALLLFAF0
LCALLLFAD4
MOV A, R3
lcall writebyte
INC DPTR
RET
LFAF0:LCALLLF8F4
INC DPTR
RET
LFAF5:MOV 28H, A
MOV R0, DPL
MOV R1, DPH
MOV DPTR, #7E03H
MOV A, 27H
lcall writebyte
INC DPTR
MOV A, 26H
lcall writebyte
INC DPTR
MOV A, R1
lcall writebyte
INC DPTR
MOV A, R0
lcall writebyte
RET </P><P>LFB0C:MOV A, R2
MOV B, #06H
MUL AB
MOV DPTR, #7E7BH
LCALLLF9E2
CLR A
MOVC A, @A+DPTR
RET </P> <P>
LFB1A:MOV R2, #00H
LFB1C:INC R2
LCALLLFB0C
CJNE A, 00H, LFB25
CPL C
RET
LFB25:CJNE R2, #0AH, LFB1C
RET
LFB29:MOV R6, DPH
MOV R7, DPL
MOV R2, #0AH
LFB2F:LCALLLFB0C
JZ LFB4F
LCALLLFACA
CLR C
SUBB A, R7
MOV R3, A
MOV A, R0
SUBB A, R6
JNZ LFB40
SJMP LFB49
LFB40:CLR C
MOV A, R7
SUBB A, R1
MOV R3, A
MOV A, R6
SUBB A, R0
CLR C
JNZ LFB4F
LFB49:CJNE R3, #02H, LFB4C
LFB4C:JNC LFB4F
RET
LFB4F:DJNZ R2, LFB2F
RET
LFB52:LCALLLFB29
MOV A, #04H
JC LFAF5
MOV R0, #00H
LCALLLFB1A
MOV A, #05H
JNC LFAF5
DEC R2
MOV 27H, R2
LFB65:MOV A, #01H
LFB67:lcall writebyte
INC DPTR
MOV A, R6
lcall writebyte
INC DPTR
MOV A, R7
lcall writebyte
CLR A
LJMP LFAF5
LFB72:MOV R5, #01H
SJMP LFB7C
LFB76:MOV R5, #02H
SJMP LFB7C
LFB7A:MOV R5, #00H
LFB7C:MOV A, 27H
CJNE A, #80H, LFB91
MOV R2, #0AH
LFB83:LCALLLFB0C
JZ LFB8A
MOV A, R5
lcall writebyte
LFB8A:DJNZ R2, LFB83
RET
LFB8D:MOV A, R0
LJMP LFAF5
LFB91:MOV R0, #07H
CJNE A, #0AH, LFB96
LFB96:JNC LFB8D
MOV R2, A
INC R2
LCALLLFB0C
MOV R0, #06H
JZ LFB8D
MOV A, R5
lcall writebyte
CLR A
LJMP LFAF5
LFBA7:MOV A, 27H
MOV R0, #07H
CJNE A, #0AH, LFBAE
LFBAE:JNC LFB8D
MOV B, #06H
MUL AB
MOV R7, A
MOV DPTR, #7E81H
MOVC A, @A+DPTR
MOV 27H, A
INC R7
MOV A, R7
MOVC A, @A+DPTR
MOV R0, A
INC R7
MOV A, R7
MOVC A, @A+DPTR
MOV R1, A
INC R7
MOV A, R7
MOVC A, @A+DPTR
MOV 26H, A
MOV DPH, R0
MOV DPL, R1
CLR A
LJMP LFAF5
LFBD0:MOV DPTR, #7E0DH
LJMP LFACB
LFBD6:MOV A, R4
MOV DPTR, #LF342 ;??????
MOVC A, @A+DPTR
ANL A, #0FCH
MOV DPTR, #LFBE1 ;??????!!!!!
JMP @A+DPTR
Lfbe1:LJMP LFE89
NOP
LJMP LFC47
NOP
LJMP LFC41
NOP
LJMP LFC3C
NOP
LJMP LFC36
NOP
LJMP LFC24
NOP
LJMP LFC20
NOP
LJMP LFE73
NOP
LJMP LFE77
NOP
LJMP LF31B
NOP
MOV A, #0E0H
LCALLLF2B8
MOV R0, A
INC DPTR
INC DPTR
INC DPTR
CLR A
MOVC A, @A+DPTR
MOV R1, A
INC DPTR
CLR A
MOVC A, @A+DPTR
ADD A, R0
MOV 2CH, A
CLR A
ADDC A, R1
MOV 2BH, A
RET
LFC20:LCALLLFC24
RETI
LFC24:LCALLLF2B6
MOV R1, A
LCALLLF998
MOV 2BH, A
LCALLLF998
MOV 2CH, A
MOV A, R1
LJMP LF2BD
LFC36:JB 11H, LFC57
LCALLLF32C
LFC3C:MOV 2BH, R5
MOV 2CH, R6
RET
LFC41:JB 11H, LFC57
LCALLLF32C
LFC47:MOV A, R4
RR A
SWAP A
ANL A, #07H
XCH A, 2BH
ANL A, #0F8H
ORL A, 2BH
MOV 2BH, A
MOV 2CH, R5
RET
LFC57:MOV R6, 2BH
MOV R7, 2CH
MOV R2, #0BH
LCALLLFB0C
LCALLLFB65
MOV A, 24H
ANL A, #04H
JZ LFC6C
LJMP LFC74
LFC6C:MOV R2, #0BH
LCALLLF262
LJMP LFEB1
LFC74:LCALLLF4CC
SETB 12H
CLR 11H
SJMP LFC80
LFC7D:LCALLLFDA2
LFC80:LCALLLFC96
MOV R2, #0AH
LCALLLFD86
JNC LFC7D
RET
LFC8B:SETB 11H
LFC8D:MOV A, 24H
ANL A, #04H
JZ LFC96
LCALLLFDA2
LFC96:LCALLLFBD0
MOV 2BH, R0
MOV 2CH, R1
LCALLLFAD4
CLR A
MOVC A, @A+DPTR
MOV R4, A
INC DPTR
CLR A
MOVC A, @A+DPTR
MOV R5, A
INC DPTR
CLR A
MOVC A, @A+DPTR
MOV R6, A
MOV A, R4
MOV DPTR, #LF342 ;?????????!!!!!
MOVC A, @A+DPTR
ANL A, #03H
MOV R2, A
ADD A, 2CH
MOV 2CH, A
CLR A
ADDC A, 2BH
MOV 2BH, A
LCALLLFBD6
MOV DPL, 2CH
MOV DPH, 2BH
LCALLLF251
RET
LFCC9:MOV A, 26H
JZ LFCD8
PUSH 00H
PUSH 01H
LCALLLF251
POP 01H
POP 00H
LFCD8:LCALLLFAD4
MOV R5, #00H
MOV A, R2
JZ LFCE5
LCALLLFB29
MOV R5, #01H
LFCE5:MOV R2, #0BH
LCALLLFB0C
MOV A, R5
LCALLLFB67
MOV A, 24H
ANL A, #04H
JZ LFCF7
LJMP LFD0F
LFCF7:LCALLLF260
MOV A, 28H
JZ LFD0B
XRL A, #03H
JNZ LFD0B
LCALLLF2A0
LCALLLF4CC
SETB 12H
RET
LFD0B:LCALLLFEB1
RET
LFD0F:LCALLLF4CC
ANL 3AH, #00H
MOV DPTR, #7E07H
CLR A
MOVC A, @A+DPTR
JNZ LFD25
LFD1C:LCALLLFC8D
LCALLLFD84
JNC LFD1C
RET
LFD25:LCALLLF093
JNC LFD7B
LCALLLF890
MOV R0, A
MOV A, 3AH
INC 3AH
JZ LFD3F
DEC A
JZ LFD4B
DEC A
JZ LFD52
DEC A
JZ LFD59
SJMP LFD78
LFD3F:CJNE R0, #1BH, LFD43
RET
LFD43:CJNE R0, #04H, LFD78
LCALLLF884
SJMP LFD7B
LFD4B:MOV 26H, R0
LCALLLF884
SJMP LFD7B
LFD52:MOV 3BH, R0
LCALLLF884
SJMP LFD7B
LFD59:MOV DPL, R0
LCALLLF884
MOV DPH, 3BH
MOV A, 26H
JNZ LFD72
MOV DPTR, #7E0DH
CLR A
MOVC A, @A+DPTR
LCALLLF884
INC DPTR
CLR A
MOVC A, @A+DPTR
SJMP LFD75
LFD72:LCALLLF96B
LFD75:LCALLLF884
LFD78:ANL 3AH, #00H
LFD7B:LCALLLFC8D
LCALLLFD84
JNC LFD25
RET
LFD84:MOV R2, #00H
LFD86:LCALLLFBD0
LFD89:INC R2
CJNE R2, #0CH, LFD8E
RET
LFD8E:LCALLLFB0C
CJNE A, #01H, LFD89
INC DPTR
CLR A
MOVC A, @A+DPTR
CJNE A, 00H, LFD89
INC DPTR
CLR A
MOVC A, @A+DPTR
CJNE A, 01H, LFD89
CPL C
RET
LFDA2:ret
LFE64:MOV A, #12H
LCALLLFAF0
MOV A, #0F1H
LCALLLFAF0
MOV A, #00H
LJMP LFAF0
LFE73:MOV 06H, R5
MOV R5, #03H
LFE77:MOV R7, #00H
MOV A, R6
MOV R6, #03H
JNB ACC.7, LFE80
DEC R7
LFE80:ADD A, 2CH
MOV 2EH, A
MOV A, R7
ADDC A, 2BH
MOV 2DH, A
LFE89:MOV DPTR, #7EC3H
LCALLLF251
LCALLLFAD4
MOV R0, #04H
LFE94:MOV A, @R0
LCALLLFAF0
INC R0
DJNZ R2, LFE94
LCALLLFE64
MOV 2FH, DPL
LCALLLFE64
LCALLLFED9
CJNE A, 2FH, LFEB0
MOV 2CH, 2EH
MOV 2BH, 2DH
LFEB0:RET
LFEB1:MOV DPTR, #7E07H
CLR A
MOVC A, @A+DPTR
JZ LFED4
LCALLLF9F6
JNC LFECA
LCALLLF2A0
MOV A, #64H
MOV 28H, A
LCALLLF4CC
SETB 12H
RET
LFECA:LCALLLF4CC
SETB 12H
LCALLLFA66
SJMP LFED9
LFED4:LCALLLF4CC
SETB 12H
LFED9:LCALLLF09F
LCALLLF0AE
MOV DPTR, #7E80H
MOV R0, #6FH
LFEE4:CLR A
MOVC A, @A+DPTR
XCH A, @R0
lcall writebyte
INC DPL
DJNZ DPL, LFEEF
DEC DPH
LFEEF:DEC DPL
DJNZ R0, LFEE4
CLR A
MOVC A, @A+DPTR
MOV R0, A
MOV DPTR, #7E10H
CLR A
MOVC A, @A+DPTR
MOV B, A
MOV DPTR, #7E0FH
CLR A
MOVC A, @A+DPTR
XCH A, SP
lcall writebyte
MOV DPTR, #7E0EH
CLR A
MOVC A, @A+DPTR
PUSH ACC
MOV DPTR, #7E0DH
CLR A
MOVC A, @A+DPTR
PUSH ACC
MOV DPTR, #7E0CH
CLR A
MOVC A, @A+DPTR
PUSH ACC
MOV DPTR, #7E0BH
CLR A
MOVC A, @A+DPTR
PUSH ACC
MOV DPTR, #7E0AH
CLR A
MOVC A, @A+DPTR
MOV IE, A
MOV DPTR, #7E09H
CLR A
MOVC A, @A+DPTR
MOV DPTR, #7E08H
MOV PSW, A
CLR A
MOVC A, @A+DPTR
POP DPH
POP DPL
RET
</P><P>LF026:CLR A ;//main
MOV 0CBH, A
MOV 0CAH, A
MOV 0CCH, A
MOV 0CDH, A
MOV 0C9H, A
MOV 0c8h, A
LF033:JB P3.0, LF033
LF036:JNB P3.0, LF036
SETB 0c8h.2
LF03B:JNB P3.0, LF041
JNB 0c8h.7, LF03B
LF041:JNB P3.0, LF041
LF044:JNB P3.0, LF04A
JNB 0c8h.7, LF044
LF04A:JNB P3.0, LF04A
CLR 0c8h.2
JB 0c8h.7, LF026
MOV R7, 0CCH
MOV R6, 0CDH
MOV A, R6
CLR C
RRC A
MOV R4, A
MOV A, R7
RRC A
ADD A, R7
MOV R7, A
MOV A, R4
ADDC A, R6
MOV R6, A
MOV A, R7
ADD A, #10H
MOV R7, A
CLR A
ADDC A, R6
MOV R6, A
MOV A, R7
MOV R0, #05H
LF06B:XCH A, R6
CLR C
RRC A
XCH A, R6
RRC A
DJNZ R0, LF06B
MOV R7, A
CLR C
CLR A
SUBB A, R7
MOV 0CAH, A
MOV 0CCH, A
CLR A
SUBB A, R6
MOV 0CBH, A
MOV 0CDH, A
MOV 0c8h, #34H
MOV SCON, #5AH
LF086:clr ri; SCON.RI
LF088:JNB ri,LF088
MOV A, SBUF
CJNE A, #11H, LF086
LJMP LF446 ;start</P><P>LF093:MOV C, ri;SCON.RI
RET
LF096:MOV C, ti;SCON.TI
RET
LF099:MOV A, SBUF
RET
LF09C:MOV SBUF, A
RET
LF09F:CLR ti;SCON.TI
RET
LF0A2:SETB ti;SCON.TI
RET
LF0A5:CLR ri;SCON.RI
RET
LF0A8:CLR ES
RET
LF0AB:SETB ES
RET
LF0AE:RET
LF0AF:RET
LF0B0:lcall writebyte
RET</P><P>clearuser:mov r2,#0h
clear_0:mov sfal,#0 ;0000-7d00h
mov sfah,r2
mov sfcm,#0bh
clear_1:mov a,sfst
jb acc.2,clear_1
inc r2
cjne r2,#7eh,clear_0
mov r2,#0h
clear_2:mov sfal,#80h
mov sfah,r2
mov sfcm,#0bh
clear_3:mov a,sfst
jb acc.2,clear_3
inc r2
cjne r2,#7eh,clear_2
ret</P><P>
END</P><P>
</P>
页:
[1]