home *** CD-ROM | disk | FTP | other *** search
- ;
- ; THIS IS THE FILE OF NBNF.ASM
- ;
- ;
- ;
- NBINTOF:MOV A,R7 ;THIS IS SUBROUTING 5-1
- MOV B,#08H
- MUL AB
- DEC A
- INC R0
- MOV @R0,A
- LCALL NBNORM
- RET
- ;
- ;
- ;
- ;
- NBNORM: DEC R0 ;THIS IS SUBROUTING 5-2
- MOV A,@R0
- JNB ACC.7,NOR0
- JB ACC.6,NOR1
- NOR2: INC R0
- RET
- NOR0: JB ACC.6,NOR2
- INC R0
- LCALL NORA
- LCALL NORB
- NOR4: JB ACC.6,NOR2
- INC R0
- LCALL NORB
- DJNZ R2,NOR4
- LJMP NOR2
- NOR1: LCALL NORA
- NOR6: INC R0
- LCALL NORB
- DJNZ R2,NOR5
- LJMP NOR2
- NOR5: JB ACC.6,NOR6
- LJMP NOR2
- NORA: MOV A,R7
- MOV B,#08H
- MUL AB
- DEC A
- MOV R2,A
- RET
- NORB: MOV A,R7
- MOV R6,A
- MOV A,R0
- CLR C
- SUBB A,R7
- MOV R0,A
- CLR C
- NORB0: MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R6,NORB0
- DEC @R0
- DEC R0
- MOV A,@R0
- RET
- ;
- ; ;
- NBNET: MOV A,R7 ;THIS IS SUBROUTING 5-3 SUBCG
- MOV R6,A
- MOV A,R0
- CLR C
- SUBB A,R7
- MOV R0,A
- SETB C
- NNT1: MOV A,@R0
- CPL A
- ADDC A,#00H
- MOV @R0,A
- INC R0
- DJNZ R6,NNT1
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- NBFSDT: MOV R2,#00H ;THIS IS SUBROUTING 5-4 SUBEG
- NST1: INC @R0
- DEC R0
- MOV A,R7
- MOV R6,A
- MOV A,@R0
- MOV C,ACC.7
- NST0: RRC A
- MOV @R0,A
- DEC R0
- MOV A,@R0
- DJNZ R6,NST0
- MOV A,R2
- RRC A
- MOV R2,A
- MOV A,R0
- ADD A,R7
- MOV R0,A
- INC R0
- DJNZ R3,NST1
- MOV A,R2
- JNB ACC.7,NSTR
- CLR C
- MOV A,R0
- SUBB A,R7
- MOV R0,A
- MOV A,R7
- MOV R6,A
- SETB C
- NST5: MOV A,@R0
- ADDC A, #00H
- MOV @R0,A
- INC R0
- DJNZ R6,NST5
- NSTR: RET
- ;
- ;
- ;
- NBFADD: MOV A,@R1 ;THIS IS SUBROUTING 5-5 SUBFG
- CPL A
- INC A
- MOV R3,A
- MOV A,@R0
- ADD A,R3
- MOV R3,A
- JNB ACC.7,NAD2
- CPL A
- INC A
- MOV R3,A
- LCALL NBFSDT
- LJMP NAD1
- NAD2: JZ NAD1
- MOV A,R0
- XCH A,R1
- XCH A,R0
- LCALL NBFSDT
- MOV A,R0
- XCH A,R1
- XCH A,R0
- NAD1: MOV A,R7
- XCH A,R6
- CLR C
- MOV A,R0
- SUBB A,R7
- MOV R0,A
- MOV A,R1
- SUBB A,R7
- MOV R1,A
- CLR C
- NAD8: MOV A,@R0
- ADDC A,@R1
- MOV @R0,A
- INC R0
- INC R1
- DJNZ R6,NAD8
- JNB PSW.2,NAD3
- INC @R0
- MOV A,R7
- XCH A,R6
- DEC R0
- MOV A,@R0
- MOV C,ACC.7
- CPL C
- NAD4: RRC A
- MOV @R0,A
- DEC R0
- MOV A,@R0
- DJNZ R6,NAD4
- MOV A,R7
- ADD A,R0
- MOV R0,A
- INC R0
- NAD3: LCALL NBNORM
- RET
- ;
- ;
- ;
- NBFSUB: LCALL NBNET ;THIS IS SUBROUTING 5-6 SUBGG
- LJMP NBFADD
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- NBFMUL: MOV A,@R0 ;THIS IS SUBROUTING 5-7; SUBBH
- ADD A,@R1
- INC A
- MOV @R0,A
- CLR PSW.5
- DEC R0
- MOV A,@R0
- JNB ACC.7,FML0
- CPL PSW.5
- INC R0
- LCALL NBNET
- LJMP FML1
- FML0: INC R0
- FML1: MOV A,R0
- XCH A,R1
- XCH A,R0
- DEC R0
- MOV A,@R0
- JNB ACC.7,FML2
- CPL PSW.5
- INC R0
- LCALL NBNET
- LJMP FML3
- FML2: INC R0
- FML3: MOV A,R0
- CLR C
- SUBB A,R7
- MOV R3,A
- MOV A,R1
- SUBB A,R7
- MOV R2,A
- SUBB A,R7
- MOV R5,A
- MOV R0,A
- MOV A,R7
- MOV R6,A
- FML4: MOV @R0,#00H
- INC R0
- DJNZ R6,FML4
- MOV A,R7
- MOV B,#08H
- MUL AB
- INC A
- MOV R4,A
- FML8: CLR C
- MOV A,R5
- MOV R0,A
- MOV A,R7
- RL A
- MOV R6,A
- FML5: MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R6,FML5
- JNC FMLL
- MOV A,R5
- MOV R0,A
- MOV A,R3
- MOV R1,A
- MOV A,R7
- MOV R6,A
- CLR C
- FML6: MOV A ,@R0
- ADDC A,@R1
- MOV @R0,A
- INC R0
- INC R1
- DJNZ R6,FML6
- MOV A,R7
- MOV R6,A
- FML7: MOV A,@R0
- ADDC A,#00H
- MOV @R0,A
- INC R0
- DJNZ R6,FML7
- FMLL: DJNZ R4,FML8
- MOV A,R7
- RL A
- MOV B,#08H
- MUL AB
- MOV R4,A
- FMLB: DEC R0
- MOV A,@R0
- JB ACC.6,FML9
- INC R0
- DEC @R0
- CLR C
- MOV A,R5
- MOV R0,A
- MOV A,R7
- RL A
- MOV R6,A
- FMLA: MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R6,FMLA
- DJNZ R4,FMLB
- FML9: MOV A,R2
- DEC A
- MOV R0,A
- MOV A,@R0
- JNB ACC.7,FMLK
- INC R0
- MOV A,R7
- MOV R6,A
- SETB C
- FMLP: MOV A,@R0
- ADDC A,#00H
- MOV @R0,A
- INC R0
- DJNZ R6,FMLP
- FMLK: JNB PSW.5,FMLR
- MOV A,R2
- ADD A,R7
- MOV R0,A
- LCALL NBNET
- FMLR: RET
- ;
- ;
- ;
- ;
- ;
- NBFDIV: MOV A,@R0 ;THIS IS SUBROUTING 5-8 SUBAH
- CLR C
- SUBB A,@R1
- MOV R2,A
- MOV A,R7
- MOV B,#08H
- MUL AB
- ADD A,R2
- DEC A
- MOV @R0,A
- CLR PSW.5
- DEC R0
- MOV A,@R0
- JNB ACC.7,NDV0
- CPL PSW.5
- INC R0
- LCALL NBNET
- LJMP NDV1
- NDV0: INC R0
- NDV1: MOV A,R0
- XCH A,R1
- XCH A,R0
- DEC R0
- MOV A,@R0
- JNB ACC.7,NDV2
- CPL PSW.5
- INC R0
- LCALL NBNET
- LJMP NDV3
- NDV2: INC R0
- NDV3: MOV A,R0
- MOV R2,A
- DEC R0
- MOV A,R7
- XCH A,R6
- NDV4: MOV A,@R0
- JNZ NDV5
- DEC R0
- DJNZ R6,NDV4
- SETB C
- RET
- NDV5: CLR C ;R2:40 R3:50 R5:30
- MOV A,R2
- SUBB A,R7
- MOV R3,A
- MOV A,R1
- SUBB A,R7
- SUBB A,R7
- MOV R2,A
- XCH A,R0
- MOV A,R7
- XCH A,R6
- NDV6: MOV @R0,#00H ; 0 >40,41
- INC R0
- DJNZ R6,NDV6
- MOV A,R5
- MOV R0,A
- MOV A,R7
- MOV R6,A
- NDV7: MOV @R0,#00H ;0 > 31,30
- INC R0
- DJNZ R6,NDV7
- MOV A,R7
- RL A
- MOV B,#08H
- MUL AB
- MOV R4,A
- INC R4
- CLR C
- NDVE: MOV A,R2 ;RLC 43-40 31-30
- MOV R0,A
- MOV A,R7
- RL A
- MOV R6,A
- NDV8: MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R6,NDV8
- MOV A,R5
- MOV R0,A
- MOV A,R7
- MOV R6,A
- NDV9: MOV A ,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R6,NDV9
- DJNZ R4,NDVA
- LJMP NDVX
- NDVA: MOV A,R5
- MOV R0,A
- MOV A,R3
- MOV R1,A
- MOV A,R7
- MOV R6,A
- CLR C
- NDVB: MOV A,@R0
- SUBB A,@R1
- MOV @R0,A
- INC R0
- INC R1
- DJNZ R6,NDVB
- JNC NDVC
- MOV A,R5
- MOV R0,A
- MOV A,R3
- MOV R1,A
- MOV A,R7
- MOV R6,A
- CLR C
- NDVD: MOV A,@R0
- ADDC A,@R1
- MOV @R0,A
- INC R0
- INC R1
- DJNZ R6,NDVD
- CLR C
- LJMP NDVE
- NDVC: SETB C
- LJMP NDVE
- NDVX: MOV A,R7
- RL A
- MOV B,#08H
- MUL AB
- MOV R4,A
- DEC R4
- NDVX3: MOV A,R2
- ADD A,R7
- ADD A,R7
- DEC R0
- MOV R0,A
- MOV A,@R0
- JB ACC.6,NDVK
- INC R0
- DEC @R0
- MOV A,R2
- MOV R0,A
- MOV A,R7
- RL A
- MOV R6,A
- CLR C
- NDVX2: MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R6,NDVX2
- DJNZ R4,NDVX3
- NDVK: MOV A,R0
- CLR C
- SUBB A,R7
- MOV R0,A
- MOV A,@R0
- JNB ACC.7,NDVX1
- SETB C
- INC R0
- MOV A,R7
- MOV R6,A
- NDVP: MOV A,@R0
- ADDC A,#00H
- MOV @R0,A
- INC R0
- DJNZ R6,NDVP
- NDVX1: JNB PSW.5,NDVX4
- MOV A,R2
- ADD A,R7
- ADD A,R7
- MOV R0,A
- LCALL NBNET
- NDVX4: RET
- ;
- ; THIS IS THE FILE OF FUN.ASM
- ;
- FPLN: POP DPH ;THIS IS SUBROUTING 7-1
- POP DPL
- CLR A
- MOVC A,@A+DPTR
- MOV R6,A
- INC DPTR
- CLR A
- MOVC A,@A+DPTR
- MOV R2,A
- INC DPTR
- CLR A
- MOVC A,@A+DPTR
- MOV R3,A
- INC DPTR
- FP1: MOV A,@R0
- XRL A,R6
- MOV C,ACC.7
- MOV 38H,C
- INC R0
- MOV A,@R0
- MOV R4,A
- INC R0
- MOV A,@R0
- MOV R5,A
- DEC R0
- DEC R0
- LCALL WDMUL
- MOV A,R2
- JB ACC.7,FP2
- MOV A,R7
- RLC A
- MOV A,R3
- RLC A
- MOV R3,A
- MOV A,R2
- RLC A
- MOV R2,A
- DEC R6
- FP2: MOV A,R6
- ADD A,@R0
- MOV C,38H
- MOV ACC.7,C
- MOV R6,A
- CLR A
- MOVC A,@A+DPTR
- MOV R7,A
- INC DPTR
- CLR A
- MOVC A,@A+DPTR
- MOV R4,A
- INC DPTR
- CLR A
- MOVC A,@A+DPTR
- MOV R5,A
- INC DPTR
- CLR 3AH
- LCALL FABP
- MOV A,R4
- MOV R6,A
- CLR A
- MOVC A,@A+DPTR
- CJNE A,#40H,FP1
- LCALL FSTR
- INC DPTR
- CLR A
- JMP @A+DPTR
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- DSQR: MOV R4,#0 ;THIS IS SUBROUTING 7-2
- DSLP: CLR C
- MOV A,R4
- RLC A
- XCH A,R3
- MOV PSW.5,C
- SETB C
- SUBB A,R3
- MOV R3,A
- CLR A
- MOV ACC.0,C
- XCH A,R2
- MOV C,PSW.5
- SUBB A,R2
- MOV R2,A
- INC R4
- JNC DSLP
- DEC R4
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- FSQR: MOV A,@R0 ;THIS IS SUBROUTING 7-3
- JB ACC.7,FR3
- MOV @R1,A
- INC R0
- INC R1
- MOV A,@R0
- MOV @R1,A
- INC R0
- INC R1
- MOV A,@R0
- MOV @R1,A
- DEC R0
- DEC R0
- DEC R1
- DEC R1
- FR1: LCALL FDIV
- MOV R6,A
- MOV A,@R1
- MOV R7,A
- INC R1
- MOV A,@R1
- MOV R4,A
- INC R1
- MOV A,@R1
- MOV R5,A
- DEC R1
- DEC R1
- CLR 3AH
- LCALL FABP
- CLR PSW.5
- MOV A,R4
- DEC A
- CLR ACC.7
- MOV R4,A
- MOV B,R7
- CLR B.7
- CJNE A,B,FR2
- MOV A,R5
- SUBB A,R3
- ANL A,#0FCH
- MOV R7,A
- MOV A,R6
- SUBB A,R2
- JNZ FR2
- CJNE R7,#0,FR2
- SETB PSW.5
- FR2: LCALL FSTR
- JNB PSW.5,FR1
- RET
- FR3: CLR PSW.5
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- FSIN: MOV @R1,#2 ;THIS IS SUBROUTING 7-4
- INC R1
- MOV @R1,#0C9H
- INC R1
- MOV @R1,#10H
- DEC R1
- DEC R1
- LCALL FDIV
- MOV A,R0
- PUSH ACC
- INC SP
- MOV A,SP
- INC SP
- INC SP
- XCH A,R1
- MOV R0,A
- MOV A,R4
- CLR ACC.7
- MOV R4,A
- JZ FSN1
- JNB ACC.6,FSN3
- FSN1: MOV R4,#40H
- MOV R2,#0
- MOV R3,#0
- SJMP FSN4
- FSN2: CLR C
- MOV A,R2
- RRC A
- MOV R2,A
- MOV A,R3
- RRC A
- MOV R3,A
- INC R4
- FSN3: CJNE R4,#16,FSN2
- FSN4: MOV A,R3
- MOV C,ACC.0
- MOV 3BH,C
- JNB 38H,FSN5
- CPL 3BH
- FSN5: MOV A,R4
- MOV R6,A
- SETB C
- CLR PSW.5
- LCALL FSDT
- MOV A,R6
- MOV C,38H
- MOV ACC.7,C
- MOV R4,A
- LCALL FSTR
- LCALL FMUL
- MOV A,R0
- XCH A,R1
- DEC A
- MOV SP,A
- LCALL FSTR
- POP ACC
- PUSH ACC
- MOV R0,A
- LCALL FSUB
- MOV A,R4
- CLR ACC.7
- MOV R4,A
- LCALL FSTR
- MOV A,R1
- MOV R0,A
- LCALL FPLN
- DB 0F7H,0A8H,70H ;-1.2850635E-3
- DB 7AH,0C6H,70H ;0.012111701
- DB 0F9H,0C5H,68H ;-6.02441338E-3
- DB 0FEH,0A5H,41H ;-0.161379884
- DB 0FAH,26H,0A0H ;-2.357414E-3
- DB 1,80H,0EH ;1.00042182
- DB 0FBH,0,1CH ;-1.32048E-5
- DB 40H
- MOV A,@R1
- MOV C,3BH ;SIGN of SIN X
- MOV ACC.7,C
- MOV @R1,A
- POP ACC
- MOV R0,A
- RET
- ;
- ;
- ;
- ;
- ;
- FEXP: MOV @R1,#1 ;THIS IS SUBROUTING 7-5
- INC R1 ;1/(ln 2) = 1.442695
- MOV @R1,#0B8H
- INC R1
- MOV @R1,#0ABH
- DEC R1
- DEC R1
- LCALL FMUL
- LCALL FSTR
- MOV C,38H ;SIGN of X
- MOV 3BH,C
- MOV A,R4
- CLR ACC.7
- MOV R4,A
- JNB ACC.6,FEX1
- MOV R2,#0
- SJMP FEX4
- FEX1: CJNE R4,#7,$+3
- JC FEX3
- SETB PSW.5 ;Over Flow
- RET
- FEX2: CLR C
- MOV A,R2
- RRC A
- MOV R2,A
- MOV A,R3
- RRC A
- MOV R3,A
- INC R4
- FEX3: CJNE R4,#8,FEX2
- FEX4: MOV A,R0
- PUSH ACC
- INC SP
- MOV A,SP
- INC SP
- INC SP
- XCH A,R1
- MOV R0,A
- MOV A,R2
- PUSH ACC
- MOV R3,#0
- MOV R6,#8
- SETB PSW.5
- CLR PSW.5
- LCALL FSDT
- MOV A,R6
- MOV C,3BH ;SIGN of X
- MOV ACC.7,C
- MOV R4,A
- LCALL FSTR
- LCALL FSUB
- LCALL FSTR
- MOV A,R0
- XCH A,R1
- MOV R0,A
- LCALL FPLN
- ; DF 0.001356407
- ; DF 0.009851447
- ; DF 0.055495483
- ; DF 0.24013873
- ; DF 0.693147619
- ; DF 1
- DB 40H
- POP ACC
- JNB 3BH,FEX5
- CPL A
- INC A
- FEX5: ADD A,@R1
- CLR ACC.7
- MOV @R1,A
- DEC R0
- MOV SP,R0
- POP ACC
- MOV R0,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- FLN0: SETB PSW.5
- FLN1: RET
- FLNX: CLR PSW.5 ;THIS IS SUBROUTING 7-6
- MOV A,R0
- JB ACC.7,FLN0
- LCALL LNORM
- JB PSW.5,FLN1
- MOV A,R0
- PUSH ACC
- MOV A,@R0
- PUSH ACC
- CLR A
- PUSH ACC
- INC R0
- MOV A,@R0
- MOV R2,A
- INC R0
- MOV A,@R0
- MOV R0,SP
- CLR C
- RLC A
- XCH A,R2
- RLC A
- PUSH ACC
- MOV A,R2
- PUSH ACC
- LCALL FPLN
- ; DF 0.029808
- ; DF -0.129955
- ; DF 0.283822
- ; DF -0.4897
- ; DF 0.9917
- ; DF 0.00001144
- DB 40H
- DEC R0
- MOV A,@R0
- DEC A
- JZ FLN5
- MOV C,ACC.6
- MOV 3BH,C
- MOV ACC.7,C
- JNC FLN2
- CPL A
- INC A
- FLN2: MOV R5,A
- MOV B,#72H
- MUL AB
- XCH A,R5
- MOV R3,B
- MOV B,#0B1H
- MUL AB
- ADD A,R3
- MOV R3,A
- CLR A
- ADDC A,B
- MOV R2,A
- MOV R4,#8
- MOV A,R2
- FLN3: JB ACC.7,FLN4
- MOV A,R5
- RLC A
- MOV R5,A
- MOV A,R3
- RLC A
- MOV R3,A
- MOV A,R2
- RLC A
- MOV R2,A
- DEC R4
- SJMP FLN3
- FLN4: MOV A,R4
- MOV C,3BH
- MOV ACC.7,C
- MOV R4,A
- MOV A,R0
- XCH A,R1
- MOV R0,A
- LCALL FSTR
- MOV A,R0
- XCH A,R1
- MOV R0,A
- LCALL FADD
- LCALL FSTR
- FLN5: DEC R0
- MOV SP,R0
- POP ACC
- MOV R0,A
- RET
- LNORM: MOV A,@R0
- MOV C,ACC.7
- MOV PSW.5,C
- INC R0
- MOV C,ACC.6
- MOV ACC.7,C
- MOV R2,A
- LNRM1: MOV A,@R0
- INC R0
- JNZ LNRM3
- MOV A,@R0
- JNZ LNRM4
- DEC R0
- DEC R0
- MOV A,#40H
- MOV C,PSW.5
- MOV ACC.7,C
- MOV @R0,A
- SETB PSW.5
- RET
- LNRM3: JB ACC.7,LNRM5
- LNRM4: CLR C
- MOV A,@R0
- RLC A
- MOV @R0,A
- DEC R0
- MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DEC R2
- CJNE R2,#0C0H,LNRM3
- LNRM5: DEC R0
- DEC R0
- MOV A,R2
- MOV C,PSW.5
- MOV ACC.7,C
- MOV @R0,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS THE FILE OF DTOB.ASM
- ;
- IDTB: MOV R3,#0 ;THIS IS SUBROUTING 8-1
- MOV A,@R0
- MOV R4,A
- IDTL: MOV A,R4
- MOV B,#10
- MUL AB
- MOV R4,A
- MOV B,#10
- XCH A,B
- XCH A,R3
- MUL AB
- ADD A,R3
- XCH A,R4
- INC R0
- ADD A,@R0
- XCH A,R4
- ADDC A,#0
- MOV R3,A
- DJNZ R2,IDTL
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- PDTB: MOV R3,#0 ;THIS IS SUBROUTING 8-2
- MOV R4,#0
- PDTL: MOV A,R3
- MOV B,#9AH
- MUL AB ;First MUL
- MOV R5,B
- XCH A,R4
- MOV B,#19H
- MUL AB ;Second MUL
- ADD A,R4
- MOV A,R5
- ADDC A,B
- MOV R5,A
- MOV A,@R0
- MOV B,#9AH
- MUL AB ;Third MUL
- ADD A,R5
- MOV R4,A
- CLR A
- ADDC A,B
- XCH A,R3
- MOV B,#19H
- MUL AB ;Fourth MUL
- ADD A,R4
- MOV R4,A
- MOV A,B
- ADDC A,R3
- MOV R3,A
- MOV A,@R0
- MOV B,#19H
- MUL AB ;Fifth MUL
- ADD A,R3
- MOV R3,A
- DEC R0
- DJNZ R2,PDTL
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- IBTD: CLR A ;THIS IS SUBROUTING 8-3 ;IBDT2
- MOV R4,A
- MOV R5,A
- MOV R6,A
- MOV R7,#16
- IBTL2: CLR C
- MOV A,R3
- RLC A
- MOV R3,A
- MOV A,R2
- RLC A
- MOV R2,A
- MOV A,R6
- ADDC A,R6
- DA A
- MOV R6,A
- MOV A,R5
- ADDC A,R5
- DA A
- MOV R5,A
- MOV A,R4
- ADDC A,R4
- DA A
- MOV R4,A
- DJNZ R7,IBTL2
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- PBTD: MOV R4,#5 ;THIS IS SUBROUTING 8-4
- PBTL: MOV A,R3
- MOV B,#10
- MUL AB
- MOV R3,A
- MOV A,#10
- XCH A,B
- XCH A,R2
- MUL AB
- ADD A,R2
- MOV R2,A
- CLR A
- ADDC A,B ;(A) = BCD
- MOV @R0,A
- INC R0
- DJNZ R4,PBTL
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- NIDTB: MOV A,R1 ;THIS IS SUBROUTING 8-5 ;SUBC1
- MOV R6,A
- MOV A,R7
- MOV R3,A
- CLR A
- NDB0: MOV @R1,A
- INC R1
- DJNZ R3,NDB0
- MOV A,R7
- MOV R3,A
- NDB3: LCALL NDB1 ;M10
- MOV A,@R0
- ANL A,#0F0H
- SWAP A
- LCALL NDB2 ;SUM
- LCALL NDB1 ;M10
- MOV A,@R0
- ANL A,#0FH
- LCALL NDB2
- DEC R0
- DJNZ R3,NDB3
- RET
- NDB1: MOV A,R7 ;SUM SUBROUTING
- MOV R4,A
- MOV A,R6
- MOV R1,A
- CLR C ;
- MOV R2,#00H
- NDB4: MOV A,@R1
- MOV B,#0AH
- PUSH PSW
- MUL AB
- POP PSW
- ADDC A,R2
- MOV @R1,A
- MOV R2,B
- INC R1
- DJNZ R4,NDB4
- RET
- NDB2: MOV R5,A
- MOV A,R6
- MOV R1,A
- MOV A,R7
- MOV R4,A
- MOV A,R5
- ADD A,@R1
- MOV @R1,A
- INC R1
- DEC R4
- MOV A,R4
- JNZ NDB5
- LJMP NDB6
- NDB5: MOV A,@R1
- ADDC A,#00H
- MOV @R1,A
- INC R1
- DJNZ R4,NDB5
- NDB6: RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- NIBTD: MOV A,R0 ;THIS IS SUBROUTING 8-6 ;SUBD1
- MOV R5,A
- MOV A,R1
- MOV R6,A
- MOV A,R7
- INC A
- MOV R3,A
- CLR A
- NBD0: MOV @R1,A
- INC R1
- DJNZ R3,NBD0
- MOV A,R7
- MOV B,#08H
- MUL AB
- MOV R3,A
- NBD4: MOV A,R5
- MOV R0,A
- MOV A,R7
- MOV R2,A
- CLR C
- NBD1: MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R2,NBD1
- MOV A,R6
- MOV R1,A
- MOV A,R7
- MOV R2,A
- INC R2
- NBD3: MOV A,@R1
- ADDC A,@R1
- DA A
- MOV @R1,A
- INC R1
- DJNZ R2 ,NBD3
- DJNZ R3,NBD4
- RET
- ;
- NPDTB: MOV A,R0 ;THIS IS SUBROUTING 8-7 ;SUBE1
- MOV R4,A
- MOV A,R1
- MOV R5,A
- MOV A,R7
- MOV R3,A
- CLR A
- NPDB0: MOV @R1,A
- INC R1
- DJNZ R3,NPDB0
- MOV A,R7
- MOV B,#08H
- MUL AB
- MOV R3,A
- NPDB3: MOV A,R6
- MOV R2,A
- MOV A,R4
- MOV R0,A
- CLR C
- NPDB1: MOV A,@R0
- ADDC A,@R0
- DA A
- MOV @R0,A
- INC R0
- DJNZ R2,NPDB1
- MOV A,R5
- MOV R1,A
- MOV A,R7
- MOV R2,A
- NPDB2: MOV A,@R1
- RLC A
- MOV @R1,A
- INC R1
- DJNZ R2,NPDB2
- DJNZ R3,NPDB3
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- NPBTD: MOV A,R0 ;THIS IS SUBROUTING 8-8 ;SUBF1
- MOV R4,A
- MOV A,R1
- MOV R5,A
- MOV A,R6
- MOV R3,A
- CLR A
- NPBD0: MOV @R1,A
- INC R1
- DJNZ R3,NPBD0
- MOV A,R6
- RL A
- MOV R3,A
- NPBD3: MOV A,R4
- MOV R0,A
- MOV A,R7
- MOV R2,A
- MOV R1,#00H
- CLR C
- NPBD1: MOV A,@R0
- MOV B,#0AH
- PUSH PSW
- MUL AB
- POP PSW
- ADDC A,R1
- MOV @R0,A
- MOV R1,B
- INC R0
- DJNZ R2,NPBD1
- MOV A,R1
- ADDC A,#00H
- MOV R1,A
- MOV A,R6
- MOV R2,A
- MOV A,R5
- MOV R0,A
- NPBD2: MOV A,@R0
- SWAP A
- MOV @R0,A
- XCH A,R1
- XCHD A,@R0
- INC R0
- DJNZ R2,NPBD2
- DJNZ R3,NPBD3
- RET
- ;
- ;
- ; THIS IS THE FILE OF TAB.ASM
- ;
- ;
- RTBA: MOV A,R2 ;THIS IS SUBROUTING 9-1 ;LTB2
- ADD A,R2
- MOV R3,A
- ADD A,#6
- MOVC A,@A+PC
- XCH A,R3
- ADD A,#3
- MOVC A,@A+PC
- MOV R4,A
- RET
- TAB2: DW ADR0,ADR1,ADR2,ADR3 ;COMD PROCESSING ADDRESS
- DW ADR4,ADR5,ADR6,ADR7
- DW ADR8,ADR9,ADRA,ADRB
- DW ADRC,ADRD,ADRE,ADRF
- ;
- ;
- ;
- ;
- TMAINA: LCALL RACOMD
- LCALL RTBA
- MOV DPH,R3
- MOV DPL,R4
- CLR A
- JMP @A+DPTR
- ;
- ;
- ;
- ;
- ;
- RACOMD: NOP
- ;
- ;
- ;
- ADR0:NOP
- ADR1:NOP
- ADR2:NOP
- ADR3:NOP
- ADR4:NOP
- ADR5:NOP
- ADR6:NOP
- ADR7:NOP
- ADR8:NOP
- ADR9:NOP
- ADRA:NOP
- ADRB:NOP
- ADRC:NOP
- ADRD:NOP
- ADRE:NOP
- ADRF:NOP
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- TMAINB: LCALL INILTA
- MOV DPTR,#7FFCH
- MOVX A,@DPTR
- MOV R2,A
- INC DPTR
- MOVX A,@DPTR
- MOV R3,A
- LCALL RTBB
- LCALL PTADD
- ;
- ;
- ;
- ;
- ;
- INILTA: NOP
- PTADD: NOP
- ;
- ;
- ;
- ;
- RTBB: MOV DPTR,#TAB3 ;THIS IS SUBROUTING 9-2 ;LTB3
- MOV A,R3
- CLR C
- RLC A
- XCH A,R2
- RLC A
- XCH A,R2
- ADD A,DPL
- MOV DPL,A
- MOV A,DPH
- ADDC A,R2
- MOV DPH,A
- CLR A
- MOVC A,@A+DPTR
- MOV R2,A
- CLR A
- INC DPTR
- MOVC A,@A+DPTR
- MOV R3,A
- RET
- TAB3: DW D0000,D0001,D0002,D0003
- DW D0004,D0005,D0006,D0007
- ; .............................
- DW D1020,D1021,D1022,D1023
- ;
- ;
- ;
- ;
- ;
- ;
- D0000: NOP
- D0001: NOP
- D0002: NOP
- D0003: NOP
- D0004: NOP
- D0005: NOP
- D0006: NOP
- D0007: NOP
- D1020: NOP
- D1021: NOP
- D1022: NOP
- D1023: NOP
- ;
- ;
- RTBC: MOV R2,#0FFH ;THIS IS SUBROUTING 9-3 ;LTB4
- MOV DPTR,#TAB4
- LT4A: MOV A,R0
- MOV R1,A
- INC R2
- LT4B: MOV A,@R1
- MOV B,A
- CLR A
- MOVC A,@A+DPTR
- CLR PSW.5
- JBC ACC.7,LT4C
- SETB PSW.5
- LT4C: JZ LT4N
- CJNE A,B,LT4D
- JNB PSW.5,LT4Y
- INC R1
- INC DPTR
- SJMP LT4B
- LT4D: INC DPTR
- JNB PSW.5,LT4A
- LT4E: CLR A
- MOVC A,@A+DPTR
- INC DPTR
- JB ACC.7,LT4A
- SJMP LT4E
- LT4Y: LJMP FINE
- LT4N: LJMP NFINE
- TAB4: DB 52H,45H,53H,45H,0D4H ;RESET
- DB 42H,45H,47H,49H,0CEH ;BEGIN
- DB 53H,54H,4FH,0D0H ;STOP
- DB 53H,45H,4EH,0C4H ;SEND
- DB 43H,48H,41H,4EH,4EH,45H,0CCH ;CHANNEL
- DB 43H,48H,41H,4EH,47H,0C5H ;CHANGE
- DB 0 ;END
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- FINE: NOP
- NFINE: NOP
- INSTR: NOP
- ECOMD: NOP ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- TMAINC: LCALL INSTR
- MOV R0,#30H
- LCALL RTBC
- JC ECOMD
- MOV DPTR,#TTABC
- MOV A,R2
- RL A
- JMP @A+DPTR
- TTABC: AJMP TPCOMD0
- AJMP TPCOMD1
- AJMP TPCOMD2
- AJMP TPCOMD3
- AJMP TPCOMD4
- AJMP TPCOMD5
- TPCOMD0:NOP
- TPCOMD1:NOP
- TPCOMD2:NOP
- TPCOMD3:NOP
- TPCOMD4:NOP
- TPCOMD5:NOP
- ;
- ;
- ;
- ;
- ;
- RTBD: MOV DPTR,#TAB5 ;THIS IS SUBROUTING 9-4 ;LTB5
- MOV B,A
- LT5A: CLR A
- MOVC A,@A+DPTR
- JZ LT5N
- INC DPTR
- CJNE A,B,LT5B
- CLR A
- MOVC A,@A+DPTR
- MOV B,A
- INC DPTR
- CLR A
- MOVC A,@A+DPTR
- MOV DPL,A
- MOV DPH,B
- CLR A
- JMP @A+DPTR
- LT5B: INC DPTR
- INC DPTR
- SJMP LT5A
- LT5N: LJMP NFIN5
- TAB5: DB 41H ;ASCII A
- DW XA
- DB 44H ;ASCII D
- DW XD
- DB 45H ;ASCII E
- DW XE
- DB 4CH ;ASCII L
- DW XL
- DB 4DH ;ASCII M
- DW XM
- DB 58H ;ASCII X
- DW XX
- DB 5AH ;ASCII Z
- DW XZ
- DB 0 ;END
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- XA: NOP
- XD: NOP
- XE: NOP
- NFIN5: NOP
- XL: NOP
- XM: NOP
- XX: NOP
- XZ: NOP
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- RTBE: MOVX A,@DPTR ;THIS IS SUBROUTING 9-5 ;LKST
- INC DPTR
- JZ LKS5
- MOV R6,DPH
- MOV R7,DPL
- MOV R3,#0
- LKS1: DEC A
- MOV R4,A
- LKS2: CJNE A,3,$+3
- JC LKS4 ;(HI) < (LO)
- ADD A,R3
- CLR C
- RRC A
- MOV R5,A ; MI
- LCALL LTT
- MOVX A,@DPTR
- CJNE A,2,LKS3
- INC DPTR ;
- MOVX A,@DPTR
- MOV R3,A
- INC DPTR
- MOVX A,@DPTR
- MOV R4,A
- INC DPTR
- MOVX A,@DPTR
- RET
- LKS3: MOV A,R5
- JNC LKS1
- INC A
- MOV R3,A ;
- MOV A,R4 ;
- SJMP LKS2
- LKS4: INC A
- LKS5: LCALL LTT
- SETB C
- RET
- LTT: MOV B,#4
- MUL AB
- ADD A,R7
- MOV DPL,A
- MOV A,B
- ADDC A,R6
- MOV DPH,A
- RET
- ;
- ;
- ;
- ;
- ;
- ISTL: MOV R6,DPH ;THIS IS SUBROUTING 9-6 ;
- MOV R7,DPL
- MOV DPL,R1
- MOV DPH,B
- INC DPTR
- INC DPTR
- INC DPTR
- INC DPTR
- IST1: MOV A,R6
- CJNE A,B,IST2
- MOV A,R7
- CJNE A,1,IST2
- MOV DPH,B
- MOV DPL,R1
- MOV A,R2
- MOVX @DPTR,A
- INC DPTR
- MOV A,R3
- MOVX @DPTR,A
- INC DPTR
- MOV A,R4
- MOVX @DPTR,A
- INC DPTR
- MOV A,R5
- MOVX @DPTR,A
- RET
- IST2: MOV P2,B
- MOVX A,@R1
- MOVX @DPTR,A
- DEC R1
- CJNE A,#0FFH,IST3
- DEC B
- IST3: DEC DPL
- MOV A,DPL
- CJNE A,#0FFH,IST4
- DEC DPH
- IST4: SJMP IST1
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- CSTAB: MOV A,R4 ;THIS IS SUBROUTING 9-7 ;TEXT MC COHD
- MOVC A,@A+PC
- XRL A,@R0
- JNZ SB50
- INC R4
- INC R0
- DJNZ R7,CSTAB
- CLR A
- RET
- SB50: MOV A,#0FFH
- RET
- DB 41H,20H,47H,45H,54H,54H,49H,4DH,45H,0DH ;A GETTIME
- DB 42H,20H,47H,45H,54H,44H,41H,54H,41H,0DH ;B GETDATA
- DB 43H,20H,47H,45H,54H,53H,54H,41H,54H,0DH ;C GETSTAT
- DB 44H,20H,49H,4DH,45H,4CH,44H,0DH ;D TIMELD
- ;
- ;
- ;
- ;
- LOADS: MOV A,R6 ;THIS IS SUBROUTING 9-8 ;ASCII $->BUF
- MOVC A,@A+PC
- MOV @R0,A
- INC R0
- INC R6
- DJNZ R7,LOADS
- JNB PSW.5,SB31
- CLR PSW.5
- MOV A,31H
- MOV B,#0AH
- DIV AB
- LCALL HASC
- MOV @R0,A
- INC R0
- MOV A,B
- LCALL HASC
- MOV @R0,A
- INC R0
- MOV @R0,#0DH
- SB31: RET
- DB 52H,45H,41H,44H,59H,0DH ;READY 1E
- DB 3FH,3FH,0DH ;?? 24
- DB 45H,52H,52H,4FH,52H,0DH ;ERROR 27
- DB 54H,49H,4DH,45H,0DH ;TIME 2D
- DB 53H,54H,41H,54H,0DH ;STAT 32
- DB 4FH,4CH,44H,0DH ;OLD 37
- DB 4EH,45H,57H,0DH ;NEW 3B
- DB 44H,4FH,4EH,4FH,54H,0DH ;DONOT 3F
- DB 49H,4EH,49H,54H,49H,41H,4CH,0DH ;INITIAL 45
- DB 52H,49H,47H,48H,54H,0DH ;RIGHT 4D
- DB 43H,4CH,4FH,53H,45H,0DH ;CLOSE 53
- DB 53H,59H,4EH,4FH,50H,20H ;SYNOP 59
- DB 42H,45H,47H,49H,4EH,0DH ;BEGIN 5F
- DB 41H,43H,4BH,4EH,47H,0DH,0DH ;ACKNG 65 ;ACKNG CLOSE 65
- DB 51H,41H,4CH,41H,52H,4DH,20H ;QALARM 6C
- DB 44H,41H,54H,41H,49H,4EH,54H,56H,20H ;DATAINTV73
- DB 54H 49H,4DH,45H,41H,44H,4AH,55H,20H ;TIMEADJ 7C
- END
- ;
- ;
- ;
- ; THIS IS THE FILE OF IO.ASM
- ;
- ;
- IAMAIN: MOV DPTR,#7FFFH ;THIS IS A APPLICATION EXAMPLE OF DIRA
- MOV A,#90H
- MOVX @DPTR,A
- MOV SP,#60H
- MOV R0,#3BH
- MOV @R0,#01H
- INC R0
- MOV @R0,#03H
- INC R0
- MOV @R0,#00H
- INC R0
- MOV @R0,#08H
- AML1: LCALL DIRA
- LJMP AML1
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- DIRA: MOV R2,#01H ;THIS SUBROUTING 10-1
- MOV R0,#3BH
- MOV A,R2
- DIRA1: MOV DPTR,#7FFEH
- MOVX @DPTR,A
- MOV A,@R0
- ADD A,#12H
- MOVC A,@A+PC
- DIRA2: MOV SBUF,A
- MOV R7,#02H
- MOV R6,#0FFH
- DLA1: DJNZ R6,DLA1
- DJNZ R7,DLA1
- INC R0
- MOV A,R2
- RL A
- MOV R2,A
- JNB ACC.4,DIRA1
- RET
- DSEGA: DB 0C0H,0F9H,0A4H ;0-2
- DB 0B0H,099H,092H ;3-5
- DB 082H,0F8H,080H ;6-8
- DB 090H,0E3H,0DFH ;9,|_|,-
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- DIRB: MOV R0,#39H ;THIS SUBROUTING 10-2
- MOV R3,#01H
- MOV A,R3
- BLD0: MOV DPTR,#7F01H
- MOVX @DPTR,A
- INC DPTR
- MOV A,@R0
- ADD A,#0DH
- MOVC A,@A+PC
- BDIR1: MOVX @DPTR,A
- LCALL BDL1
- INC R0
- MOV A,R3
- JB ACC.5,BLD1
- RL A
- MOV R3,A
- SJMP BLD0
- BLD1: RET
- BDSEG: DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5
- BDSEG1: DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,B
- BDSEG2: DB 39H,5EH,79H,71H,73H,3EH ;C,D,E,F,P,|_|,
- BDSEG3: DB 31H,6EH,1CH,23H,40H,03H ;R:12,Y:13,|_|:14,-:15,-|:17
- BDSEG4: DB 18H,38H,00 ;|_:18,|_:19, :1A
- BDL1: MOV R7,#04H
- BDL: MOV R6,#0E7H ;0.5 ms
- BDL6: DJNZ R6,BDL6
- DJNZ R7,BDL
- RET
- ;
- ;
- ;
- ;
- ;
- KEYIB: LCALL BKS1 ;THIS SUBROUTING 10-3
- JNZ BLK1
- BNI: LCALL DIRB
- LJMP KEYIB
- BLK1: LCALL DIRB
- LCALL DIRB
- LCALL BKS1
- JNZ BLK2
- LCALL DIRB
- LJMP KEYIB
- BLK2: MOV R2,#0FEH
- MOV R4,#00H
- BLK4: MOV DPTR,#7F01H
- MOV A,R2
- MOVX @DPTR,A
- INC DPTR
- INC DPTR
- MOVX A,@DPTR
- JB ACC.0,BLONE
- MOV A,#00H
- LJMP BLKP
- BLONE: JB ACC.1,BLTWO
- MOV A,#08H
- LJMP BLKP
- BLTWO: JB ACC.2,BLTHR
- MOV A,#10H
- LJMP BLKP
- BLTHR: JB ACC.3,BNEXT
- MOV A,#18H
- BLKP: ADD A,R4
- PUSH ACC
- BLK3: LCALL DIRB
- LCALL BKS1
- JNZ BLK3
- POP ACC
- RET
- BNEXT: INC R4
- MOV A,R2
- JNB ACC.7,BKND
- RL A
- MOV R2 A
- LJMP BLK4
- BKND: LJMP KEYIB
- BKS1: MOV DPTR,#7F01H
- MOV A,#00H
- MOVX @DPTR,A
- INC DPTR
- INC DPTR
- MOVX A,@DPTR
- CPL A
- ANL A,#0FH
- RET
- ;
- ; THIS IS A APPLICATION EXAMPLE OF DIRB,KEYIB
- ;
- ;
- IBMAIN: MOV SP,#60H
- MOV DPTR,#7F00H
- MOV A,#03H
- MOVX @DPTR,A
- MOV R0,#39H
- MOV @R0,#13H
- INC R0
- MOV @R0,#0AH
- INC R0
- MOV @R0,#12H
- INC R0
- MOV @R0,#11H
- INC R0
- MOV @R0,#10H
- INC R0
- MOV @R0,#0CH
- IBML0: LCALL DIRB
- LCALL KEYIB
- JB ACC.4,IBML0
- MOV 3EH,3DH
- MOV 3DH,3CH
- MOV 3CH,3BH
- MOV 3BH,39H
- MOV 39H,A
- SJMP IBML0
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF DIRC,KEYIC
- ;
- ICMAIN: MOV SP,#60H
- MOV R0,#40H
- MOV A,#1AH
- CML0: MOV @R0,A
- INC R0
- CJNE R0,#46H,CML0
- CML1: LCALL DIRC
- LCALL KEYIC
- MOV R0,#40H
- MOV R3,A
- ANL A,#0FH
- MOV @R0,A
- INC R0
- MOV A,R3
- ANL A,#0F0H
- SWAP A
- MOV @R0,A
- LJMP CML1
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- KEYIC: LCALL CKS1 ;THIS SUBROUTING 10-5
- JNZ CLK1
- CNI: LCALL DIRC
- LJMP KEYIC
- CLK1: LCALL DIRC
- LCALL DIRC
- LCALL CKS1
- JNZ CLK2
- LJMP CNI
- CLK2: ANL P1,#0C0H
- MOV R3,#0FEH
- MOV R4,#00H
- CLR TI
- CLK4: MOV SBUF,R3
- DKC6: JBC TI,DKC7
- SJMP DKC6
- DKC7: JB P3.3,CLONE
- MOV A,#00H
- LJMP CLKP
- CLONE: JB P3.4,CLTWO
- MOV A,#08H
- LJMP CLKP
- CLTWO: JB P3.5,CNEXT
- MOV A,#10H
- CLKP: ADD A,R4
- PUSH ACC
- CLK3: LCALL DIRC
- LCALL CKS1
- JNZ CLK3
- POP ACC
- RET
- CNEXT: INC R4
- MOV A,R3
- JNB ACC.7,CKND
- RL A
- MOV R3,A
- LJMP CLK4
- CKND: LJMP KEYIC
- CKS1: MOV SBUF,#00H
- MOV R6,#05H
- CDS6: DJNZ R6,CDS6
- MOV A,P3
- CPL A
- ANL A,#38H
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- DIRC: MOV R0,#40H ;THIS SUBROUTING 10-4
- MOV R2,#01H
- CDIRL: MOV P1,R2
- MOV A,@R0
- ADD A,#12H
- MOVC A,@A+PC
- MOV SBUF,A
- MOV R7,#02H
- CDL: MOV R6,#0FFH
- CDL6: DJNZ R6,CDL6
- DJNZ R7,CDL6
- INC R0
- MOV A,R2
- RL A
- MOV R2,A
- JNB ACC.6,CDIRL
- RET
- CDSEG: DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5
- DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,B
- DB 39H,5EH,79H,71H,73H,3EH ;C,D,E,F,P,|_|,
- DB 31H,6EH,1CH,23H,40H,03H ;R-12 Y-13 |_|-14 -15 -|-17
- DB 18H,38H,00 ;|_-18 |_-19 1A
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF DIRD
- ;
- ;
- ;
- IDMAIN: MOV DPTR,#0EFFFH
- MOV A,#0D3H
- MOVX @DPTR,A
- DDL0: MOVX A,@DPTR
- JB ACC.7,DDL0
- MOV A,#08H
- MOVX @DPTR,A
- MOV A,#34H
- MOVX @DPTR,A
- SETB PT0
- MOV R0,#7FH
- MOV R7,#0DH
- DMPL0: MOV @R0,#00H
- DEC R0
- DJNZ R7,DMPL0
- DWKIW: LCALL DIRD
- DWKI0: MOV DPTR,#0EFFFH
- MOVX A,@DPTR
- ANL A,#0FH
- JNZ DKI0
- LJMP DWKIW
- DKI0: MOV R7,#0DH ;WAIT FIRST KIN
- MOV R0,#73H
- DML1: MOV @R0,#15H
- INC R0
- DJNZ R7,DML1
- LJMP DKI
- DWKI: MOV DPTR,#0EFFFH ;WAIT KIN
- MOVX A,@DPTR
- ANL A,#0FH
- JNZ DKI
- LJMP DWKI
- DKI: MOV DPTR,#0EFFFH ;READ KI
- MOV A,#40H
- MOVX @DPTR,A
- MOV DPTR,#0EFFEH
- MOVX A,@DPTR
- MOV R2,A
- ANL A,#38H ;C NO KIN
- RR A
- RR A
- RR A
- MOV B,#03H
- MUL AB
- XCH A,R2
- ANL A,#07H
- ADD A,R2
- MOV R2,A ;K NO > R2
- CJNE A,#0AH,00H
- JC DNUM
- LJMP IDCOM
- DNUM: JNB 0AH,DIADR ;P DATA
- SETB 0BH
- MOV R0,#78H
- MOV R7,#05H
- DML2: XCH A,@R0
- INC R0
- DJNZ R7,DML2
- LCALL DIRD
- LJMP DWKI
- DIADR: MOV R0,#73H
- MOV R7,#04H
- LJMP DML2
- IDCOM: CLR C
- SUBB A,#0AH
- MOV R2,A
- RL A
- ADD A,R2
- MOV DPTR,#IDMTAB
- JMP @A+DPTR
- IDMTAB: LJMP COMD0
- LJMP COMD1
- LJMP COMD2
- LJMP COMD3
- LJMP COMD4
- LJMP COMD5
- LJMP COMD6
- LJMP COMD7
- LJMP COMD8
- LJMP COMD9
- LJMP COMDA
- LJMP COMDB
- LJMP COMDC
- ;
- ;
- ;
- ;
- ;
- ;
- DIRD: MOV DPTR,#0EFFFH ;THIS SUBROUTING 10-6
- MOV A,#90H ;WR DIRRAM COMD >8279
- MOVX @DPTR,A
- MOV R0,#7FH
- MOV R7,#0DH
- MOV DPTR,#0EFFEH
- DDIRL: MOV A,@R0
- ADD A,#05H
- MOVC A,@A+PC
- DDIR0: MOVX @DPTR,A
- DEC R0
- DJNZ R7,DDIRL
- RET
- DDSEG: DB 3FH,06H,5BH,4FH,66H,6DH ;0-5
- DB 7DH,07H,7FH,6FH,77H,7CH ;6-B
- DB 39H,5EH,79H,71H ;C-F
- DB 73H,3EH,31H,6EH,40H,00H ;P,U,r,Y,-,BLACK: 10H-15H
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF AD5G
- ;
- IEMAIN: MOV SP,#60H
- SETB IT1
- MOV IE,#84H
- IMLE1: JNB PSW.5,IMLE1
- CLR PSW.5
- LCALL EPDATA ;PROCESS DATA
- IMLE: SJMP IMLE1
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- AD5G: PUSH ACC ;THIS SUBROUTING 10-7 ;
- PUSH PSW
- SETB PSW.3
- CLR PSW.4
- AD5G0: MOV A,P1
- JNB ACC.4,AD5G0
- JB ACC.0,AD5GER
- JB ACC.2,AD5G1
- SETB 07H
- LJMP AD5G2
- AD5G1: CLR 07H
- AD5G2: JB ACC.3,AD5G3
- SETB 04H
- LJMP AD5G4
- AD5G3: CLR 04H
- AD5G4: MOV A,P1
- JNB ACC.5,AD5G4
- MOV R0,#20H
- XCHD A,@R0
- AD5G5: MOV A,P1
- JNB ACC.6,AD5G5
- SWAP A
- INC R0
- MOV @R0,A
- AD5G6: MOV A,P1
- JNB ACC.7,AD5G6
- XCHD A,@R0
- AD5G7: POP PSW
- POP ACC
- SETB PSW.5
- RETI
- AD5GER: SETB 10H
- SJMP AD5G7
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- EPDATA: RET
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF ADICL
- ;
- ;
- IFMAIN: MOV DPTR,#7F04H
- MOV A,#10H
- MOVX @DPTR,A
- INC DPTR
- MOV A,#40H
- MOVX @DPTR,A
- MOV DPTR,#7F00H
- MOV A,#0D6H
- MOVX @DPTR,A
- MOV SP,#60H
- MOV 20H,#00H
- MOV P2,#7EH
- MOV R0,#00H
- MOV R7,#55H
- MOV IE,#84H
- FWDIN: JBC PSW.5,FTRAN
- LJMP FWDIN
- FTRAN: MOV A,21H
- MOVX @R0,A
- INC R0
- MOV A,22H
- MOVX @R0,A
- INC R0
- MOV A,23H
- MOVX @R0,A
- INC R0
- DJNZ R7,FWDIN
- LCALL FPDATA
- MOV R0,#00H
- MOV R7,#55H
- LJMP FWDIN
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ADICL: PUSH DPL ;THIS SUBROUTING 10-8
- PUSH DPH
- PUSH ACC
- PUSH PSW
- SETB PSW.3
- CLR PSW.4
- MOV DPTR,#7F01H ;READ 8155 PA
- MOVX A,@DPTR
- MOV R2,A
- ANL A,#0F0H
- JNZ ICLI
- MOV R1,#21H
- MOV A,R2
- ANL A,#01H
- XCHD A,@R1
- MOV A,R2
- ANL A,#0EH
- SWAP A
- XCHD A,@R1
- MOV @R1,A
- INC R1
- ICLD4: MOVX A,@DPTR
- JNB ACC.7,ICLD4
- SWAP A
- MOV @R1,A
- ICLD3: MOVX A,@DPTR
- JNB ACC.6,ICLD3
- XCHD A,@R1
- INC R1
- ICLD2: MOVX A,@DPTR
- JNB ACC.5,ICLD2
- SWAP A
- MOV @R1,A
- ICLD1: MOVX A,@DPTR
- JNB ACC.4,ICLD1
- XCHD A,@R1
- POP PSW
- POP ACC
- POP DPH
- POP DPL
- SETB PSW.5
- RETI
- ICLI: POP PSW
- POP ACC
- POP DPH
- POP DPL
- RETI
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF DA10
- ;
- GMAIN: MOV R0,#31H
- MOV @R0,#00H
- DEC R0
- MOV @R0,#00H
- GML2: MOV A,@R0
- ADD A,#01H
- MOV @R0,A
- INC R0
- MOV A,@R0
- ADDC A,#00H
- CJNE A,#04H,GML1
- CLR A
- GML1: MOV @R0,A
- LCALL DA10
- SJMP GML2
- ;
- ;
- ;
- ;
- ;
- ;
- ; ;THIS SUBROUTING 10-9
- DA10: MOV P2,#7CH
- MOV A,@R0
- ANL A,#03H
- ORL P2,A
- DEC R0
- MOV A,@R0
- MOVX @R0,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF PRINTA,PRINTG
- ;
- ;
- IHMAIN: MOV SP,#60H
- MOV R0,#30H
- MOV @R0,#01H
- INC R0
- MOV @R0,#01H
- INC R0
- MOV @R0,#01H
- INC R0
- MOV @R0,#02H
- INC R0
- MOV @R0,#02H
- INC R0
- MOV @R0,#02H
- INC R0
- MOV @R0,#03H
- INC R0
- MOV @R0,#03H
- INC R0
- MOV @R0,#03H
- MOV R1,#30H
- MOV R2,#03H
- LCALL GP16PA
- MOV R6,#02H
- LCALL GP16G
- IHERE: LJMP IHERE
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- GP16PA: MOV DPTR,#7FFFH ;;THIS SUBROUTING 10-10
- GPA0: MOVX A,@DPTR
- ANL A,#81H
- JNZ GPA0
- GPA1: MOV A,#9AH
- MOVX @DPTR,A
- GPA2: MOVX A,@DPTR
- JB ACC.7 GPA1
- JB ACC.0,GPA2
- MOV A,R2
- MOVX @DPTR,A
- GPAP: MOVX A,@DPTR
- JB ACC.0 GPAP
- MOV R7,#00H
- GPA12: MOV A,R7
- ADD A,#81H
- MOVX @DPTR,A
- GPAP1: MOVX A,@DPTR
- JB ACC.0,GPAP
- MOV R4,#55H
- GPA13: MOV A,R4
- MOVC A,@A+PC
- MOVX @DPTR,A
- GPAP2: MOVX A,@DPTR
- JB ACC.0,GPAP2
- INC R4
- MOV A,R4
- XRL A,#58H
- JNZ GPA13
- GPA14: LCALL HSUBI
- MOV A,R7
- ADD A,R7
- ADD A,R7
- ADD A,#32H
- XRL A,R1
- JNZ GPA14
- GPAP3: MOVX A,@DPTR
- JB ACC.0,GPAP3
- MOV A,#2EH
- MOVX @DPTR,A
- GPAP4: MOVX A,@DPTR
- JB ACC.0,GPAP4
- LCALL HSUBI
- MOV R6,#06H
- MOV R4,#2CH
- GPAP8: MOVX A,@DPTR
- JB ACC.0,GPAP8
- MOV A,R4
- MOVC A,@A+PC
- MOVX @DPTR,A
- INC R4
- DJNZ R6,GPAP8
- INC R7
- MOV A,R7
- XRL A,R2
- JNZ GPA12
- RET
- HSUBI: MOVX A,@DPTR
- JB ACC.0,HSUBI
- MOV A,@R1
- ANL A,#0F0H
- SWAP A
- LCALL ASCII
- MOVX @DPTR,A
- HLSI: MOVX A,@DPTR
- JB ACC.0 HLSI
- MOV A,@R1
- ANL A,#0FH
- LCALL ASCII
- MOVX @DPTR, A
- INC R1
- RET
- ASCII: ADD A,#90H
- DA A
- ADDC A,#40H
- DA A
- RET
- STRING: DB 54H,3AH,20H,0A1H
- DB 43H,20H,20H,20H
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- GP16G: MOV DPTR,#7FFFH ;THIS SUBROUTING 10-11
- GPG0: MOVX A,@DPTR
- ANL A,#81H
- JNZ GPG0
- GPG1: MOV A,#0B8H
- MOVX @DPTR,A
- GPG2: MOVX A,@DPTR
- JB ACC.7,GPG1
- JB ACC.0,GPG2
- MOV A,R6
- MOVX @DPTR,A
- MOV R4,#19H
- MOV R1,#19H
- MOV R3,#2DH
- MOV R7,#60H
- GPG4: MOVX A,@DPTR
- JB ACC.0,GPG4
- MOV A,R1
- MOVC A,@A+PC
- MOVX @DPTR,A
- DJNZ R7,GPG11
- DJNZ R6,GPG12
- RET
- GPG11: INC R1
- MOV A,R1
- XRL A,R3
- JNZ GPG4
- MOV A,R4
- MOV R1,A
- LJMP GPG4
- GPG12: MOV R1,#2DH
- MOV R1,#2DH
- MOV R3,#41H
- MOV R7,#60H
- LJMP GPG4
- IS10: DB 80H,20H,04H,02H,01H
- DB 01H,02H,04H,20H,80H
- DB 00H,00H,00H,00H,00H
- DB 00H,00H,00H,00H,00H
- DB 00H,00H,00H,00H,00H
- DB 00H,00H,00H,00H,00H
- DB 01H,04H,20H,40H,80H
- DB 80H,40H,20H,04H,01H
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF CPP40,XPP40
- ;
- ;
- ;
- IKMAIN: MOV P2,#7FH ;PP40 PROGRAM
- MOV A,#84H
- MOVX @R0,A
- MOV SP,#60H
- MOV DPTR,#PTABD
- MOV R7,#33H
- LCALL CPP40 ;PRINT COMD TAB
- MOV DPTR,#PTABG
- MOV R7,#03H
- LCALL CPP40
- MOV DPTR,#PTABD ;PRINT GRAM
- MOV R7,#33H
- LCALL CPP40
- MOV DPTR,#PTABA
- MOV R7,#03H
- LCALL CPP40
- MOV DPTR,#0BE00H ;8031 > RAM BUFER
- MOV A,#38H
- MOVX @DPTR,A
- INC DPTR
- MOV A,#30H
- MOVX @DPTR,A
- INC DPTR
- MOV A,#33H
- MOVX @DPTR,A
- INC DPTR
- MOV A,#31H
- MOVX @DPTR,A
- MOV DPTR,#0BE00H
- MOV R7,#04H
- LCALL XPP40 ;PRINT 8031
- IKHERE: SJMP IKHERE
- PTABA: DB 0DH,11H,0DH
- PTABG: DB 0DH,12H,0DH
- PTABD: DB 48H,4DH,31H,35H,2CH ;HM15,-10[CR]
- DB 2DH,31H,30H,0DH
- DB 4CH,30H,2CH,4AH,32H ;L0,J20,0,-2,-25,8,0,1,4[CR]
- DB 30H,2CH,30H,2CH,2DH
- DB 32H,2CH,2DH,32H,35H
- DB 2CH,38H,2CH,30H,2CH
- DB 31H,2CH,34H,0DH
- DB 4DH,32H,30H,2CH,2DH ;M20,-5[CR]
- DB 35H,0DH
- DB 4CH,30H,2CH,4AH,2DH ;L0,J-5,-30[CR]
- DB 35H,2CH,2DH,33H,30H
- DB 0DH
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- CPP40: MOV P2,#7DH ;THIS SUBROUTING 10-12
- CPP40L: CLR A
- MOVC A,@A+DPTR
- MOVX @R0,A
- CWPP40: JB P3.3,CWPP40
- INC DPTR
- DJNZ R7,CPP40L
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- XPP40: MOV P2,#7DH ;THIS SUBROUTING 10-13
- XPP40L: MOVX A,@DPTR
- MOVX @R0,A
- XWPP40: JB P3.3,XWPP40
- INC DPTR
- DJNZ R7,XPP40L
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; HM15,-10[CR]
- ; L0,J20,0,-2,-25,8,0,1,4[CR]
- ; M20,-5[CR]
- ; L0,J-5,-30[CR]
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF TTXD,RRXD
- ;
- ;
- YIMAIN: MOV SP,#60H
- MOV A,#3FH ; ? > ACC
- YML1: LCALL TTXD ;OUT A ASCII IN ACC
- LCALL RRXD ;IN A ASCII > ACC
- SJMP YML1
- ;
- ;
- ;
- ;
- ;
- TDL1: MOV R6,#08H
- TDL10: MOV R7,#32H
- TDL11: DJNZ R7,TDL11
- DJNZ R6,TDL10
- RET
- TDL2: MOV R6,#04H
- SJMP TDL10
- RRXD: PUSH DPH ;THIS SUBROUTING 10-14
- PUSH DPL
- MOV R4,#09H
- MOV DPTR ,#0EFFFH
- RWAIT: MOVX A,@DPTR
- MOV C,ACC.7
- JC RWAIT
- LCALL TDL2
- RRXDL: MOVX A,@DPTR
- MOV C,ACC.7
- MOV A,R5
- RRC A
- MOV R5,A
- LCALL TDL1
- DJNZ R4,RRXDL
- POP DPL
- POP DPH
- MOV A,R5
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS A SUBROUTING
- TTXD: PUSH DPH ;THIS SUBROUTING 10-15
- PUSH DPL
- MOV R5,A
- MOV R4,#09H
- MOV DPTR,#0EFFFH
- CLR C
- TTXDL: MOV ACC.7,C
- MOVX @DPTR,A
- LCALL TDL1
- MOV A,R5
- RRC A
- MOV R5,A
- DJNZ R4,TTXDL
- SETB ACC.7
- MOVX @DPTR,A
- LCALL TDL1
- POP DPL
- POP DPH
- RET
- ;
- ; THIS IS A APPLICATION EXAMPLE OF OUTA
- ;
- ;
- ;
- INMAIN: MOV SP,#60H
- MOV DPTR,#8000H
- MOV R2,#0FFH
- MOV R3,#8FH
- LCALL WTAP
- NML: SJMP NML
- WTAP: SETB P1.0
- MOV R6,#00H ;HEAD DELY
- MOV R7,#00H
- NDL6: DJNZ R6,NDL6
- DJNZ R7,NDL6
- MOV A,DPH ;BEGIN ADR > TAP
- LCALL OUTA
- MOV A,DPL
- LCALL OUTA
- MOV A,R3 ;END ADR > TAP
- LCALL OUTA
- MOV A,R2
- LCALL OUTA
- WTPL: MOVX A,@DPTR ;DATA > TAP
- LCALL OUTA
- MOV A,R2
- XRL A,DPL
- JNZ WTPG
- MOV A,R3
- XRL A,DPH
- JNZ WTPG
- RET
- WTPG: INC DPTR
- SJMP WTPL
- ;
- ;
- ;
- ;
- ; THIS IS A SUBROUTING
- ;
- OUTA: CLR C ;THIS SUBROUTING 10-16
- MOV 34H,#09H
- OUTA1: MOV P1.0,C
- MOV R7,#04H
- LCALL DELQ
- RLC A
- DJNZ 34H,OUTA1
- SETB P1.0
- MOV R7,#10H
- LCALL DELQ
- RET
- ;
- ;
- ;
- ;
- ; THIS IS A SUBROUTING
- ;
- INA: JB P1.1,INA ;THIS SUBROUTING 10-17
- MOV R7,#02H
- LCALL DELQ
- JB P1.1,INA
- MOV 34H,#09H
- INA1: MOV C,P1.1
- RLC A
- MOV R7,#04H
- LCALL DELQ
- DJNZ 34H,INA1
- JNB P1.1,INAE
- SETB C
- INA2: MOV R7,#08H
- LCALL DELQ
- RET
- INAE: CLR C
- SJMP INA2
- DELQ: MOV R6,#00H
- DLQ1: DJNZ R6,DLQ1
- DJNZ R7,DLQ1
- RET
- ;
- ;
- ;
- ;
- ; THIS IS A APPLICATION EXAMPLE OF INA
- XIMAIN: MOV SP,#60H
- LCALL RTAP
- JC RTAPER
- MOV 39H,#00H
- SJMP XML0
- RTAPER: MOV 39H,#0EH
- XML0: MOV 3AH,#1AH
- MOV 3BH,#1AH
- MOV 3CH,#1AH
- MOV 3DH,#1AH
- MOV 3EH,#1AH
- XML1: LCALL DIRB
- SJMP XML1
- RTAP: LCALL INA
- JNC RINAER
- MOV DPH,A
- LCALL INA
- JNC RINAER
- MOV DPL,A
- LCALL INA
- JNC RINAER
- MOV R3,A
- LCALL INA
- JNC RINAER
- MOV R2,A
- RTPL: LCALL INA
- JNC RINAER
- MOVX @DPTR,A
- MOV A,R2
- XRL A,DPL
- JNZ RTPG
- MOV A,R3
- XRL A,DPH
- JNZ RTPG
- CLR C
- RET
- RTPG: INC DPTR
- SJMP RTPL
- RINAER: SETB C
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- IOMAIN: MOV SP,#60H
- LCALL SOUT
- DB 4DH,43H,53H,5AH ;MCS_51
- DB 35H,31H,0DH,00H
- OML1: SJMP OML1
- ;
- ;
- ;
- ;
- ;
- SOUT: POP DPH ;THIS SUBROUTING 10-18
- POP DPL
- SETB TI
- SOUT0: CLR A
- MOVC A,@A+DPTR
- INC DPTR
- CJNE A,#00H,SOUT1
- PUSH DPL
- PUSH DPH
- RET
- SOUT1: JNB TI,SOUT1
- CLR TI
- MOV SBUF,A
- SJMP SOUT0
- ;
- ;
- COMD0: NOP
- COMD1: NOP
- COMD2: NOP
- COMD3: NOP
- COMD4: NOP
- COMD5: NOP
- COMD6: NOP
- COMD7: NOP
- COMD8: NOP
- COMD9: NOP
- COMDA: NOP
- COMDB: NOP
- COMDC: NOP
- COMDD: NOP
- FPDATA: NOP
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;THIS IS FILE OF TICE.ASM
- ;
- ;
- ICEA: MOV SP,#70H ;THIS PROGRAM 11-1
- MOV DPTR,#0BF00H
- MOV A,#0C1H
- MOVX @DPTR,A
- INC DPTR
- INC DPTR
- MOVX A,@DPTR
- DEC DPL
- MOVX @DPTR,A
- MOV R7,#00H
- MOV A,#0AAH
- MOV DPTR,#0BE00H
- TAML: MOVX @DPTR,A
- INC DPTR
- DJNZ R7,TAML
- MOV R0,#02H
- MOV R1,#6EH
- TAML2: MOV @R0,A
- INC R0
- DJNZ R1,TAML2
- MOV R0,A
- MOV R1,A
- TAML3: MOV 20H,#00H
- MOV 21H,#80H
- MOV TMOD,#11H
- MOV TL0,#00H
- MOV TH0,#00H
- MOV TL1,#00H
- MOV TH1,#00H
- SETB TR0
- SETB TR1
- SETB EA
- SETB EX0
- SETB ET0
- SETB EX1
- SETB ET1
- TAHERE: MOV DPTR,#0BF02H
- MOVX A,@DPTR
- DEC DPL
- MOVX @DPTR,A
- SJMP TAHERE
- TAPINT0:CLR P1.0
- CLR P1.1
- CLR P1.2
- CLR P1.3
- RETI
- TAPT0: DJNZ 20H,TAT01
- CPL P1.6
- CPL P1.7
- TAT01: RETI
- TAPT1: DJNZ 21H,TAT11
- MOV 21H,#80H
- CPL P1.4
- CPL P1.5
- TAT11: RETI
- TAPNT1: SETB P1.0
- SETB P1.1
- SETB P1.2
- SETB P1.3
- RETI
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ICEB: MOV R0,#02H ;THIS PROGRAM 11-2 ;0AAH > 8031 RAM
- MOV R1,#7EH
- MOV A,#0AAH
- ICB0: MOV @R0,A
- INC R0
- DJNZ R1,ICB0
- MOV R1,A
- MOV R0,A
- ICB1: MOV R0,#02H ;55H > 8031 RAM
- MOV R1,#7EH
- CPL A
- ICB2: MOV @R0,A
- INC R0
- DJNZ R1,ICB2
- MOV R1,A
- MOV R0,A
- ICB3: SJMP ICB3
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ICEC: MOV DPTR,#0000H ;THIS PROGRAM 11-3
- ICC0: MOVX A,@DPTR
- MOVX @DPTR,A
- INC DPTR
- CLR A
- CJNE A,DPL,ICC0
- CJNE A,DPH,ICC0
- ICC1: MOV DPTR,#0FFFEH
- ICC2: MOVX A,@DPTR
- MOVX @DPTR,A
- SETB C
- MOV A,DPL
- RLC A
- MOV DPL,A
- MOV A,DPH
- RLC A
- MOV DPH,A
- ICC3: JC ICC2
- ICC4: SJMP ICC4
- ;
- ;
- ;
- ;
- ;
- ; ORG 0
- LJMP ICED
- ; ORG 3
- LJMP CDINT0
- ; ORG 0BH
- LJMP CDT0
- ; ORG 13H
- LJMP CDINT1
- ; ORG 1BH
- LJMP CDT1
- ; ORG 30H
- ICED: MOV SP #70H ;THIS PROGRAM 11-4
- MOV IP,#00H
- MOV IE,#00H
- SETB EA
- SETB EX0
- SETB ET0
- SETB EX1
- SETB ET1
- MOV TMOD,#11H
- MOV TCON,#50H
- MOV 32H,#0AH
- MOV 33H,#64H
- MOV 30H,#00H
- MOV 31H,#00H
- ICD0: DJNZ 30H,ICD0
- DJNZ 31H,ICD0
- CPL P1.0
- SJMP ICD0
- CDINT0: CPL P1.1
- RETI
- CDINT1: CPL P1.2
- RETI
- CDT0: DJNZ 32H,CDT01
- MOV 32H,#0AH
- CPL P1.3
- CDT01: RETI
- CDT1: DJNZ 33H,CDT11
- MOV 33H,#64H
- CPL P1.4
- CDT11: RETI
- ;
- ;
- ;
- ;
- ;
- ;
- ; ;THIS PROGRAM 11-5
- ;
- ICEE: MOV TMOD,#00H ;MODE: 00,11,22,03
- MOV TH0,#00H ;DATA: 00-FF
- MOV TL0,#00H
- MOV TH1,#00H
- MOV TL1,#00H
- MOV TCON,#55H
- ICM0: JBC TF0,ICM1
- JBC TF1,ICM2
- SJMP ICM0
- ICM1: CPL P1.0
- MOV TH0,#00H
- MOV TL0,#00H
- SJMP ICM0
- ICM2: CPL P1.1
- MOV TH1,#00H
- MOV TL1,#00H
- MOV TCON,#50H
- ;
- ;
- ;
- ; THIS IS THE FILE OF OTHR.ASM
- ;
- ;
- FAVG: MOV R6,#40H ;THIS SUBROUTING 12-1 ;
- MOV R2,#0
- MOV R3,#0
- MOV A,R0
- PUSH ACC ;
- FLOP: LCALL RDXI ;
- CLR 3AH ;
- LCALL FABP ;R6( )R2 R3 + R7( )R4 R5 R4( )R2 R3
- MOV A,R4
- MOV R6,A
- DJNZ R0,FLOP
- LCALL FSTR
- POP ACC ;
- MOV R2,#0
- MOV R3,A
- INC SP
- MOV A,SP
- XCH A,R1
- MOV R0,A
- INC SP ;
- INC SP
- LCALL INTF ;
- LCALL FDIV ;
- MOV A,R0
- MOV R1,A
- LCALL FSTR ;
- DEC SP ;
- DEC SP
- DEC SP
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- FSAV: LCALL RDXP ;THIS SUBROUTING 12-2
- MOV A,7FH ;
- MOV B,#3
- MUL AB
- MOV DPTR,#2000H ;
- ADD A,DPL ;
- MOV DPL,A
- MOV A,R6 ;
- MOVX @DPTR,A
- INC DPTR
- MOV A,R2
- MOVX @DPTR,A
- INC DPTR
- MOV A,R3
- MOVX @DPTR,A
- MOV A,7FH ;
- INC A
- CJNE A,#16,FSA1
- CLR A ;
- FSA1: MOV 7FH,A
- MOV R0,#15 ;
- INC DPTR
- FSA2: MOV A,DPL
- CJNE A,#30H,FSA3
- MOV DPL,#0 ;
- FSA3: MOVX A,@DPTR
- MOV R7,A
- INC DPTR
- MOVX A,@DPTR
- MOV R4,A
- INC DPTR
- MOVX A,@DPTR
- MOV R5,A
- INC DPTR
- CLR 3AH ;
- LCALL FABP ;R6( )R2 R3 + R7( )R4 R5 R4( )R2 R3
- MOV A,R4
- MOV R6,A
- DJNZ R0,FSA2
- MOV C,ACC.7 ;
- DEC A ;
- DEC A
- DEC A
- DEC A
- MOV ACC.7,C ;
- LCALL FSTR ;
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- DAVG: CLR A ;THIS SUBROUTING 12-3
- MOV R2,A ;
- MOV R3,A
- MOV R6,A ;
- MOV R7,A
- MOV R4,#3FH ;
- MOV R5,#0FFH
- MOV R0,#4 ;N=4
- DAV1: LCALL RDAD ;A/D B,A
- MOV R1,A ;
- ADD A,R7 ;
- MOV R7,A
- MOV A,B
- ADDC A,R6
- MOV R6,A
- CLR C
- MOV A,R3
- SUBB A,R1
- MOV A,R2
- SUBB A,B
- JNC DAV2
- MOV A,R1 ;
- MOV R3,A
- MOV R2,B
- DAV2: CLR C
- MOV A,R1
- SUBB A,R5
- MOV A,B
- SUBB A,R4
- JNC DAV3
- MOV A,R1 ;
- MOV R5,A
- MOV R4,B
- DAV3: DJNZ R0,DAV1
- CLR C
- MOV A,R7 ;
- SUBB A,R3
- XCH A,R6
- SUBB A,R2
- XCH A,R6 ;
- SUBB A,R5
- XCH A,R6
- SUBB A,R4
- CLR C ;
- RRC A
- XCH A,R6
- RRC A
- MOV R7,A ;R6 R7
- RET;
- ;
- ;
- ;
- ; ;THIS SUBROUTING 12-4
- CRAY: MOV R5,#08H ;CRAY CODE > BINDARY
- CLP1: RLC A
- MOV 23H,A
- MOV A,22H
- RLC A
- MOV 22H,A
- MOV A,23H
- JNB 10,CLP2
- CPL ACC.7
- CLP2: DJNZ R5,CLP1
- MOV A,22H
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- MAINQ: MOV SP,#60H ;DATA QUE
- MOV R0,#50H
- MOV @R0,#6FH
- INC R0
- MOV @R0,#6EH
- INC R0
- MOV @R0,#6AH
- INC R0
- MOV @R0,#6CH
- INC R0
- MOV @R0,#6dh
- INC R0,
- MOV @R0,#6BH
- INC R0
- MOV @R0,#67H
- INC R0,
- MOV @R0,#69H
- INC R0
- MOV @R0,#68H
- INC R0
- MOV @R0,#64H
- MOV R3,#50H
- MOV R4,#0AH
- LCALL QUE
- QHERE: LJMP QHERE
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- QUE: MOV A,R3
- MOV R0,A
- MOV A,R4
- MOV R7,A
- CLR PSW.5 ;THIS SUBROUTING 12-5
- MOV A,@R0
- QL2: INC R0
- MOV R2,A
- CLR C
- SUBB A,@R0
- MOV A,R2
- JC QL1
- SETB PSW.5
- XCH A,@R0
- DEC R0
- XCH A,@R0
- INC R0
- QL1: MOV A,@R0
- DJNZ R7,QL2
- JB PSW.5,QUE
- RET
- ;
- ;
- ;
- ; ;THIS SUBROUTING 12-6
- CLK: CLR 25H ;0->S
- CPL P1.3 ;DISPLY S
- MOV A,2FH
- ADD A,#01H ;2AH-2FH
- DA A ;SS
- MOV 2FH,A
- CJNE A,#60H,CKR
- MOV 2FH,#00H
- MOV A,2EH ;MM
- ADD A,#01H
- DA A
- MOV 2EH,A
- XRL A,#60H
- JNZ CKR
- MOV 2EH,#00H
- MOV A,2DH ;HH
- ADD A,#01H
- DA A
- MOV 2DH,A
- XRL A,#12H
- JNZ CKR
- MOV 2DH,#00H
- CKR: RET
- ;
- ;
- ;
- ;
- ;
- ; ;THIS SUBROUTING 12-7
- ;
- HASC: ANL A,#0FH ;HEX > ASCII
- ADD A,#90H
- DA A
- ADDC A,#40H
- DA A
- RET
- ;
- ;
- ;
- ;
- ; ;THIS SUBROUTING 12-9
- ASCH: CLR C ;ASCII->HEX
- SUBB A,#30H
- MOV B,A
- SUBB A,#0AH
- JC SB10
- XCH A,B
- SUBB A,#07H
- RET
- SB10: XCH A,B
- RET
- ;
- ;
- ;
- ;
- ;
- RLNB: CLR C ;THIS SUBROUTING 12-10
- RLN0: MOV A,@R0
- RLC A
- MOV @R0,A
- INC R0
- DJNZ R7,RLN0
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- RRNB: CLR C ;THIS SUBROUTING 12-11
- RRN0: MOV A,@R0
- RRC A
- MOV @R0 ,A
- DEC R0
- DJNZ R7,RRN0
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- MUL10: CLR C ;THIS SUBROUTING 12-12 SUBH1
- MOV R2,#00H
- SML0: MOV A,@R1
- MOV B,#0AH
- PUSH PSW
- MUL AB
- POP PSW
- ADDC A,R2
- MOV @R1,A
- MOV R2,B
- INC R1
- DJNZ R7,SML0
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- INTF: RET
- RDXI: RET
- RDXP: RET
- RDAD: RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;THIS IS A FILE OF BCD.ASM
- ;
- BCDC: MOV A,@R0 ;THIS IS SUBROUTING 6-1
- SWAP A
- INC R0
- XCHD A,@R0
- MOV @R1,A
- XCHD A,@R0
- INC R0
- INC R1
- DJNZ R3,BCDC
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- CBCD: MOV A,@R0 ;THIS IS SUBROUTING 6-2
- SWAP A
- ANL A,#0FH
- MOV @R1,A
- MOV A,@R0
- INC R1
- ANL A,#0FH
- MOV @R1,A
- INC R0
- INC R1
- DJNZ R3,CBCD
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- CCMP: MOV A,R0 ;THIS IS SUBROUTING 6-3
- ADD A,R2
- MOV R0,A
- DEC R0
- CCML: MOV A,@R0
- CPL C
- CPL A
- ADDC A,#9AH
- MOV @R0,A
- DEC R0
- DJNZ R2,CCML
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; ;THIS IS SUBROUTING 6-4
- CADD: MOV A,R0 ;N BYTE BCD ADD
- ADD A,R3 ;NOT SIGN
- MOV R0,A
- DEC R0
- MOV A,R1
- ADD A,R3
- MOV R1,A
- DEC R1
- CLR C
- CADL: MOV A,@R0
- ADDC A,@R1
- DA A
- MOV @R0,A
- DEC R0
- DEC R1
- DJNZ R3,CADL
- RET
- ;
- ; ;THIS IS SUBROUTING 6-5 ;
- CSUB1: MOV A,R0 ;N BYTE N SIGN BCD SUB
- ADD A,R3
- MOV R0,A
- DEC R0
- MOV A,R1
- ADD A,R3
- MOV R1,A
- DEC R1
- SETB C
- CSUL1: CLR A
- ADDC A,#99H
- SUBB A,@R1
- ADD A,@R0
- DA A
- MOV @R0,A
- DEC R0
- DEC R1
- DJNZ R3,CSUL1
- RET
- ;
- ;
- ;
- ;
- ; THIS IS SUBROUTING ;THIS IS SUBROUTING 6-6
- CSUB2: MOV A,R0 ;N BYTE N SIGN
- ADD A,R3 ;BCD SUB
- MOV R0,A
- DEC R0
- MOV A,R1
- ADD A,R3
- MOV R1,A
- DEC R1
- CLR C
- CPL C
- CSUL2: MOV A,@R1
- CPL A
- ADDC A,#9AH
- ADD A,@R0
- DA A
- MOV @R0,A
- DEC R0
- DEC R1
- DJNZ R3,CSUL2
- RET
- ;
- ;
- ;
- ;
- ; ;THIS IS SUBROUTING 6-8
- CDSUB: MOV A,@R1 ;N BYTE O SIGN BCD SUB
- CPL A
- ANL A,#1
- MOV @R1,A
- CDADD: MOV A,R3
- MOV R2,A
- MOV A,@R0
- XRL A,@R1
- ANL A,#01H
- INC R0
- INC R1
- JNZ CDSB
- LCALL CADD
- RET
- CDSB: LCALL CSUB2
- JC CDRT
- INC R0
- INC R1
- LCALL CCMP
- MOV A,@R1
- MOV @R0,A
- CDRT: CLR C
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; ;THIS IS SUBROUTING 6-7
- CMUL: MOV A,R3 ;N BYTES BCD MUL
- MOV R6,A ;R6 = n
- ADD A,R3
- MOV R2,A ;R2 = 2n
- MOV A,R3
- ADD A,R0
- MOV R0,A
- MOV A,R1
- ADD A,R3
- DEC A
- MOV R1,A
- CLR A
- CMUL1: MOV @R0,A
- INC R0
- DJNZ R6,CMUL1
- MOV A,R2
- MOV R6,A
- DEC R0
- CMUL2: CLR A
- CMUL3: XCH A,@R0 ;(B,S) * 10
- SWAP A
- XCHD A,@R0
- XCH A,@R0
- DEC R0
- DJNZ R2,CMUL3
- MOV R7,A ;R7 = bi
- JZ CMUL7
- CMUL4: MOV A,R3
- MOV R2,A
- ADD A,R3
- ADD A,R0
- MOV R0,A
- CLR C
- CMUL5: MOV A,@R0 ;S + A -> S
- ADDC A,@R1
- DA A
- MOV @R0,A
- DEC R0
- DEC R1
- DJNZ R2,CMUL5
- MOV A,R3
- MOV R2,A
- CMUL6: CLR A
- ADDC A,@R0
- DA A
- MOV @R0,A
- DEC R0
- DJNZ R2,CMUL6
- MOV A,R3
- ADD A,R1
- MOV R1,A
- DJNZ R7,CMUL4
- CMUL7: MOV A,R3
- ADD A,R3
- MOV R2,A
- ADD A,R0
- MOV R0,A
- DJNZ R6,CMUL2
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; ;THIS IS SUBROUTING 6-8
- CDIV: MOV A,R3 ;2N BYTE BCD / N BYTE BCD
- ADD A,R3
- MOV R7,A ;R7 = 2n
- DEC R0
- DEC R1
- CDIV1: MOV A,R3
- ADD A,R3
- MOV R2,A ;R2 = 2n
- ADD A,R0
- MOV R0,A
- CLR A
- CDIV2: XCH A,@R0
- SWAP A
- XCHD A,@R0
- XCH A,@R0
- DEC R0
- DJNZ R2,CDIV2
- MOV R4,A
- CDIV3: MOV A,R3
- MOV R6,A ;R6 = n
- ADD A,R0
- MOV R0,A
- ADD A,R3
- XCH A,R0
- INC @R0
- XCH A,R0
- MOV A,R1
- ADD A,R3
- MOV R1,A
- SETB C
- CDIV4: CLR A
- ADDC A,#99H
- SUBB A,@R1
- ADD A,@R0
- DA A
- MOV @R0,A
- DEC R0
- DEC R1
- DJNZ R6,CDIV4
- CPL C
- MOV A,R4
- SUBB A,#0
- MOV R4,A
- JNC CDIV3
- MOV A,R3
- MOV R6,A
- ADD A,R0
- MOV R0,A
- ADD A,R3
- XCH A,R0
- DEC @R0
- XCH A,R0
- MOV A,R1
- ADD A,R3
- MOV R1,A
- CLR C
- CDIV5: MOV A,@R0
- ADDC A,@R1
- DA A
- MOV @R0,A
- DEC R0
- DEC R1
- DJNZ R6,CDIV5
- DJNZ R7,CDIV1
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; THIS IS FILE OF TBF.ASM
- ;
- ;
- NORM: MOV A,@R0 ;THIS IS SUBROUTING 4-1
- MOV C,ACC.7
- MOV PSW.5,C
- INC R0
- NORM1: MOV A,@R0
- INC R0
- JNZ NORM3
- MOV A,@R0
- JNZ NORM4
- DEC R0
- DEC R0
- MOV A,#40H
- NORM2: MOV C,PSW.5
- MOV ACC.7,C
- MOV @R0,A
- RET
- NORM3: JB ACC.7,NORM5
- NORM4: CLR C
- MOV A,@R0
- RLC A
- MOV @R0,A
- DEC R0
- MOV A,@R0
- RLC A
- MOV @R0,A
- DEC R0
- DEC @R0
- MOV A,@R0
- INC R0
- ANL A,#7FH
- CJNE A,#40H,NORM3
- DEC R0
- SJMP NORM2
- NORM5: DEC R0
- DEC R0
- MOV A,@R0
- SJMP NORM2
- ;
- ;
- ;
- ;
- ;
- FSDT: JC FS2 ;THIS IS SUBROUTING 4-2
- MOV C,39H
- JB PSW.5,FS1
- MOV A,R2
- RRC A
- MOV R2,A
- MOV A,R3
- RRC A
- MOV R3,A
- INC R6
- RET
- FS1: MOV A,R4
- RRC A
- MOV R4,A
- MOV A,R5
- RRC A
- MOV R5,A
- INC R7
- RET
- FS2: MOV A,R2
- JNZ FS4
- CJNE R3,#0,FS5
- MOV R6,#41H
- FS3: RET
- FS4: JB ACC.7,FS3
- FS5: MOV C,PSW.5
- MOV A,R3
- RLC A
- MOV R3,A
- MOV A,R2
- RLC A
- MOV R2,A
- CLR PSW.5
- DEC R6
- SJMP FS2
- ;
- ;
- ;
- ;
- ;
- FMLD: MOV A,@R0 ;THIS IS SUBROUTING 4-3
- MOV R6,A
- INC R0
- MOV A,@R0
- MOV R2,A
- INC R0
- MOV A,@R0
- MOV R3,A
- DEC R0
- DEC R0
- MOV A,@R1
- MOV R7,A
- INC R1
- MOV A,@R1
- MOV R4,A
- INC R1
- MOV A,@R1
- MOV R5,A
- DEC R1
- DEC R1
- RET
- ;
- ;
- ;
- ;
- ;
- FSTR: MOV A,R4 ;THIS IS SUBROUTING 4-4
- MOV @R1,A
- INC R1
- MOV A,R2
- MOV @R1,A
- INC R1
- MOV A,R3
- MOV @R1,A
- DEC R1
- DEC R1
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- FABP: MOV A,R6 ;THIS IS SUBROUTING 4-5
- MOV C,ACC.7
- MOV 38H,C
- XRL A,R7
- JNB ACC.7,FA1
- CPL 3AH
- FA1: MOV A,R6
- MOV C,ACC.6
- MOV ACC.7,C
- MOV R6,A
- MOV A,R7
- MOV C,ACC.6
- MOV ACC.7,C
- MOV R7,A
- CLR C
- MOV A,R6
- SUBB A,R7
- JZ FA2
- CLR PSW.5
- CLR 39H
- JB ACC.7,FA5
- CJNE R4,#0,FA6
- CJNE R5,#0,FA6
- FA2: JB 3AH,FA8
- MOV A,R3
- ADD A,R5
- MOV R3,A
- MOV A,R2
- ADDC A,R4
- MOV R2,A
- JNC FA4
- SETB 39H
- CLR C
- FA3: CLR PSW.5
- LCALL FSDT
- FA4: CJNE R2,#0,FAA
- CJNE R3,#0,FAA
- MOV R4,#41H
- RET
- FAA: MOV A,R6
- MOV C,38H
- MOV ACC.7,C
- XCH A,R4
- MOV R6,A
- RET
- FA5: CJNE R2,#0,FA7
- CJNE R3,#0,FA7
- MOV A,R7
- MOV R6,A
- SJMP FA2
- FA6: CPL PSW.5
- FA7: CLR C
- LCALL FSDT
- SJMP FA1
- FA8: MOV A,R3
- CLR C
- SUBB A,R5
- MOV R3,A
- MOV A,R2
- SUBB A,R4
- MOV R2,A
- JNC FA9
- CLR A
- CLR C
- SUBB A,R3
- MOV R3,A
- CLR A
- SUBB A,R2
- MOV R2,A
- CPL 38H
- FA9: SETB C
- SJMP FA3
- ;
- ;
- ;
- ;
- ;
- ;
- FADD: CLR 3AH ;THIS IS SUBROUTING 4-6
- LCALL FMLD
- LCALL FABP
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- FSUB: SETB 3AH ;THIS IS SUBROUTING 4-7
- LCALL FMLD
- LCALL FABP
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- FMUL: LCALL FMLD ;THIS IS SUBROUTING 4-8
- MOV A,R6
- XRL A,R7
- MOV C,ACC.7
- MOV 38H,C
- LCALL WDMUL
- MOV A,R7
- MOV C,ACC.7
- MOV PSW.5,C
- MOV A,@R0
- ADD A,@R1
- MOV R6,A
- SETB C
- LCALL FSDT
- MOV A,R6
- MOV C,38H
- MOV ACC.7,C
- MOV R4,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- WDMUL: MOV A,R3 ;THIS IS SUBROUTING 4-10
- MOV B,R5
- MUL AB
- MOV R7,B
- MOV A,R3
- MOV B,R4
- MUL AB
- ADD A,R7
- MOV R7,A
- CLR A
- ADDC A,B
- MOV R3,A
- MOV A,R2
- MOV B,R5
- MUL AB
- ADD A,R7
- MOV R7,A
- MOV A,R3
- ADDC A,B
- MOV R3,A
- MOV PSW.5,C
- MOV A,R2
- MOV B,R4
- MUL AB
- ADD A,R3
- MOV R3,A
- CLR A
- ADDC A,B
- MOV C,PSW.5
- ADDC A,#0
- MOV R2,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- FDIV: LCALL FMLD ;THIS IS SUBROUTING 4-9
- MOV A,R6
- XRL A,R7
- MOV C,ACC.7
- MOV 38H,C
- CLR A
- MOV R6,A
- MOV R7,A
- CJNE R4,#0,FD1
- CJNE R5,#0,FD1
- SETB C
- RET
- FD1: MOV A,R3
- SUBB A,R5
- MOV A,R2
- SUBB A,R4
- JC FD2
- CLR PSW.5
- CLR 39H
- LCALL FSDT
- MOV A,R7
- RRC A
- MOV R7,A
- CLR C
- SJMP FD1
- FD2: CLR A
- XCH A,R6
- PUSH ACC
- LCALL WDDIV
- POP ACC
- ADD A,@R0
- CLR C
- SUBB A,@R1
- MOV C,38H
- MOV ACC.7,C
- MOV R4,A
- CLR C
- RET
- ;
- ;
- ;
- ;
- ;
- WDDIV: MOV A,R1 ;THIS IS SUBROUTING 4-11
- PUSH ACC
- MOV B,#10H
- DV1: CLR C
- MOV A,R6
- RLC A
- MOV R6,A
- MOV A,R7
- RLC A
- MOV R7,A
- MOV A,R3
- RLC A
- MOV R3,A
- XCH A,R2
- RLC A
- XCH A,R2
- MOV PSW.5,C
- CLR C
- SUBB A,R5
- MOV R1,A
- MOV A,R2
- SUBB A,R4
- JB PSW.5,DV2
- JC DV3
- DV2: MOV R2,A
- MOV A,R1
- MOV R3,A
- INC R6
- DV3: DJNZ B,DV1
- POP ACC
- MOV R1,A
- MOV A,R7
- MOV R2,A
- MOV A,R6
- MOV R3,A
- RET
- ;
- ;
- ;
- ;
- ;
- INTTF: MOV R6,#10H ;THIS IS SUBROUTING 4-12
- SETB C
- CLR PSW.5
- LCALL FSDT
- MOV A,R6
- MOV C,3CH
- MOV ACC.7,C
- MOV R4,A
- LCALL FSTR
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- FINT: CLR PSW.5 ;THIS IS SUBROUTING 4-13
- INC R0
- MOV A,@R0
- MOV R2,A
- INC R0
- MOV A,@R0
- MOV R3,A
- DEC R0
- DEC R0
- MOV A,@R0
- MOV C,ACC.7
- MOV 3CH,C
- CLR ACC.7
- JNB ACC.6,FIN1
- MOV R2,#00H
- MOV R3,#00H
- RET
- FIN1: CJNE A,#11H,FIN5
- JC FIN3
- FIN5: SETB PSW.5
- MOV R2,#0FFH
- MOV R3,#0FFH
- RET
- FIN3: CJNE A,#10H,FIN4
- RET
- FIN4: CLR C
- XCH A,R2
- RRC A
- XCH A,R2
- XCH A,R3
- RRC A
- XCH A,R3
- INC A
- SJMP FIN3
- ;
- ;
- ; THIS THE FILE OF DBINT.ASM
- ;
- ;
- ;
- ;
- ;
- CMPT: MOV A,R5 ;THIS IS SUBROUTING 2-1
- CPL A
- ADD A,#01H
- MOV R5,A
- MOV A,R4
- CPL A
- ADDC A,#00H
- MOV R4,A
- RET
- ;
- ;
- NADD: MOV A,R3 ;THIS IS SUBROUTING 2-2
- ADD A,R7
- MOV R5,A
- MOV A,R2
- ADDC A,R6
- MOV R4,A
- RET
- ;
- ;
- ;
- ;
- ;
- NSUB1: MOV A,R3 ;THIS IS SUBROUTING 2-3
- CLR C
- SUBB A,R7
- MOV R5,A
- MOV A,R2
- SUBB A,R6
- MOV R4,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- DSUB: MOV A,R6 ;THIS IS SUBROUTING 2-4
- CPL ACC.7
- MOV R6,A
- DADD: MOV A,R2
- MOV C,ACC.7
- MOV PSW.5,C
- XRL A,R6
- MOV C,ACC.7
- MOV A,R2
- CLR ACC.7
- MOV R2,A
- MOV A,R6
- CLR ACC.7
- MOV R6,A
- JC DAB2
- LCALL NADD
- MOV A,R4
- JB ACC.7,DABE
- DAB1: MOV C,PSW.5
- MOV ACC.7,C
- MOV R4,A
- RET
- DABE: SETB C
- RET
- DAB2: LCALL NSUB1
- MOV A,R4
- JNB ACC.7,DAB1
- LCALL CMPT
- CPL PSW.5
- SJMP DAB1
- ;
- ;
- ;
- ;
- NMUL: MOV R4,#0 ;THIS IS SUBROUTING 2-5
- MOV R5,#0
- MOV R0,#16
- CLR C
- NMLP: MOV A,R4
- RRC A
- MOV R4,A
- MOV A,R5
- RRC A
- MOV R5,A
- MOV A,R6
- RRC A
- MOV R6,A
- MOV A,R7
- RRC A
- MOV R7,A
- JNC NMLN0
- MOV A,R5
- ADD A,R3
- MOV R5,A
- MOV A,R4
- ADDC A,R2
- MOV R4,A
- NMLN0: DJNZ R0,NMLP
- MOV A,R4
- RRC A
- MOV R4,A
- MOV A,R5
- RRC A
- MOV R5,A
- MOV A,R6
- RRC A
- MOV R6,A
- MOV A,R7
- RRC A
- MOV R7,A
- RET
- ;
- ;
- ;
- ;
- ;
- QKMUL: MOV A,R3 ;THIS IS SUBROUTING 2-6
- MOV B,R7
- MUL AB ;R3 * R7
- XCH A,R7 ;R7 =(R3*R7)L
- MOV R5,B ;R5 =(R3*R7)H
- MOV B,R2
- MUL AB ;R2 * R7
- ADD A,R5
- MOV R4,A
- CLR A
- ADDC A,B
- MOV R5,A ;R5 =(R2*R7)H
- MOV A,R6
- MOV B,R3
- MUL AB ;R3 * R6
- ADD A,R4
- XCH A,R6
- XCH A,B
- ADDC A,R5
- MOV R5,A
- MOV PSW.5,C ;Store CY
- MOV A,R2
- MUL AB ;R2 * R6
- ADD A,R5
- MOV R5,A
- CLR A
- MOV ACC.0,C
- MOV C,PSW.5
- ADDC A,B
- MOV R4,A
- RET
- ;
- ;
- ;
- ;
- NDIV1: MOV A,R3 ;THIS IS SUBROUTING 2-7
- CLR C ;
- SUBB A,R7
- MOV A,R2
- SUBB A,R6
- JNC NDVE1
- MOV B,#16
- NDVL1: CLR C
- MOV A,R5
- RLC A
- MOV R5,A
- MOV A,R4
- RLC A
- MOV R4,A
- MOV A,R3
- RLC A
- MOV R3,A
- XCH A,R2
- RLC A
- XCH A,R2
- MOV PSW.5,C
- CLR C
- SUBB A,R7
- MOV R1,A
- MOV A,R2
- SUBB A,R6
- JB PSW.5,NDVM1
- JC NDVD1
- NDVM1: MOV R2,A
- MOV A,R1
- MOV R3,A
- INC R5
- NDVD1: DJNZ B,NDVL1
- CLR PSW.5
- RET
- NDVE1: SETB PSW.5
- RET
- ;
- ;
- ;
- IMUL: MOV A,R2 ;THIS IS SUBROUTING 2-8
- XRL A,R6
- MOV C,ACC.7
- MOV PSW.5,C
- MOV A,R2
- CLR ACC.7
- MOV R2,A
- MOV A,R6
- CLR ACC.7
- MOV R6,A
- LCALL NMUL
- MOV A,R4
- MOV C,PSW.5
- MOV ACC.7,C
- MOV R4,A
- RET
- ;
- ;
- ;
- ;
- IDIV: MOV A,R2 ;THIS IS SUBROUTING 2-9
- XRL A,R6
- MOV C,ACC.7
- MOV 0,C ;Save SIGN
- MOV A,R2
- CLR ACC.7
- MOV R2,A
- MOV A,R6
- CLR ACC.7
- MOV R6,A
- LCALL NDIV1
- MOV A,R4
- JB ACC.7,IDIVE
- MOV C,0 ;Restore SIGN
- MOV ACC.7,C
- MOV R4,A
- RET
- IDIVE: SETB PSW.5 ;Ouer Flow
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- DMUL: MOV A,R2 ;THIS IS SUBROUTING 2-10
- XRL A,R6
- MOV C,ACC.7
- MOV PSW.5,C
- MOV A,R2
- CLR ACC.7
- MOV R2,A
- MOV A,R6
- CLR ACC.7
- MOV R6,A
- MOV R4,#0
- MOV R5,#0
- MOV R0,#16
- CLR C
- DMLP: MOV A,R4
- RRC A
- MOV R4,A
- MOV A,R5
- RRC A
- MOV R5,A
- MOV A,R6
- RRC A
- MOV R6,A
- MOV A,R7
- RRC A
- MOV R7,A
- JNC DMLN
- MOV A,R5
- ADD A,R3
- MOV R5,A
- MOV A,R4
- ADDC A,R2
- MOV R4,A
- DMLN: DJNZ R0,DMLP
- MOV A,R4
- MOV C,PSW.5
- MOV ACC.7,C
- MOV R4,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- DDIV: MOV A,R2 ;THIS IS SUBROUTING 2-11
- XRL A,R6
- MOV C,ACC.7
- MOV 0,C ;Save SIGN
- MOV A,R2
- CLR ACC.7
- MOV R2,A
- MOV A,R6
- CLR ACC.7
- MOV R6,A
- CLR A
- MOV R4,A
- MOV R5,A
- LCALL NDIV1
- MOV C,0 ;Restore SIGN
- MOV A,R4
- RRC A
- MOV R4,A
- MOV A,R5
- RRC A
- MOV R5,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;THIS IS THE FILE OF NBINT.ASM
- ;
- ;
- NIADD: MOV A,R0 ; THIS IS SUBROUTING 3-1
- MOV R4,A
- MOV A,R3
- MOV R7,A
- CLR C
- SA20: MOV A,@R0
- ADDC A,@R1
- MOV @R0,A
- INC R0
- INC R1
- DJNZ R7,SA20
- CLR A
- MOV ACC.0,C
- MOV @R0,A
- INC R3
- SA21: MOV A,R4
- MOV R0,A
- RET
- ;
- ;
- ;
- NISUB: MOV A, R0 ; THIS IS SUBROUTING 3-2
- MOV R4, A
- MOV A, R3
- MOV R7, A
- CLR C
- SB20: MOV A,@R0
- SUBB A,@R1
- MOV @R0, A
- INC R0
- INC R1
- DJNZ R7,SB20
- MOV A,R4
- MOV R0,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- NIMUL: MOV A,R0 ; THIS IS SUBROUTING 3-3
- MOV R4,A
- MOV A,R3
- MOV R7,A
- MOV A,R1
- MOV R5,A
- SE20: CLR C
- SUBB A,R7
- MOV R6,A
- MOV R1,A
- LCALL SUBD4
- MOV A,R7
- ADD A,R7
- MOV R2,A
- MOV B,#04H
- MUL AB
- SE201: PUSH ACC
- MOV A,R6
- MOV R1,A
- MOV A,R2
- MOV R3,A
- LCALL SUBE4
- JNC SE203
- MOV A,R7
- MOV R3,A
- MOV A,R6
- MOV R0,A
- MOV A,R4
- MOV R1,A
- CLR C
- SE202: MOV A,@R0
- ADDC A,@R1
- MOV @R0,A
- INC R0
- INC R1
- DJNZ R3,SE202
- JNC SE203
- MOV A,R5
- MOV R1,A
- MOV A,R7
- MOV R3,A
- SE204: MOV A,@R1
- ADDC A,#00H
- MOV @R1,A
- JNC SE203
- INC R1
- DJNZ R3,SE204
- SE203: POP ACC
- DEC A
- JNZ SE201
- MOV A,R2
- MOV R3,A
- MOV A,R6
- MOV R0,A
- RET
- SUBD4: CLR A ;N BYTES CLR
- SD40: MOV @R1,A
- INC R1
- DJNZ R3,SD40
- RET
- SUBE4: CLR C
- SE40: MOV A,@R1
- RLC A
- MOV @R1,A
- INC R1
- DJNZ R3,SE40
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- NINORM: SETB C ;; THIS IS SUBROUTING 3-4
- SC40: MOV A,@R1
- CPL A
- ADDC A,#00H
- MOV @R1,A
- INC R1
- DJNZ R3,SC40
- RET
- ;
- ;
- ;
- ;
- ;
- SNIMUL: MOV A,R0 ; THIS IS SUBROUTING 3-5
- MOV R4,A
- MOV A,R1
- MOV R5,A
- MOV A,R3
- MOV R7,A
- DEC A
- MOV R6,A
- ADD A,R4
- MOV R1,A
- MOV A,@R1
- ANL A,#80H
- MOV R2,A
- JZ SF21 ; < 0 SF21
- SETB C
- SF23: MOV A,@R0
- CPL A
- ADDC A,#00H
- MOV @R0,A
- INC R0
- DJNZ R3 ,SF23
- SF21: MOV A,R5
- ADD A,R6
- MOV R1,A
- MOV A,@R1
- ANL A,#80H
- MOV R6,A
- JZ SF22
- MOV A,R5
- MOV R1,A
- MOV A,R7
- MOV R3,A
- SETB C
- SF24: MOV A,@R1
- CPL A
- ADDC A,#00H
- MOV @R1,A
- INC R1
- DJNZ R3,SF24
- SF22: MOV A,R2
- XRL A,R6 ;SIGN > STATION
- PUSH A
- MOV A,R4
- MOV R0,A
- MOV A,R7
- MOV R3,A
- MOV A,R5
- MOV R1,A
- LCALL SE20
- POP ACC
- JZ SF20
- MOV A,R2
- MOV R3,A
- MOV A,R0
- MOV R1,A
- LCALL NINORM
- SF20: MOV A,R2
- MOV R3,A
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- NIZERO: MOV A,@R1 ; THIS IS SUBROUTING 3-6
- JNZ SF40
- INC R1
- DJNZ R3,NIZERO
- SF40: RET
- ;
- ;
- ;
- NIDIV1: MOV A,R0 ; THIS IS SUBROUTING 3-7
- ADD A,R7
- MOV R6,A
- MOV R1,A
- LCALL SUBD4
- MOV A,R7
- ADD A,R7
- MOV R2,A
- MOV B,#04H
- MUL AB
- SA401: PUSH ACC
- CLR C
- MOV A,R2
- MOV R3,A
- MOV A,R4
- MOV R1,A
- LCALL SUBE4
- MOV A,R6
- MOV R0,A
- MOV A,R5
- MOV R1,A
- MOV A,R7
- MOV R3,A
- CLR C
- SA402: MOV A,@R0
- SUBB A,@R1
- PUSH ACC
- INC R0
- INC R1
- DJNZ R3,SA402
- MOV A,R7
- MOV R3,A
- JC SA403
- MOV A,R4
- MOV R0,A
- INC @R0
- MOV A,R6
- ADD A,R7
- DEC A
- MOV R0,A
- SA404: POP ACC
- MOV @R0,A
- DEC R0
- DJNZ R3,SA404
- SJMP SA405
- SA403: POP ACC
- DJNZ R3,SA403
- SA405: POP ACC
- DEC A
- JNZ SA401
- MOV A,R6
- ADD A,R7
- DEC A
- MOV R0,A
- MOV R2,A
- MOV A,@R0
- RLC A
- JC SA407
- MOV A,R6
- MOV R1,A
- MOV A,R7
- MOV R3,A
- LCALL SUBE4
- MOV A,R2
- MOV R0,A
- MOV A,R7
- MOV R3,A
- ADD A,R5
- DEC A
- MOV R1,A
- SA406: CLR C
- MOV A,@R0
- SUBB A,@R1
- JC SA409
- JNZ SA407
- DEC R0
- DEC R1
- DJNZ R3,SA406
- SA407: MOV A,R4
- MOV R1,A
- MOV A,R7
- MOV R3,A
- SA408: MOV A,@R1
- ADD A,#01H
- MOV @R1,A
- JNC SA409
- INC R1
- DJNZ R7,SA408
- SA409: MOV A,R4
- MOV R0,A
- RET
- ;
- ;
- ;
- ;
- ;
- NIDIV2: MOV A,R0 ; THIS IS SUBROUTING 3-8
- MOV R4,A
- MOV A,R1
- MOV R5,A
- MOV A,R3
- MOV R7,A
- LCALL NIZERO
- JZ SA41
- MOV A,R5
- MOV R1,A
- MOV A,R7
- MOV R3,A
- LCALL NIDIV1
- MOV A,#0FFH
- MOV A,R7
- MOV R3,A
- SA41: RET
- ;
- ;
- ;
- ;
- ;
- SNIDIV: MOV A,R0 ; THIS IS SUBROUTING 3-9
- MOV R4,A
- MOV A,R1
- MOV R5,A
- MOV A,R3
- MOV R7,A
- LCALL NIZERO
- JZ SB41
- MOV A,R7
- MOV R3,A
- DEC A
- MOV R6,A
- ADD A,R4
- MOV R1,A
- MOV A,@R1
- ANL A,#80H
- MOV R2,A
- JZ SB42
- SETB C
- SB43: MOV A,@R0
- CPL A
- ADDC A,#00H
- MOV @R0,A
- INC R0
- DJNZ R3,SB43
- SB42: MOV A,R5
- MOV R0,A
- ADD A,R6
- MOV R1,A
- MOV A,@R1
- ANL A,#80H
- MOV R6,A
- JZ SB44
- MOV A,R7
- MOV R3,A
- SETB C
- SB45: MOV A,@R0
- CPL A
- ADDC A,#00H
- MOV @R0,A
- INC R0
- DJNZ R3,SB45
- SB44: MOV A,R6
- XRL A,R2
- PUSH ACC
- MOV A,R4
- MOV R0,A
- MOV A,R5
- MOV R1,A
- MOV A,R7
- MOV R3,A
- LCALL NIDIV1
- POP ACC
- JZ SB40
- MOV A,R0
- MOV R1,A
- MOV A,R7
- MOV R3,A
- LCALL NINORM
- SB40: MOV A,R7
- MOV R3,A
- MOV A,#0FFH
- SB41: RET
- ;
- ;
- ;
- ;