首页 > 文摘中心  

SST89c58制作的51在线下载器源程序

发布日期:[2006/11/22]    共阅[3734]次
    sst89c58下载器,使用keilc51的debug调试器下载。
;将本程序编译后写入sst89c58,并编程为remap 4kbytes。该芯片即有了keil环境下载功能。
;当p1.0拉低时,启动时进入下载程序,进入下载程序后将会自动删除block0。p1.0高电平时进入用户程序。
;进入下载程序后,可以通过串口和keil的仿真环境连通,波特率自动调节。
;选择load HEX文件,即可将程序下载到sst89c58的低端32keeprom中。除了7e00-7fffh被占用了。
主页:http://www.qd-dj.cn
        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
        LCALL  LF0AF
        LCALL  LF2A0
        LCALL  LFBD0
        LCALL  LFAD4
        LCALL  LF9EC
        LCALL  LF9EC
        LCALL  LF9EC
LF251:  LCALL  LFAD4
        MOV    DPTR, #7E0DH
        MOV    A, R0
        lcall writebyte
        INC    DPTR
        MOV    A, R1
        lcall writebyte
        LCALL  LF0A2
        RET    
LF260:  MOV    R2, #01H
LF262:  LCALL  LFBD0
        MOV    R6, 01H
        MOV    R5, 00H
LF269:  LCALL  LFB0C
        CJNE   A, #01H, LF29B
        PUSH   DPH
        PUSH   DPL
        LCALL  LFACA
        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
        LCALL  LFADF
        MOV    A, #0F1H
        LCALL  LFADF
        MOV    A, #03H
LF296:  POP    DPL
        POP    DPH
        lcall writebyte
LF29B:  INC    R2
        CJNE   R2, #0CH, LF269
        RET    
LF2A0:  MOV    R2, #0BH
LF2A2:  LCALL  LFB0C
        CJNE   A, #03H, LF2B4
        MOV    A, #01H
        lcall writebyte
        LCALL  LFACA
        LCALL  LFADD
        LCALL  LFADD
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
        LCALL  LF8F4
        MOV    R1, DPL
        MOV    A, DPH
        XCH    A, R0
        INC    DPTR
        LCALL  LFAF0
        MOV    A, #22H
        LCALL  LFAF0
        MOV    DPL, R1
        MOV    DPH, R0
        CLR    A
        POP    00H
        JMP    @A+DPTR
LF31B:  MOV    A, #0E0H
        LCALL  LF2B8
        MOV    DPL, 2CH    ;///????????
        MOV    DPH, 2BH
        MOVC   A, @A+DPTR
        MOV    R0, #0E0H
        LJMP   LF2BF
LF32C:  LCALL  LF2B6
        PUSH   06H
        MOV    R1, A
        MOV    A, 2CH
        LCALL  LF918
        MOV    A, 2BH
        LCALL  LF918
        MOV    A, R1
        POP    06H
        LJMP   LF2BD
Lf342: ;f342h  data 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
        LCALL  LF4C3
        MOV    R0, #33H
        LCALL  LF4C3
        MOV    R0, #0CCH
        LCALL  LF4C3
        MOV    A, R1
        JZ     LF48D
        MOV    R2, #0BH
        MOV    R5, #00H
        LCALL  LFB83
        CLR    A
        MOV    30H, A
        MOV    31H, A
        MOV    DPTR, #7E07H
        lcall writebyte
LF48D:  LCALL  LF2A0
LF490:  LCALL  LF890
        CJNE   A, #11H, LF4A0
        MOV    A, 23H
        LCALL  LF884
        CPL    A
        MOV    23H, A
        SJMP   LF490
LF4A0:  CJNE   A, #01H, LF4AA
        MOV    A, 24H
        LCALL  LF884
        SJMP   LF490
LF4AA:  LCALL  LF4AF
        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
        LCALL  LF884
        MOV    A, 28H
        LCALL  LF884
        MOV    DPTR, #7E03H
        MOV    R0, #04H
