author: Cruzer/Camelot, Tebe/Madteam
https://codebase64.org/doku.php?id=base:6502_6510_maths https://dwheeler.com/6502/oneelkruns/asm1step.html
name: | value: | description: |
---|---|---|
atan_tab: array [0..255] of byte | ( | atan(2^(x/32))*128/pi |
log2_tab : array [0..255] of byte | ( | log2(x)*32 |
octant_adjust : array [0..7] of byte | ( |
name: | description: |
---|---|
atan2 | function atan2(x1,x2,y1,y2: byte): byte; assembler;Calculate the angle, in a 256-degree circle, between two points. The trick is to use logarithmic division to get the y/x ratio and integrate the power function into the atan table. Some branching is avoided by using a table to adjust for the octants. In otherwords nothing new or particularily clever but nevertheless quite useful. by Johan Forslöf (doynax) https://codebase64.org/doku.php?id=base:8bit_atan2_8-bit_angle
parameters: |
sqrt16 | function sqrt16(a: word): byte; assembler;Returns the 8-bit square root of the 16-bit number. https://codebase64.org/doku.php?id=base:16bit_and_24bit_sqrt
parameters: |
FillSin | procedure FillSin(p: pointer; eor,add: byte); assembler;https://codebase64.org/doku.php?id=base:generating_approximate_sines_in_assembly |
FillSinLow | procedure FillSinLow(p: pointer);Sine value table ($7f, $08)
parameters: |
FillSinHigh | procedure FillSinHigh(p: pointer);Sine value table ($ff, $10)
parameters: |