Prev: E264 Up: Map Next: E2B4
E26B: perform SIN()
Used by the routine at E2B4.
E26B 20 0C BC JSR $BC0C round and copy FAC1 to FAC2
E26E A9 E5 LDA #$E5 set 2*pi pointer low byte
E270 A0 E2 LDY #$E2 set 2*pi pointer high byte
E272 A6 6E LDX $6E get FAC2 sign (b7)
E274 20 07 BB JSR $BB07 divide by (AY) (X=sign)
E277 20 0C BC JSR $BC0C round and copy FAC1 to FAC2
E27A 20 CC BC JSR $BCCC perform INT()
E27D A9 00 LDA #$00 clear byte
E27F 85 6F STA $6F clear sign compare (FAC1 EOR FAC2)
E281 20 53 B8 JSR $B853 perform subtraction, FAC2 from FAC1
E284 A9 EA LDA #$EA set 0.25 pointer low byte
E286 A0 E2 LDY #$E2 set 0.25 pointer high byte
E288 20 50 B8 JSR $B850 perform subtraction, FAC1 from (AY)
E28B A5 66 LDA $66 get FAC1 sign (b7)
E28D 48 PHA save FAC1 sign
E28E 10 0D BPL $E29D branch if +ve
FAC1 sign was -ve
E290 20 49 B8 JSR $B849 add 0.5 to FAC1 (round FAC1)
E293 A5 66 LDA $66 get FAC1 sign (b7)
E295 30 09 BMI $E2A0 branch if -ve
E297 A5 12 LDA $12 get the comparison evaluation flag
E299 49 FF EOR #$FF toggle flag
E29B 85 12 STA $12 save the comparison evaluation flag
This entry point is used by the routine at E2DC.
E29D 20 B4 BF JSR $BFB4 do - FAC1
E2A0 A9 EA LDA #$EA set 0.25 pointer low byte
E2A2 A0 E2 LDY #$E2 set 0.25 pointer high byte
E2A4 20 67 B8 JSR $B867 add (AY) to FAC1
E2A7 68 PLA restore FAC1 sign
E2A8 10 03 BPL $E2AD branch if was +ve
else correct FAC1
E2AA 20 B4 BF JSR $BFB4 do - FAC1
E2AD A9 EF LDA #$EF set pointer low byte to counter
E2AF A0 E2 LDY #$E2 set pointer high byte to counter
E2B1 4C 43 E0 JMP $E043 ^2 then series evaluation and return
Prev: E264 Up: Map Next: E2B4