LF4DB:  CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF884
        INC    DPTR
        DJNZ   R0, LF4DB
        MOV    A, #04H
        LCALL  LF884
        RET    
        MOV    28H, #00H
        LCALL  LF89C
        MOV    26H, A
        JZ     LF51A
        LCALL  LF89C
        MOV    DPH, A
        LCALL  LF89C
        MOV    DPL, A
        LCALL  LF89C
        MOV    27H, A
LF502:  LCALL  LF89C
        LCALL  LF8D0
        INC    DPTR
        DJNZ   27H, LF502
LF50C:  LCALL  LF89C
        MOV    A, 25H
        JZ     LF516
        MOV    28H, #02H
LF516:  LCALL  LF4CC
        RET    
LF51A:  LCALL  LF89C
        MOV    DPTR, #7E0DH
        lcall writebyte
        INC    DPTR
        LCALL  LF89C
        lcall writebyte
        LCALL  LF89C
        SJMP   LF50C
        MOV    28H, #00H
        LCALL  LF89C
        MOV    26H, A
        LCALL  LF89C
        MOV    DPH, A
        LCALL  LF89C
        MOV    DPL, A
        LCALL  LF89C
        MOV    27H, A
        LCALL  LF89C
        MOV    A, 25H
        JZ     LF550
        MOV    28H, #02H
LF54C:  LCALL  LF4CC
        RET    
LF550:  MOV    25H, #00H
        MOV    A, #02H
        LCALL  LF8B0
        MOV    A, 26H
        JZ     LF56E
LF55C:  LCALL  LF96B
        LCALL  LF8B0
        INC    DPTR
        DJNZ   27H, LF55C
LF566:  CLR    A
        CLR    C
        SUBB   A, 25H
        LCALL  LF8B0
        RET    
LF56E:  MOV    DPTR, #7E0DH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPTR
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        SJMP   LF566
        MOV    28H, #00H
        LCALL  LF89C
        MOV    29H, A
        LCALL  LF89C
        MOV    27H, A
        LCALL  LF89C
        MOV    26H, A
        LCALL  LF89C
        MOV    DPH, A
        LCALL  LF89C
        MOV    DPL, A
        LCALL  LF89C
        MOV    A, 25H
        JZ     LF5A8
        MOV    28H, #02H
        LCALL  LF4CC
        RET    
LF5A8:  CLR    A
        CJNE   A, 29H, LF5B2
        LCALL  LFB52
        LJMP   LF4CC
LF5B2:  INC    A
        CJNE   A, 29H, LF5BC
        LCALL  LFB76
        LJMP   LF4CC
LF5BC:  INC    A
        CJNE   A, 29H, LF5C6
        LCALL  LFB72
        LJMP   LF4CC
LF5C6:  INC    A
        CJNE   A, 29H, LF5D0
        LCALL  LFB7A
        LJMP   LF4CC
LF5D0:  LCALL  LFBA7
        LJMP   LF4CC
        MOV    28H, #00H
        LCALL  LF89C
        MOV    29H, A
        LCALL  LF89C
        MOV    27H, A
        LCALL  LF89C
        MOV    26H, A
        LCALL  LF89C
        MOV    DPH, A
        LCALL  LF89C
        MOV    DPL, A
        LCALL  LF89C
        MOV    R2, A
        LCALL  LF89C
        MOV    R0, A
        LCALL  LF89C
        MOV    R1, A
        LCALL  LF89C
        MOV    A, 25H
        JZ     LF60C
        MOV    28H, #02H
        LCALL  LF4CC
        RET    
LF60C:  CLR    A
        CJNE   A, 29H, LF61C
        LCALL  LFCC9
        LCALL  LF093
        JNC    LF61B
        LCALL  LF890
LF61B:  RET    
LF61C:  INC    A
        CJNE   A, 29H, LF623
        LJMP   LF643
LF623:  INC    A
        CJNE   A, 29H, LF62F
        CLR    11H
        LCALL  LFC8D
        LJMP   LF643
LF62F:  CLR    12H
        LCALL  LFC8B
        JB     12H, LF642
        LCALL  LF4CC
        LCALL  LF093
        JNC    LF642
        LCALL  LF890
