Apple ii Battery Charger User Manual


 
* WHEN THE NUMBER IS LESS THAN 2**(-128).
*
* EXPONENT: THE EXPONENT REPRESENTS POWERS OF TWO. THE
* REPRESENTATION IS 2'S COMPLIMENT EXCEPT THAT THE SIGN
* BIT (BIT 7) IS COMPLIMENTED. THIS ALLOWS DIRECT COMPARISON
* OF EXPONENTS FOR SIZE SINCE THEY ARE STORED IN INCREASING
* NUMERICAL SEQUENCE RANGING FROM $00 (-128) TO $FF (+127)
* ($ MEANS NUMBER IS HEXADECIMAL).
*
* REPRESENTATION OF DECIMAL NUMBERS: THE PRESENT FLOATING
* POINT REPRESENTATION ALLOWS DECIMAL NUMBERS IN THE APPROXIMATE
* RANGE OF 10**(-38) THROUGH 10**(38) WITH 6 TO 7 SIGNIFICANT
* DIGITS.
*
*
0003 ORG 3 SET BASE PAGE ADRESSES
0003 EA SIGN NOP
0004 EA X2 NOP EXPONENT 2
0005 00 00 00 M2 BSS 3 MANTISSA 2
0008 EA X1 NOP EXPONENT 1
0009 00 00 00 M1 BSS 3 MANTISSA 1
000C E BSS 4 SCRATCH
0010 Z BSS 4
0014 T BSS 4
0018 SEXP BSS 4
001C 00 INT BSS 1
*
1D00 ORG $1D00 STARTING LOCATION FOR LOG
*
*
* NATURAL LOG OF MANT/EXP1 WITH RESULT IN MANT/EXP1
*
1D00 A5 09 LOG LDA M1
1D02 F0 02 BEQ ERROR
1D04 10 01 BPL CONT IF ARG>0 OK
1D06 00 ERROR BRK ERROR ARG<=0
*
1D07 20 1C 1F CONT JSR SWAP MOVE ARG TO EXP/MANT2
1D0A A5 04 LDA X2 HOLD EXPONENT
1D0C A0 80 LDY =$80
1D0E 84 04 STY X2 SET EXPONENT 2 TO 0 ($80)
1D10 49 80 EOR =$80 COMPLIMENT SIGN BIT OF ORIGINAL EXPONENT
1D12 85 0A STA M1+1 SET EXPONENT INTO MANTISSA 1 FOR FLOAT
1D14 A9 00 LDA =0
1D16 85 09 STA M1 CLEAR MSB OF MANTISSA 1
1D18 20 2C 1F JSR FLOAT CONVERT TO FLOATING POINT
1D1B A2 03 LDX =3 4 BYTE TRANSFERS
1D1D B5 04 SEXP1 LDA X2,X
1D1F 95 10 STA Z,X COPY MANTISSA TO Z
1D21 B5 08 LDA X1,X
1D23 95 18 STA SEXP,X SAVE EXPONENT IN SEXP
1D25 BD D1 1D LDA R22,X LOAD EXP/MANT1 WITH SQRT(2)
1D28 95 08 STA X1,X
1D2A CA DEX
1D2B 10 F0 BPL SEXP1
1D2D 20 4A 1F JSR FSUB Z-SQRT(2)
1D30 A2 03 LDX =3 4 BYTE TRANSFER
1D32 B5 08 SAVET LDA X1,X SAVE EXP/MANT1 AS T
1D34 95 14 STA T,X
1D36 B5 10 LDA Z,X LOAD EXP/MANT1 WITH Z
1D38 95 08 STA X1,X
1D3A BD D1 1D LDA R22,X LOAD EXP/MANT2 WITH SQRT(2)