home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
067.lha
/
Drw
/
qsin
< prev
next >
Wrap
Text File
|
1986-11-20
|
2KB
|
90 lines
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