LF642:  RET    
LF643:  MOV    25H, #00H
        MOV    A, #02H
        LCALL  LF8B0
        MOV    26H, #04H
        MOV    DPH, #00H
        MOV    DPL, #0E0H
        LCALL  LF96B
        LCALL  LF8B0
        MOV    DPL, #0F0H
        LCALL  LF96B
        LCALL  LF8B0
        MOV    DPL, #0D0H
        MOV    2AH, #08H
        LCALL  LF96B
        ANL    A, #18H
        MOV    DPL, A
LF670:  LCALL  LF96B
        LCALL  LF8B0
        INC    DPTR
        DJNZ   2AH, LF670
        MOV    DPL, #83H
        LCALL  LF96B
        LCALL  LF8B0
        MOV    DPL, #82H
        LCALL  LF96B
        LCALL  LF8B0
        MOV    DPTR, #7E0DH
        CLR    A
LF690:  MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPTR
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        MOV    DPL, #0D0H
        LCALL  LF96B
        LCALL  LF8B0
        CLR    A
        LCALL  LF8B0
        CLR    A
        LCALL  LF8B0
        CLR    A
        LCALL  LF8B0
        CLR    A
        LCALL  LF8B0
        MOV    DPL, #81H
        LCALL  LF96B
        MOV    DPL, A
        LCALL  LF8B0
        MOV    26H, #01H
LF6C1:  LCALL  LF96B
        LCALL  LF8B0
        DEC    DPL
        DJNZ   27H, LF6C1
        CLR    A
        CLR    C
        SUBB   A, 25H
        LCALL  LF8B0
        RET    
        MOV    28H, #00H
        LCALL  LF89C
        MOV    26H, A
        LCALL  LF89C
        MOV    DPH, A
        LCALL  LF89C
        MOV    DPL, A
        LCALL  LF89C
        INC    A
        MOV    29H, A
        LCALL  LF89C
        INC    A
        MOV    27H, A
        LCALL  LF89C
        MOV    2AH, A
        SJMP   LF6FF
LF6F9:  MOV    A, 2AH
        LCALL  LF8D0
        INC    DPTR
LF6FF:  DJNZ   27H, LF6F9
        DJNZ   29H, LF6F9
        LCALL  LF89C
        MOV    A, 25H
        JZ     LF70F
        MOV    28H, #02H
LF70F:  LCALL  LF4CC
        RET    
        MOV    28H, #00H
        LCALL  LF89C
        MOV    A, 25H
        JZ     LF724
        MOV    28H, #02H
        LCALL  LF4CC
        RET    
LF724:  CLR    11H
        LCALL  LFC8D
        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
        LCALL  LF96B
        MOV    DPTR, #7E05H
        lcall writebyte
        LCALL  LF4CC
        RET    
        MOV    28H, #00H
        LCALL  LF89C
        MOV    29H, A
        LCALL  LF89C
        MOV    27H, A
        LCALL  LF89C
        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
        LCALL  LF8B0
        MOV    DPH, #6AH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        INC    DPH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF8B0
        CLR    A
        CLR    C
        SUBB   A, 25H
        LCALL  LF8B0
        RET    
        MOV    28H, #00H
        LCALL  LF89C
        MOV    29H, A
        LCALL  LF89C
        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:  LCALL  LF096
        JNC    LF884
        LCALL  LF09F
        LCALL  LF09C
        RET    
LF890:  LCALL  LF093
        JNC    LF890
        LCALL  LF099
        LCALL  LF0A5
        RET    
LF89C:  LCALL  LF093
        JNC    LF89C
        LCALL  LF099
        LCALL  LF0A5
        PUSH   ACC
        ADD    A, 25H
        MOV    25H, A
        POP    ACC
        RET    
LF8B0:  LCALL  LF096
        JNC    LF8B0
        LCALL  LF09F
        LCALL  LF09C
        ADD    A, 25H
        MOV    25H, A
        RET  

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:  LCALL  LF0B0
        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
        LCALL  LF9E2
        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
        LCALL  LF2BF
        POP    DPH
        POP    DPL
        RET    
