home *** CD-ROM | disk | FTP | other *** search
- find qsintable not iftrue include qst ifend
- \
- \ nearly the fastest sins in town - fixed point of course...
- \ I use long words but if i didn't care about minor inaccuracies,
- \ I could use shorties instead. I just want to aim and shoot.
- \
- anew qsinx.spot
- \
- Hex
- ?Align4
- \
- Create Qsin -4 allot
- 2017 W, \ D0 Get,
- 0240 W, \ D0 3FF Word AndI,
- 03FF W,
- E548 W, \ D0 2 # Word Lsl,
- 41FA W, \ ' QsinTable PcI) A0 Long Lea,
- ' QsinTable here - ( EDD4 ) W,
- 2230 W, \ D0 00 Word A0 @I) D1 Long Move,
- 0000 W,
- 2E81 W, \ D1 Put,
- 361A W, \ Next
- 4EF6 W,
- 3018 W,
- \
- Create Qcos -4 allot
- 2017 W, \ D0 Get,
- 0640 W, \ D0 100 Word Addi,
- 0100 W,
- 0240 W, \ D0 3FF Word AndI,
- 03FF W,
- E548 W, \ D0 2 # word Asl,
- 41FA W, \ ' QsinTable PcI) A0 Long Lea,
- ' QsinTable here - ( EDB4 ) W,
- 2230 W, \ D0 00 Word A0 @I) D1 Long Move,
- 0000 W,
- 2E81 W, \ D1 Put,
- 361A W, \ Next
- 4EF6 W,
- 3018 W,
- \
- Create QsinCos -4 allot
- 2017 W, \ D0 Get,
- 0240 W, \ D0 3FF word AndI,
- 03FF W,
- E548 W, \ D0 2 # word Asl,
- 41FA W, \ ' QsinTable PcI) A0 Long Lea,
- ' QsinTable here - ( EDD4 ) W,
- 2230 W, \ D0 00 Word A0 @I) D1 Long Move,
- 0000 W,
- 2E81 W, \ D1 Put,
- 0640 w, \ d0 400 word addi,
- 0400 w,
- 0240 w, \ d0 fff word andi,
- 0FFF w,
- 2230 w, \ d0 00 word a0 @i) d1 long move,
- 0000 w,
- 2F01 w, \ d1 push,
- 361A W, \ Next
- 4EF6 W,
- 3018 W,
- \
- \ it turns out that MULS is twice as efficient as phase/multiplied sins!
- \
- Create XqSin -4 Allot
- 201F w, \ D0 Pop,
- 2217 w, \ D1 Get,
- 0240 w, \ d0 03ff word Andi,
- 03FF w,
- E548 w, \ d0 2 # LSL,
- 41FA w, \ ' Qsintable pci) A0 Long Lea,
- ' Qsintable Here - w,
- 2430 w, \ d0 00 Word a0 @I) D2 Long Move,
- 0000 w,
- E282 w, \ d2 1 # long asr,
- 4881 w, \ d1 byte Ext,
- 48C1 w, \ d1 Word Ext,
- C5C1 w, \ d1 d2 Muls,
- EC82 w, \ d2 6 # Long Asr,
- 2E82 w, \ D2 Put,
- 361A w, \ Next
- 4EF6 w,
- 3018 w,
- \
- Decimal
- : Xqcos
- 256 + Xqsin
- ;
- ." Qsins are in.." cr
-