Apple II Benutzerhandbuch
39 0003 EA SIGN NOP
40 0004 EA X2 NOP EXPONENT 2
41 0005 00 00 00 M2 BSS 3 MANTISSA 2
41 0005 00 00 00 M2 BSS 3 MANTISSA 2
42 0008 EA X1 NOP EXPONENT 1
43 0009 00 00 00 M1 BSS 3 MANTISSA 1
43 0009 00 00 00 M1 BSS 3 MANTISSA 1
44 000C E BSS 4 SCRATCH
45 0010 Z BSS 4
45 0010 Z BSS 4
46 0014 T BSS 4
47 0018 SEXP BSS 4
47 0018 SEXP BSS 4
48 001C 00 INT BSS 1
49 *
49 *
50 1D00 ORG $1D00 STARTING LOCATION FOR LOG
51 *
51 *
52 * NATURAL LOG OF MANT/EXP1 WITH RESULT IN MANT/EXP1
53 *
53 *
54 1D00 A5 09 LOG LDA M1
55 1D02 F0 02 BEQ ERROR
55 1D02 F0 02 BEQ ERROR
56 1D04 10 01 BPL CONT IF ARG>0 OK
57 1D06 00 ERROR BRK ERROR ARG<=0
57 1D06 00 ERROR BRK ERROR ARG<=0
58 *
59 1D07 20 1C 1F CONT JSR SWAP MOVE ARG TO EXP/MANT2
59 1D07 20 1C 1F CONT JSR SWAP MOVE ARG TO EXP/MANT2
60 1D0A A2 00 LDX =0 MOD 9/76: LOAD X FOR LATER
61 1D0C A5 04 LDA X2 HOLD EXPONENT
61 1D0C A5 04 LDA X2 HOLD EXPONENT
62 1D0E A0 80 LDY =$80
63 1D10 84 04 STY X2 SET EXPONENT 2 TO 0 ($80)
63 1D10 84 04 STY X2 SET EXPONENT 2 TO 0 ($80)
64 1D12 49 80 EOR =$80 COMPLIMENT SIGN BIT OF ORIGINAL EXPONENT
65 1D14 85 0A STA M1+1 SET EXPONENT INTO MANTISSA 1 FOR FLOAT
65 1D14 85 0A STA M1+1 SET EXPONENT INTO MANTISSA 1 FOR FLOAT
66 1D16 10 01 BPL *+3 MOD 9/76: IS EXPONENT ZERO?
67 1D18 CA DEX MOD 9/76: YES SET X TO $FF
67 1D18 CA DEX MOD 9/76: YES SET X TO $FF
68 1D19 86 09 STX M1 MOD 9/76: SET UPPER BYTE OF EXPONENT
69 1D1B 20 2C 1F JSR FLOAT CONVERT TO FLOATING POINT
69 1D1B 20 2C 1F JSR FLOAT CONVERT TO FLOATING POINT
70 1D1E A2 03 LDX =3 4 BYTE TRANSFERS
71 1D20 B5 04 SEXP1 LDA X2,X
71 1D20 B5 04 SEXP1 LDA X2,X
72 1D22 95 10 STA Z,X COPY MANTISSA TO Z
73 1D24 B5 08 LDA X1,X
73 1D24 B5 08 LDA X1,X
74 1D26 95 18 STA SEXP,X SAVE EXPONENT IN SEXP
75 1D28 BD D4 1D LDA R22,X LOAD EXP/MANT1 WITH SQRT(2)
75 1D28 BD D4 1D LDA R22,X LOAD EXP/MANT1 WITH SQRT(2)
76 1D2B 95 08 STA X1,X
77 1D2D CA DEX
77 1D2D CA DEX
78 1D2E 10 F0 BPL SEXP1
79 1D30 20 4A 1F JSR FSUB Z-SQRT(2)
79 1D30 20 4A 1F JSR FSUB Z-SQRT(2)
80 1D33 A2 03 LDX =3 4 BYTE TRANSFER
81 1D35 B5 08 SAVET LDA X1,X SAVE EXP/MANT1 AS T
81 1D35 B5 08 SAVET LDA X1,X SAVE EXP/MANT1 AS T
82 1D37 95 14 STA T,X
83 1D39 B5 10 LDA Z,X LOAD EXP/MANT1 WITH Z
83 1D39 B5 10 LDA Z,X LOAD EXP/MANT1 WITH Z
84 1D3B 95 08 STA X1,X
85 1D3D BD D4 1D LDA R22,X LOAD EXP/MANT2 WITH SQRT(2)
85 1D3D BD D4 1D LDA R22,X LOAD EXP/MANT2 WITH SQRT(2)
86 1D40 95 04 STA X2,X
87 1D42 CA DEX
87 1D42 CA DEX
88 1D43 10 F0 BPL SAVET
89 1D45 20 50 1F JSR FADD Z+SQRT(2)
89 1D45 20 50 1F JSR FADD Z+SQRT(2)
90 1D48 A2 03 LDX =3 4 BYTE TRANSFER
91 1D4A B5 14 TM2 LDA T,X
91 1D4A B5 14 TM2 LDA T,X
92 1D4C 95 04 STA X2,X LOAD T INTO EXP/MANT2
93 1D4E CA DEX
93 1D4E CA DEX
94 1D4F 10 F9 BPL TM2
95 1D51 20 9D 1F JSR FDIV T=(Z-SQRT(2))/(Z+SQRT(2))
95 1D51 20 9D 1F JSR FDIV T=(Z-SQRT(2))/(Z+SQRT(2))
96 1D54 A2 03 LDX =3 4 BYTE TRANSFER
97 1D56 B5 08 MIT LDA X1,X
97 1D56 B5 08 MIT LDA X1,X
98 1D58 95 14 STA T,X COPY EXP/MANT1 TO T AND
99 1D5A 95 04 STA X2,X LOAD EXP/MANT2 WITH T
99 1D5A 95 04 STA X2,X LOAD EXP/MANT2 WITH T
100 1D5C CA DEX