LF950:  RRC    A
        MOV    f0, C
        LCALL  LF9D2
        PUSH   ACC
        LCALL  LF99F
        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

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
        LCALL  LF2B8
        SJMP   LF9B2
LF9C5:  LCALL  LF9D2
        LCALL  LF99F
        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
        LCALL  LF0B0
        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
        LCALL  LF0B0
        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
        LCALL  LF0B0
        CLR    A
        MOVC   A, @A+DPTR
        XRL    A, #99H
        JNZ    LFA3C
LFA3A:  CLR    C
        RET    
LFA3C:  SETB   C
        RET   

LFA3E:  LCALL  LF0A8
        LCALL  LF0A2
        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
        LCALL  LFA65
        LJMP   LF200
LFA65:  RETI
  
LFA66:  LCALL  LF096
        JNC    LFA66
        LCALL  LF09F
        LCALL  LF0AB
        MOV    DPTR, #7E0AH
        CLR    A
        MOVC   A, @A+DPTR
        ORL    A, #80H
        ORL    A, IE
        lcall writebyte
        RET    

        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:  LCALL  LF093
        JC     LFAAC
        LJMP   LFABE
LFAAC:  LCALL  LF099
        LCALL  LF0A5
        CJNE   A, #11H, LFAB8
        LJMP   LFABE
LFAB8:  CJNE   A, #1BH, LFABE
        LJMP   LFA3E
LFABE:  LCALL  LF09F
        POP    PSW
        POP    DPH
        POP    DPL
        POP    ACC
        RETI   

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
        LCALL  LFAD4
        CLR    A
        MOVC   A, @A+DPTR
        XCH    A, R3
        LCALL  LFAF0
        LCALL  LFAD4
        MOV    A, R3
        lcall writebyte
        INC    DPTR
        RET    
LFAF0:  LCALL  LF8F4
        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    
LFB0C:  MOV    A, R2
        MOV    B, #06H
        MUL    AB
        MOV    DPTR, #7E7BH
        LCALL  LF9E2
        CLR    A
        MOVC   A, @A+DPTR
        RET    
LFB1A:  MOV    R2, #00H
LFB1C:  INC    R2
        LCALL  LFB0C
        CJNE   A, 00H, LFB25
        CPL    C
        RET    
LFB25:  CJNE   R2, #0AH, LFB1C
        RET    
LFB29:  MOV    R6, DPH
        MOV    R7, DPL
        MOV    R2, #0AH
LFB2F:  LCALL  LFB0C
        JZ     LFB4F
        LCALL  LFACA
        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:  LCALL  LFB29
        MOV    A, #04H
        JC     LFAF5
        MOV    R0, #00H
        LCALL  LFB1A
        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:  LCALL  LFB0C
        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
        LCALL  LFB0C
        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
        LCALL  LF2B8
        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:  LCALL  LFC24
        RETI   
LFC24:  LCALL  LF2B6
        MOV    R1, A
        LCALL  LF998
        MOV    2BH, A
        LCALL  LF998
        MOV    2CH, A
        MOV    A, R1
        LJMP   LF2BD
LFC36:  JB     11H, LFC57
        LCALL  LF32C
LFC3C:  MOV    2BH, R5
        MOV    2CH, R6
        RET    
LFC41:  JB     11H, LFC57
        LCALL  LF32C
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
        LCALL  LFB0C
        LCALL  LFB65
        MOV    A, 24H
        ANL    A, #04H
        JZ     LFC6C
        LJMP   LFC74
LFC6C:  MOV    R2, #0BH
        LCALL  LF262
        LJMP   LFEB1
LFC74:  LCALL  LF4CC
        SETB   12H
        CLR    11H
        SJMP   LFC80
LFC7D:  LCALL  LFDA2
LFC80:  LCALL  LFC96
        MOV    R2, #0AH
        LCALL  LFD86
        JNC    LFC7D
        RET    
LFC8B:  SETB   11H
LFC8D:  MOV    A, 24H
        ANL    A, #04H
        JZ     LFC96
        LCALL  LFDA2
