Apple ii Battery Charger User Manual


 
1EBB 95 04 STA X2,X LOAD EXP/MANT2 WITH Z
1EBD CA DEX
1EBE 10 F9 BPL LF3
1EC0 20 9D 1F JSR FDIV Z/(**** )
1EC3 A2 03 LDX =3 4 BYTE TRANSFER
1EC5 BD E5 1D LD12 LDA MHLF,X
1EC8 95 04 STA X2,X LOAD EXP/MANT2 WITH .5
1ECA CA DEX
1ECB 10 F8 BPL LD12
1ECD 20 50 1F JSR FADD +Z/(***)+.5
1ED0 38 SEC ADD INT TO EXPONENT WITH CARRY SET
1ED1 A5 1C LDA INT TO MULTIPLY BY
1ED3 65 08 ADC X1 2**(INT+1)
1ED5 85 08 STA X1 RETURN RESULT TO EXPONENT
1ED7 60 RTS RETURN ANS=(.5+Z/(-Z+D+C2*Z*Z-B2/(Z*Z+A2))*2**(INT+1)
1ED8 80 5C L2E DCM 1.4426950409 LOG BASE 2 OF E
55 1E
1EDC 86 57 A2 DCM 87.417497202
6A E1
1EE0 89 4D B2 DCM 617.9722695
3F 1D
1EE4 7B 46 C2 DCM .03465735903
FA 70
1EE8 83 4F D DCM 9.9545957821
A3 03
*
*
* BASIC FLOATING POINT ROUTINES
*
1F00 ORG $1F00 START OF BASIC FLOATING POINT ROUTINES
1F00 18 ADD CLC CLEAR CARRY
1F01 A2 02 LDX =$02 INDEX FOR 3-BYTE ADD
1F03 B5 09 ADD1 LDA M1,X
1F05 75 05 ADC M2,X ADD A BYTE OF MANT2 TO MANT1
1F07 95 09 STA M1,X
1F09 CA DEX ADVANCE INDEX TO NEXT MORE SIGNIF.BYTE
1F0A 10 F7 BPL ADD1 LOOP UNTIL DONE.
1F0C 60 RTS RETURN
1F0D 06 03 MD1 ASL SIGN CLEAR LSB OF SIGN
1F0F 20 12 1F JSR ABSWAP ABS VAL OF MANT1, THEN SWAP MANT2
1F12 24 09 ABSWAP BIT M1 MANT1 NEG?
1F14 10 05 BPL ABSWP1 NO,SWAP WITH MANT2 AND RETURN
1F16 20 8F 1F JSR FCOMPL YES, COMPLIMENT IT.
1F19 E6 03 INC SIGN INCR SIGN, COMPLEMENTING LSB
1F1B 38 ABSWP1 SEC SET CARRY FOR RETURN TO MUL/DIV
*
* SWAP EXP/MANT1 WITH EXP/MANT2
*
1F1C A2 04 SWAP LDX =$04 INDEX FOR 4-BYTE SWAP.
1F1E 94 0B SWAP1 STY E-1,X
1F20 B5 07 LDA X1-1,X SWAP A BYTE OF EXP/MANT1 WITH
1F22 B4 03 LDY X2-1,X EXP/MANT2 AND LEAVEA COPY OF
1F24 94 07 STY X1-1,X MANT1 IN E(3BYTES). E+3 USED.
1F26 95 03 STA X2-1,X
1F28 CA DEX ADVANCE INDEX TO NEXT BYTE
1F29 D0 F3 BNE SWAP1 LOOP UNTIL DONE.
1F2B 60 RTS
*
*
*
* CONVERT 16 BIT INTEGER IN M1(HIGH) AND M1+1(LOW) TO F.P.
* RESULT IN EXP/MANT1. EXP/MANT2 UNEFFECTED