home *** CD-ROM | disk | FTP | other *** search
- ;
- ; 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
- ;
- ;
- ;
- ;
- ;
- ;