Apple ii Battery Charger User Manual


 
* COMMON LOG OF MANT/EXP1 RESULT IN MANT/EXP1
*
1DBC 20 00 1D LOG10 JSR LOG COMPUTE NATURAL LOG
1DBF A2 03 LDX =3
1DC1 BD CD 1D L10 LDA LN10,X
1DC4 95 04 STA X2,X LOAD EXP/MANT2 WITH 1/LN(10)
1DC6 CA DEX
1DC7 10 F8 BPL L10
1DC9 20 77 1F JSR FMUL LOG10(X)=LN(X)/LN(10)
1DCC 60 RTS
*
1DCD 7E 6F LN10 DCM 0.4342945
2D ED
1DD1 80 5A R22 DCM 1.4142136 SQRT(2)
02 7A
1DD5 7F 58 LE2 DCM 0.69314718 LOG BASE E OF 2
B9 0C
1DD9 80 52 A1 DCM 1.2920074
80 40
1DDD 81 AB MB DCM -2.6398577
86 49
1DE1 80 6A C DCM 1.6567626
08 66
1DE5 7F 40 MHLF DCM 0.5
00 00
*
1E00 ORG $1E00 STARTING LOCATION FOR EXP
*
* EXP OF MANT/EXP1 RESULT IN MANT/EXP1
*
1E00 A2 03 EXP LDX =3 4 BYTE TRANSFER
1E02 BD D8 1E LDA L2E,X
1E05 95 04 STA X2,X LOAD EXP/MANT2 WITH LOG BASE 2 OF E
1E07 CA DEX
1E08 10 F8 BPL EXP+2
1E0A 20 77 1F JSR FMUL LOG2(3)*X
1E0D A2 03 LDX =3 4 BYTE TRANSFER
1E0F B5 08 FSA LDA X1,X
1E11 95 10 STA Z,X STORE EXP/MANT1 IN Z
1E13 CA DEX
1E14 10 F9 BPL FSA SAVE Z=LN(2)*X
1E16 20 E8 1F JSR FIX CONVERT CONTENTS OF EXP/MANT1 TO AN INTEGER
1E19 A5 0A LDA M1+1
1E1B 85 1C STA INT SAVE RESULT AS INT
1E1D 38 SEC SET CARRY FOR SUBTRACTION
1E1E E9 7C SBC =124 INT-124
1E20 A5 09 LDA M1
1E22 E9 00 SBC =0
1E24 10 15 BPL OVFLW OVERFLOW INT>=124
1E26 18 CLC CLEAR CARRY FOR ADD
1E27 A5 0A LDA M1+1
1E29 69 78 ADC =120 ADD 120 TO INT
1E2B A5 09 LDA M1
1E2D 69 00 ADC =0
1E2F 10 0B BPL CONTIN IF RESULT POSITIVE CONTINUE
1E31 A9 00 LDA =0 INT<-120 SET RESULT TO ZERO AND RETURN
1E33 A2 03 LDX =3 4 BYTE MOVE
1E35 95 08 ZERO STA X1,X SET EXP/MANT1 TO ZERO
1E37 CA DEX
1E38 10 FB BPL ZERO
1E3A 60 RTS RETURN
*