Submitted by Steve Fewell
Description:
Call routine &96DA to get the numeric value (at the current position of the BASIC text pointer) and convert it to a
Floating-Point value (if it was an Integer).
If the FWA sign is positive then jump to &A8AF to calculate the ASN result and exit.
A8A1 | 032 218 150 | 20 DA 96 | JSR &96DA Get and Check Float (convert if Int) | |
A8A4 | . | 165 046 | A5 2E | LDA &2E |
A8A6 | 016 007 | 10 07 | BPL 7 --> &A8AF | |
A8A8 | d. | 100 046 | 64 2E | STZ &2E |
A8AA | 032 175 168 | 20 AF A8 | JSR &A8AF | |
A8AD | # | 128 035 | 80 23 | BRA 35 --> &A8D2 Store A in location &2E (i.e. make result negative) and exit |
A8AF | 032 013 165 | 20 0D A5 | JSR &A50D Store FWA to &0476 and set argp to &0476 | |
A8B2 | ) | 032 041 169 | 20 29 A9 | JSR &A929 |
A8B5 | 1 | 165 049 | A5 31 | LDA &31 |
A8B7 | 240 005 | F0 05 | BEQ 5 --> &A8BE | |
A8B9 | 032 179 165 | 20 B3 A5 | JSR &A5B3 FWA=&0476/FWA & exit with A=#&FF | |
A8BC | 128 008 | 80 08 | BRA 8 --> &A8C6 Calculate ATN result [FWA=ATN(FWA)] | |
A8BE | . | 169 046 | A9 2E | LDA#&2E |
A8C0 | L | 076 150 168 | 4C 96 A8 | JMP &A896 Load FWA with FP constant at &BF00 + A |