279 1ED7 60 RTS RETURN ANS=(.5+Z/(-Z+D+C2*Z*Z-
B2/(Z*Z+A2))*2**(INT+1)
280 1ED8 80 5C L2E DCM 1.4426950409 LOG BASE 2 OF E
55 1E
281 1EDC 86 57 A2 DCM 87.417497202
6A E1
282 1EE0 89 4D B2 DCM 617.9722695
3F 1D
283 1EE4 7B 46 C2 DCM .03465735903
4A 70
284 1EE8 83 4F D DCM 9.9545957821
A3 03
285 *
286 *
287 * BASIC FLOATING POINT ROUTINES
288 *
289 1F00 ORG $1F00 START OF BASIC FLOATING POINT ROUTINES
290 1F00 18 ADD CLC CLEAR CARRY
291 1F01 A2 02 LDX =$02 INDEX FOR 3-BYTE ADD
292 1F03 B5 09 ADD1 LDA M1,X
293 1F05 75 05 ADC M2,X ADD A BYTE OF MANT2 TO MANT1
294 1F07 95 09 STA M1,X
295 1F09 CA DEX ADVANCE INDEX TO NEXT MORE SIGNIF.BYTE
296 1F0A 10 F7 BPL ADD1 LOOP UNTIL DONE.
297 1F0C 60 RTS RETURN
298 1F0D 06 03 MD1 ASL SIGN CLEAR LSB OF SIGN
299 1F0F 20 12 1F JSR ABSWAP ABS VAL OF MANT1, THEN SWAP MANT2
300 1F12 24 09 ABSWAP BIT M1 MANT1 NEG?
301 1F14 10 05 BPL ABSWP1 NO,SWAP WITH MANT2 AND RETURN
302 1F16 20 8F 1F JSR FCOMPL YES, COMPLIMENT IT.
303 1F19 E6 03 INC SIGN INCR SIGN, COMPLEMENTING LSB
304 1F1B 38 ABSWP1 SEC SET CARRY FOR RETURN TO MUL/DIV
305 *
306 * SWAP EXP/MANT1 WITH EXP/MANT2
307 *
308 1F1C A2 04 SWAP LDX =$04 INDEX FOR 4-BYTE SWAP.
309 1F1E 94 0B SWAP1 STY E-1,X
310 1F20 B5 07 LDA X1-1,X SWAP A BYTE OF EXP/MANT1 WITH
311 1F22 B4 03 LDY X2-1,X EXP/MANT2 AND LEAVEA COPY OF
312 1F24 94 07 STY X1-1,X MANT1 IN E(3BYTES). E+3 USED.
313 1F26 95 03 STA X2-1,X
314 1F28 CA DEX ADVANCE INDEX TO NEXT BYTE
315 1F29 D0 F3 BNE SWAP1 LOOP UNTIL DONE.
316 1F2B 60 RTS
317 *
318 *
319 *
320 * CONVERT 16 BIT INTEGER IN M1(HIGH) AND M1+1(LOW) TO F.P.
321 * RESULT IN EXP/MANT1. EXP/MANT2 UNEFFECTED
322 *
323 *
324 1F2C A9 8E FLOAT LDA =$8E
325 1F2E 85 08 STA X1 SET EXPN TO 14 DEC
326 1F30 A9 00 LDA =0 CLEAR LOW ORDER BYTE
327 1F32 85 0B STA M1+2
328 1F34 F0 08 BEQ NORM NORMALIZE RESULT
329 1F36 C6 08 NORM1 DEC X1 DECREMENT EXP1
330 1F38 06 0B ASL M1+2
331 1F3A 26 0A ROL M1+1 SHIFT MANT1 (3 BYTES) LEFT
332 1F3C 26 09 ROL M1
333 1F3E A5 09 NORM LDA M1 HIGH ORDER MANT1 BYTE
334 1F40 0A ASL UPPER TWO BITS UNEQUAL?