LFC96:  LCALL  LFBD0
        MOV    2BH, R0
        MOV    2CH, R1
        LCALL  LFAD4
        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
        LCALL  LFBD6
        MOV    DPL, 2CH
        MOV    DPH, 2BH
        LCALL  LF251
        RET    
LFCC9:  MOV    A, 26H
        JZ     LFCD8
        PUSH   00H
        PUSH   01H
        LCALL  LF251
        POP    01H
        POP    00H
LFCD8:  LCALL  LFAD4
        MOV    R5, #00H
        MOV    A, R2
        JZ     LFCE5
        LCALL  LFB29
        MOV    R5, #01H
LFCE5:  MOV    R2, #0BH
        LCALL  LFB0C
        MOV    A, R5
        LCALL  LFB67
        MOV    A, 24H
        ANL    A, #04H
        JZ     LFCF7
        LJMP   LFD0F
LFCF7:  LCALL  LF260
        MOV    A, 28H
        JZ     LFD0B
        XRL    A, #03H
        JNZ    LFD0B
        LCALL  LF2A0
        LCALL  LF4CC
        SETB   12H
        RET    
LFD0B:  LCALL  LFEB1
        RET    
LFD0F:  LCALL  LF4CC
        ANL    3AH, #00H
        MOV    DPTR, #7E07H
        CLR    A
        MOVC   A, @A+DPTR
        JNZ    LFD25
LFD1C:  LCALL  LFC8D
        LCALL  LFD84
        JNC    LFD1C
        RET    
LFD25:  LCALL  LF093
        JNC    LFD7B
        LCALL  LF890
        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
        LCALL  LF884
        SJMP   LFD7B
LFD4B:  MOV    26H, R0
        LCALL  LF884
        SJMP   LFD7B
LFD52:  MOV    3BH, R0
        LCALL  LF884
        SJMP   LFD7B
LFD59:  MOV    DPL, R0
        LCALL  LF884
        MOV    DPH, 3BH
        MOV    A, 26H
        JNZ    LFD72
        MOV    DPTR, #7E0DH
        CLR    A
        MOVC   A, @A+DPTR
        LCALL  LF884
        INC    DPTR
        CLR    A
        MOVC   A, @A+DPTR
        SJMP   LFD75
LFD72:  LCALL  LF96B
LFD75:  LCALL  LF884
LFD78:  ANL    3AH, #00H
LFD7B:  LCALL  LFC8D
        LCALL  LFD84
        JNC    LFD25
        RET    
LFD84:  MOV    R2, #00H
LFD86:  LCALL  LFBD0
LFD89:  INC    R2
        CJNE   R2, #0CH, LFD8E
        RET    
LFD8E:  LCALL  LFB0C
        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
        LCALL  LFAF0
        MOV    A, #0F1H
        LCALL  LFAF0
        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
        LCALL  LF251
        LCALL  LFAD4
        MOV    R0, #04H
LFE94:  MOV    A, @R0
        LCALL  LFAF0
        INC    R0
        DJNZ   R2, LFE94
        LCALL  LFE64
        MOV    2FH, DPL
        LCALL  LFE64
        LCALL  LFED9
        CJNE   A, 2FH, LFEB0
        MOV    2CH, 2EH
        MOV    2BH, 2DH
LFEB0:  RET    
LFEB1:  MOV    DPTR, #7E07H
        CLR    A
        MOVC   A, @A+DPTR
        JZ     LFED4
        LCALL  LF9F6
        JNC    LFECA
        LCALL  LF2A0
        MOV    A, #64H
        MOV    28H, A
        LCALL  LF4CC
        SETB   12H
        RET    
LFECA:  LCALL  LF4CC
        SETB   12H
        LCALL  LFA66
        SJMP   LFED9
LFED4:  LCALL  LF4CC
        SETB   12H
LFED9:  LCALL  LF09F
        LCALL  LF0AE
        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    
   

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

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  

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


        END
打印此页】 【顶部】【关闭
   
地址:江苏省启东市南苑工业园区永顺路1号  邮编:226200
电话:0513-83100201,83100203  传真:0513-83100205 E-mail: qd_ota@126.com 苏ICP备15001076号-1
copyright © 启东市东疆计算机有限公司 All Right Reserved.