mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-09 21:37:31 +00:00
Using reciprocal multiplication for divisions inside loop.
This commit is contained in:
parent
d3070fec14
commit
db603554ac
@ -2,17 +2,18 @@
|
||||
// Uses a single division for converting the wavelength to a reciprocal.
|
||||
// Generates sinus using the series sin(x) = x - x^/3! + x^-5! - x^7/7! ...
|
||||
// Uses the approximation sin(x) = x - x^/6 + x^/128
|
||||
// Uses reciprocal
|
||||
// Optimization possibility: Generate sinus value over the interval 0-PI/2 and uses mirroring to get the remaining values
|
||||
// Optimization possibility: Use symmetries when generating sinustables. wavelength%2==0 -> mirror symmetry over PI, wavelength%4==0 -> mirror symmetry over PI/2.
|
||||
|
||||
import "division.kc"
|
||||
import "multiply.kc"
|
||||
import "print.kc"
|
||||
|
||||
void main() {
|
||||
asm { sei }
|
||||
print_cls();
|
||||
signed word[20] sintab;
|
||||
sin16s_gen(sintab, 20);
|
||||
asm { cli }
|
||||
//for(byte i=0; i<20*2; i=i+2) {
|
||||
// print_byte(i);
|
||||
// print_str(" @");
|
||||
@ -21,67 +22,56 @@ void main() {
|
||||
//}
|
||||
}
|
||||
|
||||
// PI*2 in u[4.12] format
|
||||
const word PI2_u4f12 = $6488;
|
||||
// PI in u[4.12] format
|
||||
const word PI_u4f12 = $3244;
|
||||
// PI/2 in u[4.12] format
|
||||
const word PI_HALF_u4f12 = $1922;
|
||||
// PI*2 in u[4.28] format
|
||||
const dword PI2_u4f28 = $6487ed51;
|
||||
// PI in u[4.28] format
|
||||
const dword PI_u4f28 = $3243f6a9;
|
||||
// PI/2 in u[4.28] format
|
||||
const dword PI_HALF_u4f28 = $1921FB54;
|
||||
|
||||
// Generate signed word sinus table
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
void sin16s_gen(signed word* sintab, word wavelength) {
|
||||
// PI/4 in 0.16 in [0.16] format
|
||||
//const word PI_QUARTER = $c910;
|
||||
// 2*PI in [16.16] format
|
||||
//const dword PI2 = $6487f;
|
||||
// 2*PI in [4.12] format
|
||||
const word PI2 = $6488;
|
||||
|
||||
// PI*2 in [4.28] format
|
||||
const dword PI2_u4f28 = $6487ed51;
|
||||
// PI in [4.28] format
|
||||
const dword PI_u4f28 = $3243f6a9;
|
||||
// PI/2 in [4.28] format
|
||||
const dword PI_HALF_u4f28 = $1921FB54;
|
||||
// PI*2 in [4.12] format
|
||||
const word PI2_u4f12 = $6488;
|
||||
// PI in [4.12] format
|
||||
const word PI_u4f12 = $3244;
|
||||
// PI/2 in [4.12] format
|
||||
const word PI_HALF_u4f12 = $1922;
|
||||
// Another possible approximation - PI = 355/113
|
||||
//word pi2_i = divr16u(2*355, 113, 0);
|
||||
//word pi2_f = divr16u(0, 113, rem16u);
|
||||
//dword pi2 = { pi2_i, pi2_f };
|
||||
|
||||
// Calculate step in [4.24]
|
||||
word stepi = divr16u(PI2, wavelength, 0);
|
||||
// u[4.12] step = PI*2/wavelength
|
||||
word stepi = divr16u(PI2_u4f12, wavelength, 0);
|
||||
word stepf = divr16u(0, wavelength, rem16u);
|
||||
dword step = { stepi, stepf };
|
||||
print_str("2*pi @");
|
||||
print_word(PI2);
|
||||
print_ln();
|
||||
print_str("step @");
|
||||
print_dword(step);
|
||||
print_ln();
|
||||
|
||||
dword step = { stepi, stepf }; // u[4.12]
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
// u[0.16] div6 = 1/6 ;
|
||||
//divr16u(1, 6, 0);
|
||||
//word div6 = divr16u(0, 6, rem16u);
|
||||
// u[0.16] div6 = 1/6 ;
|
||||
word div6 = $10000/6; //$2aab;
|
||||
// u[0.16] div128 = 1/128 ;
|
||||
word div128 = $10000/128; //$0200;
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
word x1 = >x;
|
||||
// Move x1 into the range 0-PI/2 using sinus mirror symmetries
|
||||
word x1 = >x; // u[4.12]
|
||||
byte isUpper = 0;
|
||||
if(x1>= PI_u4f12 ) {
|
||||
if(x1 >= PI_u4f12 ) {
|
||||
x1 = x1-PI_u4f12;
|
||||
isUpper = 1;
|
||||
}
|
||||
if(x1>= PI_HALF_u4f12 ) {
|
||||
if(x1 >= PI_HALF_u4f12 ) {
|
||||
x1 = PI_u4f12 - x1;
|
||||
}
|
||||
|
||||
// sinx = x - x3/6 + x5/128;
|
||||
// s[4.12] sinx = x - x^3/6 + x5/128;
|
||||
word x2 = mul_u4f12(x1, x1); // u[4.12]
|
||||
word x3 = mul_u4f12(x2, x1); // u[4.12]
|
||||
word x4 = mul_u4f12(x3, x1); // u[4.12]
|
||||
word x5 = mul_u4f12(x4, x1); // u[4.12]
|
||||
word x3_6i = divr16u(x3, 6, 0); // u[4.12]
|
||||
word x5_128i = divr16u(x5, 128, 0); // u[4.12]
|
||||
word usinx = x1 - x3_6i + x5_128i; // u[4.12]
|
||||
|
||||
signed word sinx = (signed word)usinx;
|
||||
word x3_6 = >mul16u(x3, div6);
|
||||
word x5_128 = >mul16u(x5, div128); // u[4.12]
|
||||
word usinx = x1 - x3_6 + x5_128; // u[4.12]
|
||||
signed word sinx = (signed word)usinx; // s[4.12]
|
||||
if(isUpper!=0) {
|
||||
sinx = -sinx;
|
||||
}
|
||||
@ -94,9 +84,9 @@ void sin16s_gen(signed word* sintab, word wavelength) {
|
||||
print_str(" @");
|
||||
print_word(x1);
|
||||
print_str(" @");
|
||||
print_word(x3);
|
||||
print_word(x3_6);
|
||||
print_str(" @");
|
||||
print_word(x5);
|
||||
print_word(x5_128);
|
||||
print_str(" @");
|
||||
print_sword(sinx);
|
||||
print_ln();
|
||||
|
@ -2,32 +2,38 @@
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.label SCREEN = $400
|
||||
.label rem16u = $12
|
||||
.const PI2_u4f12 = $6488
|
||||
.const PI_u4f12 = $3244
|
||||
.const PI_HALF_u4f12 = $1922
|
||||
.label rem16u = 8
|
||||
.label char_cursor = $12
|
||||
.label line_cursor = $e
|
||||
jsr main
|
||||
main: {
|
||||
sei
|
||||
jsr print_cls
|
||||
jsr sin16s_gen
|
||||
cli
|
||||
rts
|
||||
sintab: .fill $28, 0
|
||||
}
|
||||
sin16s_gen: {
|
||||
.const wavelength = $14
|
||||
.const PI2 = $6488
|
||||
.const PI_u4f12 = $3244
|
||||
.const PI_HALF_u4f12 = $1922
|
||||
.label _21 = $26
|
||||
.label stepi = 6
|
||||
.const div6 = $10000/6
|
||||
.const div128 = $10000/$80
|
||||
.label _15 = $14
|
||||
.label _17 = $14
|
||||
.label _19 = $c
|
||||
.label stepi = $e
|
||||
.label stepf = $c
|
||||
.label step = $20
|
||||
.label step = $1c
|
||||
.label x1 = $a
|
||||
.label x2 = $16
|
||||
.label x3 = $24
|
||||
.label x4 = $16
|
||||
.label x5 = $16
|
||||
.label x3_6i = $26
|
||||
.label x5_128i = $c
|
||||
.label x2 = $10
|
||||
.label x3 = $20
|
||||
.label x4 = $10
|
||||
.label x5 = $22
|
||||
.label x3_6 = $20
|
||||
.label x5_128 = $22
|
||||
.label usinx = $c
|
||||
.label sintab = 6
|
||||
.label x = 2
|
||||
@ -37,9 +43,9 @@ sin16s_gen: {
|
||||
sta divr16u.divisor
|
||||
lda #>wavelength
|
||||
sta divr16u.divisor+1
|
||||
lda #<PI2
|
||||
lda #<PI2_u4f12
|
||||
sta divr16u.dividend
|
||||
lda #>PI2
|
||||
lda #>PI2_u4f12
|
||||
sta divr16u.dividend+1
|
||||
lda #<0
|
||||
sta divr16u.rem
|
||||
@ -66,43 +72,13 @@ sin16s_gen: {
|
||||
lda stepf+1
|
||||
sta step+1
|
||||
lda #<SCREEN
|
||||
sta char_cursor
|
||||
lda #>SCREEN
|
||||
sta char_cursor+1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #<PI2
|
||||
sta print_word.w
|
||||
lda #>PI2
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<SCREEN
|
||||
sta line_cursor
|
||||
lda #>SCREEN
|
||||
sta line_cursor+1
|
||||
jsr print_ln
|
||||
lda line_cursor
|
||||
lda #<SCREEN
|
||||
sta char_cursor
|
||||
lda line_cursor+1
|
||||
lda #>SCREEN
|
||||
sta char_cursor+1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda step
|
||||
sta print_dword.dw
|
||||
lda step+1
|
||||
sta print_dword.dw+1
|
||||
lda step+2
|
||||
sta print_dword.dw+2
|
||||
lda step+3
|
||||
sta print_dword.dw+3
|
||||
jsr print_dword
|
||||
jsr print_ln
|
||||
lda #<0
|
||||
sta i
|
||||
sta i+1
|
||||
@ -134,10 +110,10 @@ sin16s_gen: {
|
||||
lda x1+1
|
||||
sbc #>PI_u4f12
|
||||
sta x1+1
|
||||
ldy #1
|
||||
ldx #1
|
||||
jmp b2
|
||||
b5:
|
||||
ldy #0
|
||||
ldx #0
|
||||
b2:
|
||||
lda x1+1
|
||||
cmp #>PI_HALF_u4f12
|
||||
@ -171,48 +147,51 @@ sin16s_gen: {
|
||||
sta mul_u4f12.v1+1
|
||||
jsr mul_u4f12
|
||||
jsr mul_u4f12
|
||||
lda mul_u4f12.return
|
||||
sta x5
|
||||
lda mul_u4f12.return+1
|
||||
sta x5+1
|
||||
lda x3
|
||||
sta divr16u.dividend
|
||||
sta mul16u.a
|
||||
lda x3+1
|
||||
sta divr16u.dividend+1
|
||||
lda #<6
|
||||
sta divr16u.divisor
|
||||
lda #>6
|
||||
sta divr16u.divisor+1
|
||||
sta divr16u.rem
|
||||
sta divr16u.rem+1
|
||||
jsr divr16u
|
||||
lda divr16u.return
|
||||
sta x3_6i
|
||||
lda divr16u.return+1
|
||||
sta x3_6i+1
|
||||
sta mul16u.a+1
|
||||
lda #<div6
|
||||
sta mul16u.b
|
||||
lda #>div6
|
||||
sta mul16u.b+1
|
||||
jsr mul16u
|
||||
lda _15+2
|
||||
sta x3_6
|
||||
lda _15+3
|
||||
sta x3_6+1
|
||||
lda x5
|
||||
sta divr16u.dividend
|
||||
sta mul16u.a
|
||||
lda x5+1
|
||||
sta divr16u.dividend+1
|
||||
lda #<$80
|
||||
sta divr16u.divisor
|
||||
lda #>$80
|
||||
sta divr16u.divisor+1
|
||||
lda #<0
|
||||
sta divr16u.rem
|
||||
sta divr16u.rem+1
|
||||
jsr divr16u
|
||||
sta mul16u.a+1
|
||||
lda #<div128
|
||||
sta mul16u.b
|
||||
lda #>div128
|
||||
sta mul16u.b+1
|
||||
jsr mul16u
|
||||
lda _17+2
|
||||
sta x5_128
|
||||
lda _17+3
|
||||
sta x5_128+1
|
||||
lda x1
|
||||
sec
|
||||
sbc _21
|
||||
sta _21
|
||||
sbc x3_6
|
||||
sta _19
|
||||
lda x1+1
|
||||
sbc _21+1
|
||||
sta _21+1
|
||||
sbc x3_6+1
|
||||
sta _19+1
|
||||
lda usinx
|
||||
clc
|
||||
adc _21
|
||||
adc x5_128
|
||||
sta usinx
|
||||
lda usinx+1
|
||||
adc _21+1
|
||||
adc x5_128+1
|
||||
sta usinx+1
|
||||
cpy #0
|
||||
cpx #0
|
||||
beq b4
|
||||
sec
|
||||
lda sinx
|
||||
@ -241,20 +220,16 @@ sin16s_gen: {
|
||||
sta print_word.w
|
||||
lda i+1
|
||||
sta print_word.w+1
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda line_cursor+1
|
||||
sta char_cursor+1
|
||||
jsr print_word
|
||||
lda #<str2
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jsr print_dword
|
||||
lda #<str3
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda x1
|
||||
@ -262,31 +237,31 @@ sin16s_gen: {
|
||||
lda x1+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda x3_6
|
||||
sta print_word.w
|
||||
lda x3_6+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda x5_128
|
||||
sta print_word.w
|
||||
lda x5_128+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda x3
|
||||
sta print_word.w
|
||||
lda x3+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str5
|
||||
sta print_str.str
|
||||
lda #>str5
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda x5
|
||||
sta print_word.w
|
||||
lda x5+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str6
|
||||
sta print_str.str
|
||||
lda #>str6
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jsr print_sword
|
||||
jsr print_ln
|
||||
lda x
|
||||
@ -308,24 +283,24 @@ sin16s_gen: {
|
||||
!:
|
||||
lda i+1
|
||||
cmp #>wavelength
|
||||
bcs !b1+
|
||||
jmp b1
|
||||
!b1:
|
||||
bcc b29
|
||||
bne !+
|
||||
lda i
|
||||
cmp #<wavelength
|
||||
bcs !b1+
|
||||
jmp b1
|
||||
!b1:
|
||||
bcc b29
|
||||
!:
|
||||
rts
|
||||
str: .text "2*pi @"
|
||||
str1: .text "step @"
|
||||
b29:
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda line_cursor+1
|
||||
sta char_cursor+1
|
||||
jmp b1
|
||||
str: .text " @"
|
||||
str1: .text " @"
|
||||
str2: .text " @"
|
||||
str3: .text " @"
|
||||
str4: .text " @"
|
||||
str5: .text " @"
|
||||
str6: .text " @"
|
||||
}
|
||||
print_ln: {
|
||||
b1:
|
||||
@ -441,91 +416,12 @@ print_dword: {
|
||||
jsr print_word
|
||||
rts
|
||||
}
|
||||
divr16u: {
|
||||
.label rem = $12
|
||||
.label dividend = $14
|
||||
.label quotient = $c
|
||||
.label return = $c
|
||||
.label divisor = $10
|
||||
ldx #0
|
||||
txa
|
||||
sta quotient
|
||||
sta quotient+1
|
||||
b1:
|
||||
asl rem
|
||||
rol rem+1
|
||||
lda dividend+1
|
||||
and #$80
|
||||
cmp #0
|
||||
beq b2
|
||||
lda #1
|
||||
ora rem
|
||||
sta rem
|
||||
b2:
|
||||
asl dividend
|
||||
rol dividend+1
|
||||
asl quotient
|
||||
rol quotient+1
|
||||
lda rem+1
|
||||
cmp divisor+1
|
||||
bcc b3
|
||||
bne !+
|
||||
lda rem
|
||||
cmp divisor
|
||||
bcc b3
|
||||
!:
|
||||
inc quotient
|
||||
bne !+
|
||||
inc quotient+1
|
||||
!:
|
||||
lda rem
|
||||
sec
|
||||
sbc divisor
|
||||
sta rem
|
||||
lda rem+1
|
||||
sbc divisor+1
|
||||
sta rem+1
|
||||
b3:
|
||||
inx
|
||||
cpx #$10
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
mul_u4f12: {
|
||||
.label _0 = $18
|
||||
.label _1 = $18
|
||||
.label v1 = $16
|
||||
.label v2 = $a
|
||||
.label return = $16
|
||||
jsr mul16u
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
lda _1+2
|
||||
sta return
|
||||
lda _1+3
|
||||
sta return+1
|
||||
rts
|
||||
}
|
||||
mul16u: {
|
||||
.label mb = $1c
|
||||
.label a = $16
|
||||
.label res = $18
|
||||
.label b = $a
|
||||
.label return = $18
|
||||
.label mb = $18
|
||||
.label a = $10
|
||||
.label res = $14
|
||||
.label return = $14
|
||||
.label b = $c
|
||||
lda b
|
||||
sta mb
|
||||
lda b+1
|
||||
@ -571,6 +467,89 @@ mul16u: {
|
||||
rol mb+3
|
||||
jmp b1
|
||||
}
|
||||
mul_u4f12: {
|
||||
.label _0 = $14
|
||||
.label _1 = $14
|
||||
.label v1 = $10
|
||||
.label v2 = $a
|
||||
.label return = $10
|
||||
lda v2
|
||||
sta mul16u.b
|
||||
lda v2+1
|
||||
sta mul16u.b+1
|
||||
jsr mul16u
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
lda _1+2
|
||||
sta return
|
||||
lda _1+3
|
||||
sta return+1
|
||||
rts
|
||||
}
|
||||
divr16u: {
|
||||
.label rem = 8
|
||||
.label dividend = $a
|
||||
.label quotient = $c
|
||||
.label return = $c
|
||||
.label divisor = 6
|
||||
ldx #0
|
||||
txa
|
||||
sta quotient
|
||||
sta quotient+1
|
||||
b1:
|
||||
asl rem
|
||||
rol rem+1
|
||||
lda dividend+1
|
||||
and #$80
|
||||
cmp #0
|
||||
beq b2
|
||||
lda #1
|
||||
ora rem
|
||||
sta rem
|
||||
b2:
|
||||
asl dividend
|
||||
rol dividend+1
|
||||
asl quotient
|
||||
rol quotient+1
|
||||
lda rem+1
|
||||
cmp divisor+1
|
||||
bcc b3
|
||||
bne !+
|
||||
lda rem
|
||||
cmp divisor
|
||||
bcc b3
|
||||
!:
|
||||
inc quotient
|
||||
bne !+
|
||||
inc quotient+1
|
||||
!:
|
||||
lda rem
|
||||
sec
|
||||
sbc divisor
|
||||
sta rem
|
||||
lda rem+1
|
||||
sbc divisor+1
|
||||
sta rem+1
|
||||
b3:
|
||||
inx
|
||||
cpx #$10
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 6
|
||||
lda #<SCREEN
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,22 +1,27 @@
|
||||
(label) @23
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736
|
||||
(word) PI_HALF_u4f12
|
||||
(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434
|
||||
(word) PI_u4f12
|
||||
(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte*) char_cursor
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:18 101.0
|
||||
(byte*~) char_cursor#122 char_cursor zp ZP_WORD:18 22.0
|
||||
(byte*~) char_cursor#128 char_cursor zp ZP_WORD:18 4.0
|
||||
(byte*) char_cursor#17 char_cursor zp ZP_WORD:18 4.2564102564102555
|
||||
(byte*) char_cursor#2 char_cursor zp ZP_WORD:18 15.727272727272727
|
||||
(byte*) char_cursor#60 char_cursor zp ZP_WORD:18 5.0
|
||||
(byte*) char_cursor#88 char_cursor zp ZP_WORD:18 3.0
|
||||
(byte*) char_cursor#90 char_cursor zp ZP_WORD:18 27.0
|
||||
(byte*) char_cursor#92 char_cursor zp ZP_WORD:18 2.0
|
||||
(byte*) char_cursor#97 char_cursor zp ZP_WORD:18 59.0
|
||||
(byte*~) char_cursor#102 char_cursor zp ZP_WORD:18 22.0
|
||||
(byte*) char_cursor#17 char_cursor zp ZP_WORD:18 3.1388888888888875
|
||||
(byte*) char_cursor#2 char_cursor zp ZP_WORD:18 20.235294117647058
|
||||
(byte*) char_cursor#54 char_cursor zp ZP_WORD:18 5.0
|
||||
(byte*) char_cursor#76 char_cursor zp ZP_WORD:18 3.0
|
||||
(byte*) char_cursor#78 char_cursor zp ZP_WORD:18 26.0
|
||||
(byte*) char_cursor#80 char_cursor zp ZP_WORD:18 2.0
|
||||
(byte*) char_cursor#82 char_cursor zp ZP_WORD:18 0.46808510638297873
|
||||
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
||||
(byte~) divr16u::$1 reg byte a 202.0
|
||||
(byte~) divr16u::$2 reg byte a 202.0
|
||||
(byte~) divr16u::$1 reg byte a 22.0
|
||||
(byte~) divr16u::$2 reg byte a 22.0
|
||||
(label) divr16u::@1
|
||||
(label) divr16u::@2
|
||||
(label) divr16u::@3
|
||||
@ -25,41 +30,38 @@
|
||||
(label) divr16u::@6
|
||||
(label) divr16u::@return
|
||||
(word) divr16u::dividend
|
||||
(word) divr16u::dividend#0 dividend zp ZP_WORD:20 25.25
|
||||
(word) divr16u::dividend#3 dividend zp ZP_WORD:20 22.0
|
||||
(word) divr16u::dividend#4 dividend zp ZP_WORD:20 22.0
|
||||
(word) divr16u::dividend#5 dividend zp ZP_WORD:20 43.57142857142858
|
||||
(word) divr16u::dividend#7 dividend zp ZP_WORD:20 24.0
|
||||
(word) divr16u::dividend#0 dividend zp ZP_WORD:10 2.75
|
||||
(word) divr16u::dividend#3 dividend zp ZP_WORD:10 5.0
|
||||
(word) divr16u::dividend#5 dividend zp ZP_WORD:10 2.0
|
||||
(word) divr16u::divisor
|
||||
(word) divr16u::divisor#8 divisor zp ZP_WORD:16 12.625
|
||||
(word) divr16u::divisor#6 divisor zp ZP_WORD:6 1.375
|
||||
(byte) divr16u::i
|
||||
(byte) divr16u::i#1 reg byte x 151.5
|
||||
(byte) divr16u::i#2 reg byte x 15.538461538461538
|
||||
(byte) divr16u::i#1 reg byte x 16.5
|
||||
(byte) divr16u::i#2 reg byte x 1.6923076923076923
|
||||
(word) divr16u::quotient
|
||||
(word) divr16u::quotient#1 quotient zp ZP_WORD:12 151.5
|
||||
(word) divr16u::quotient#2 quotient zp ZP_WORD:12 101.0
|
||||
(word) divr16u::quotient#3 quotient zp ZP_WORD:12 25.25
|
||||
(word) divr16u::quotient#1 quotient zp ZP_WORD:12 16.5
|
||||
(word) divr16u::quotient#2 quotient zp ZP_WORD:12 11.0
|
||||
(word) divr16u::quotient#3 quotient zp ZP_WORD:12 2.75
|
||||
(word) divr16u::rem
|
||||
(word) divr16u::rem#0 rem zp ZP_WORD:18 75.75
|
||||
(word) divr16u::rem#1 rem zp ZP_WORD:18 202.0
|
||||
(word) divr16u::rem#10 rem zp ZP_WORD:18 101.0
|
||||
(word) divr16u::rem#11 rem zp ZP_WORD:18 101.66666666666667
|
||||
(word) divr16u::rem#12 rem zp ZP_WORD:18 4.0
|
||||
(word) divr16u::rem#2 rem zp ZP_WORD:18 202.0
|
||||
(word) divr16u::rem#4 rem zp ZP_WORD:18 4.0
|
||||
(word) divr16u::rem#7 rem zp ZP_WORD:18 204.0
|
||||
(word) divr16u::rem#0 rem zp ZP_WORD:8 8.25
|
||||
(word) divr16u::rem#1 rem zp ZP_WORD:8 22.0
|
||||
(word) divr16u::rem#10 rem zp ZP_WORD:8 4.0
|
||||
(word) divr16u::rem#11 rem zp ZP_WORD:8 11.666666666666666
|
||||
(word) divr16u::rem#2 rem zp ZP_WORD:8 22.0
|
||||
(word) divr16u::rem#4 rem zp ZP_WORD:8 4.0
|
||||
(word) divr16u::rem#5 rem zp ZP_WORD:8 24.0
|
||||
(word) divr16u::rem#6 rem zp ZP_WORD:8 11.0
|
||||
(word) divr16u::return
|
||||
(word) divr16u::return#0 return zp ZP_WORD:12 36.55555555555556
|
||||
(word) divr16u::return#10 return zp ZP_WORD:12 22.0
|
||||
(word) divr16u::return#0 return zp ZP_WORD:12 5.285714285714286
|
||||
(word) divr16u::return#2 return zp ZP_WORD:12 4.0
|
||||
(word) divr16u::return#3 return zp ZP_WORD:12 4.0
|
||||
(word) divr16u::return#4 return zp ZP_WORD:12 22.0
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:14 4.012195121951219
|
||||
(byte*) line_cursor#13 line_cursor zp ZP_WORD:14 204.0
|
||||
(byte*) line_cursor#25 line_cursor zp ZP_WORD:14 15.0
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:14 40.625
|
||||
(byte*) line_cursor#11 line_cursor zp ZP_WORD:14 204.0
|
||||
(byte*) line_cursor#23 line_cursor zp ZP_WORD:14 0.18571428571428572
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(signed word[20]) main::sintab
|
||||
(const signed word[20]) main::sintab#0 sintab = { fill( 20, 0) }
|
||||
@ -71,38 +73,44 @@
|
||||
(label) mul16u::@7
|
||||
(label) mul16u::@return
|
||||
(word) mul16u::a
|
||||
(word) mul16u::a#0 a zp ZP_WORD:22 101.0
|
||||
(word) mul16u::a#1 a zp ZP_WORD:22 1.3333333333333333
|
||||
(word) mul16u::a#2 a zp ZP_WORD:22 67.66666666666666
|
||||
(word) mul16u::a#0 a zp ZP_WORD:16 101.0
|
||||
(word) mul16u::a#1 a zp ZP_WORD:16 22.0
|
||||
(word) mul16u::a#2 a zp ZP_WORD:16 22.0
|
||||
(word) mul16u::a#3 a zp ZP_WORD:16 2.0
|
||||
(word) mul16u::a#4 a zp ZP_WORD:16 67.66666666666666
|
||||
(word) mul16u::a#7 a zp ZP_WORD:16 13.0
|
||||
(word) mul16u::b
|
||||
(word) mul16u::b#0 b zp ZP_WORD:10 4.0
|
||||
(word) mul16u::b#2 b zp ZP_WORD:12 4.0
|
||||
(word) mul16u::b#3 b zp ZP_WORD:12 4.0
|
||||
(dword) mul16u::mb
|
||||
(dword) mul16u::mb#0 mb zp ZP_DWORD:28 4.0
|
||||
(dword) mul16u::mb#1 mb zp ZP_DWORD:28 202.0
|
||||
(dword) mul16u::mb#2 mb zp ZP_DWORD:28 43.57142857142858
|
||||
(dword) mul16u::mb#0 mb zp ZP_DWORD:24 4.0
|
||||
(dword) mul16u::mb#1 mb zp ZP_DWORD:24 202.0
|
||||
(dword) mul16u::mb#2 mb zp ZP_DWORD:24 43.57142857142858
|
||||
(dword) mul16u::res
|
||||
(dword) mul16u::res#1 res zp ZP_DWORD:24 202.0
|
||||
(dword) mul16u::res#2 res zp ZP_DWORD:24 50.83333333333333
|
||||
(dword) mul16u::res#6 res zp ZP_DWORD:24 101.0
|
||||
(dword) mul16u::res#1 res zp ZP_DWORD:20 202.0
|
||||
(dword) mul16u::res#2 res zp ZP_DWORD:20 40.875
|
||||
(dword) mul16u::res#6 res zp ZP_DWORD:20 101.0
|
||||
(dword) mul16u::return
|
||||
(dword) mul16u::return#2 return zp ZP_DWORD:24 4.0
|
||||
(dword) mul16u::return#2 return zp ZP_DWORD:20 22.0
|
||||
(dword) mul16u::return#3 return zp ZP_DWORD:20 22.0
|
||||
(dword) mul16u::return#4 return zp ZP_DWORD:20 4.0
|
||||
(word()) mul_u4f12((word) mul_u4f12::v1 , (word) mul_u4f12::v2)
|
||||
(dword~) mul_u4f12::$0 $0 zp ZP_DWORD:24 4.0
|
||||
(dword~) mul_u4f12::$1 $1 zp ZP_DWORD:24 4.0
|
||||
(dword~) mul_u4f12::$0 $0 zp ZP_DWORD:20 4.0
|
||||
(dword~) mul_u4f12::$1 $1 zp ZP_DWORD:20 4.0
|
||||
(label) mul_u4f12::@2
|
||||
(label) mul_u4f12::@return
|
||||
(word) mul_u4f12::return
|
||||
(word) mul_u4f12::return#0 return zp ZP_WORD:22 22.0
|
||||
(word) mul_u4f12::return#1 return zp ZP_WORD:22 22.0
|
||||
(word) mul_u4f12::return#10 return zp ZP_WORD:22 7.666666666666666
|
||||
(word) mul_u4f12::return#2 return zp ZP_WORD:22 22.0
|
||||
(word) mul_u4f12::return#3 return zp ZP_WORD:22 22.0
|
||||
(word) mul_u4f12::return#0 return zp ZP_WORD:16 22.0
|
||||
(word) mul_u4f12::return#1 return zp ZP_WORD:16 22.0
|
||||
(word) mul_u4f12::return#10 return zp ZP_WORD:16 7.666666666666666
|
||||
(word) mul_u4f12::return#2 return zp ZP_WORD:16 22.0
|
||||
(word) mul_u4f12::return#3 return zp ZP_WORD:16 22.0
|
||||
(word) mul_u4f12::v1
|
||||
(word) mul_u4f12::v1#0 v1 zp ZP_WORD:22 11.0
|
||||
(word) mul_u4f12::v1#1 v1 zp ZP_WORD:22 11.0
|
||||
(word) mul_u4f12::v1#2 v1 zp ZP_WORD:22 11.0
|
||||
(word) mul_u4f12::v1#3 v1 zp ZP_WORD:22 11.0
|
||||
(word) mul_u4f12::v1#4 v1 zp ZP_WORD:22 46.0
|
||||
(word) mul_u4f12::v1#0 v1 zp ZP_WORD:16 11.0
|
||||
(word) mul_u4f12::v1#1 v1 zp ZP_WORD:16 11.0
|
||||
(word) mul_u4f12::v1#2 v1 zp ZP_WORD:16 11.0
|
||||
(word) mul_u4f12::v1#3 v1 zp ZP_WORD:16 11.0
|
||||
(word) mul_u4f12::v1#4 v1 zp ZP_WORD:16 46.0
|
||||
(word) mul_u4f12::v2
|
||||
(word) mul_u4f12::v2#0 v2 zp ZP_WORD:10 22.0
|
||||
(word) mul_u4f12::v2#1 v2 zp ZP_WORD:10 22.0
|
||||
@ -136,9 +144,7 @@
|
||||
(label) print_dword::@1
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(dword) print_dword::dw#0 dw zp ZP_DWORD:2 4.0
|
||||
(dword) print_dword::dw#1 dw zp ZP_DWORD:2 22.0
|
||||
(dword) print_dword::dw#2 dw zp ZP_DWORD:2 5.666666666666667
|
||||
(dword) print_dword::dw#0 dw zp ZP_DWORD:2 5.0
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -148,8 +154,8 @@
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:16 202.0
|
||||
(byte*) print_str::str#10 str zp ZP_WORD:16 2.0
|
||||
(byte*) print_str::str#8 str zp ZP_WORD:16 101.5
|
||||
(byte*) print_str::str#6 str zp ZP_WORD:16 101.5
|
||||
(byte*) print_str::str#8 str zp ZP_WORD:16 2.0
|
||||
(void()) print_sword((signed word) print_sword::w)
|
||||
(label) print_sword::@1
|
||||
(label) print_sword::@2
|
||||
@ -164,17 +170,19 @@
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word) print_word::w#1 w zp ZP_WORD:16 4.0
|
||||
(word~) print_word::w#12 w zp ZP_WORD:16 4.0
|
||||
(word~) print_word::w#11 w zp ZP_WORD:16 4.0
|
||||
(word) print_word::w#2 w zp ZP_WORD:16 4.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:16 11.0
|
||||
(word) print_word::w#3 w zp ZP_WORD:16 22.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:16 22.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:16 22.0
|
||||
(word) print_word::w#6 w zp ZP_WORD:16 22.0
|
||||
(word) print_word::w#7 w zp ZP_WORD:16 22.0
|
||||
(word) print_word::w#8 w zp ZP_WORD:16 18.0
|
||||
(word) print_word::w#7 w zp ZP_WORD:16 18.0
|
||||
(word) rem16u
|
||||
(word) rem16u#1 rem16u zp ZP_WORD:18 0.8
|
||||
(word) rem16u#1 rem16u zp ZP_WORD:8 0.8
|
||||
(void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
|
||||
(word~) sin16s_gen::$21 $21 zp ZP_WORD:38 22.0
|
||||
(dword~) sin16s_gen::$15 $15 zp ZP_DWORD:20 22.0
|
||||
(dword~) sin16s_gen::$17 $17 zp ZP_DWORD:20 22.0
|
||||
(word~) sin16s_gen::$19 $19 zp ZP_WORD:12 22.0
|
||||
(label) sin16s_gen::@1
|
||||
(label) sin16s_gen::@10
|
||||
(label) sin16s_gen::@11
|
||||
@ -182,6 +190,7 @@
|
||||
(label) sin16s_gen::@13
|
||||
(label) sin16s_gen::@14
|
||||
(label) sin16s_gen::@15
|
||||
(label) sin16s_gen::@16
|
||||
(label) sin16s_gen::@17
|
||||
(label) sin16s_gen::@18
|
||||
(label) sin16s_gen::@19
|
||||
@ -197,96 +206,85 @@
|
||||
(label) sin16s_gen::@28
|
||||
(label) sin16s_gen::@29
|
||||
(label) sin16s_gen::@3
|
||||
(label) sin16s_gen::@30
|
||||
(label) sin16s_gen::@31
|
||||
(label) sin16s_gen::@32
|
||||
(label) sin16s_gen::@33
|
||||
(label) sin16s_gen::@34
|
||||
(label) sin16s_gen::@38
|
||||
(label) sin16s_gen::@4
|
||||
(label) sin16s_gen::@5
|
||||
(label) sin16s_gen::@6
|
||||
(label) sin16s_gen::@7
|
||||
(label) sin16s_gen::@9
|
||||
(label) sin16s_gen::@return
|
||||
(word) sin16s_gen::PI2
|
||||
(const word) sin16s_gen::PI2#0 PI2 = (word/signed word/dword/signed dword) 25736
|
||||
(word) sin16s_gen::PI_HALF_u4f12
|
||||
(const word) sin16s_gen::PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434
|
||||
(word) sin16s_gen::PI_u4f12
|
||||
(const word) sin16s_gen::PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868
|
||||
(word) sin16s_gen::div128
|
||||
(const word) sin16s_gen::div128#0 div128 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128
|
||||
(word) sin16s_gen::div6
|
||||
(const word) sin16s_gen::div6#0 div6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
(word) sin16s_gen::i
|
||||
(word) sin16s_gen::i#1 i zp ZP_WORD:8 16.5
|
||||
(word) sin16s_gen::i#10 i zp ZP_WORD:8 0.4714285714285714
|
||||
(word) sin16s_gen::i#1 i zp ZP_WORD:8 11.0
|
||||
(word) sin16s_gen::i#10 i zp ZP_WORD:8 0.46478873239436613
|
||||
(byte) sin16s_gen::isUpper
|
||||
(byte) sin16s_gen::isUpper#10 reg byte y 0.3235294117647059
|
||||
(byte) sin16s_gen::isUpper#10 reg byte x 0.3055555555555556
|
||||
(signed word*) sin16s_gen::sintab
|
||||
(signed word*) sin16s_gen::sintab#1 sintab zp ZP_WORD:6 0.7586206896551724
|
||||
(signed word*) sin16s_gen::sintab#10 sintab zp ZP_WORD:6 0.7674418604651163
|
||||
(signed word*) sin16s_gen::sintab#10 sintab zp ZP_WORD:6 0.7333333333333333
|
||||
(signed word) sin16s_gen::sinx
|
||||
(signed word) sin16s_gen::sinx#1 sinx zp ZP_WORD:12 22.0
|
||||
(signed word) sin16s_gen::sinx#10 sinx zp ZP_WORD:12 1.8333333333333333
|
||||
(signed word) sin16s_gen::sinx#10 sinx zp ZP_WORD:12 1.9130434782608696
|
||||
(signed word~) sin16s_gen::sinx#14 sinx zp ZP_WORD:12 22.0
|
||||
(dword) sin16s_gen::step
|
||||
(dword) sin16s_gen::step#0 step zp ZP_DWORD:32 0.17857142857142858
|
||||
(dword) sin16s_gen::step#0 step zp ZP_DWORD:28 0.17333333333333334
|
||||
(word) sin16s_gen::stepf
|
||||
(word) sin16s_gen::stepf#0 stepf zp ZP_WORD:12 4.0
|
||||
(word) sin16s_gen::stepi
|
||||
(word) sin16s_gen::stepi#0 stepi zp ZP_WORD:6 0.8
|
||||
(const string) sin16s_gen::str str = (string) "2*pi @"
|
||||
(const string) sin16s_gen::str1 str1 = (string) "step @"
|
||||
(word) sin16s_gen::stepi#0 stepi zp ZP_WORD:14 0.8
|
||||
(const string) sin16s_gen::str str = (string) " @"
|
||||
(const string) sin16s_gen::str1 str1 = (string) " @"
|
||||
(const string) sin16s_gen::str2 str2 = (string) " @"
|
||||
(const string) sin16s_gen::str3 str3 = (string) " @"
|
||||
(const string) sin16s_gen::str4 str4 = (string) " @"
|
||||
(const string) sin16s_gen::str5 str5 = (string) " @"
|
||||
(const string) sin16s_gen::str6 str6 = (string) " @"
|
||||
(word) sin16s_gen::usinx
|
||||
(word) sin16s_gen::usinx#0 usinx zp ZP_WORD:12 5.5
|
||||
(word) sin16s_gen::wavelength
|
||||
(const word) sin16s_gen::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
(dword) sin16s_gen::x
|
||||
(dword) sin16s_gen::x#1 x zp ZP_DWORD:2 7.333333333333333
|
||||
(dword) sin16s_gen::x#10 x zp ZP_DWORD:2 0.6376811594202898
|
||||
(dword) sin16s_gen::x#1 x zp ZP_DWORD:2 5.5
|
||||
(dword) sin16s_gen::x#10 x zp ZP_DWORD:2 0.6285714285714286
|
||||
(word) sin16s_gen::x1
|
||||
(word) sin16s_gen::x1#0 x1 zp ZP_WORD:10 22.0
|
||||
(word) sin16s_gen::x1#1 x1 zp ZP_WORD:10 22.0
|
||||
(word) sin16s_gen::x1#10 x1 zp ZP_WORD:10 27.5
|
||||
(word) sin16s_gen::x1#11 x1 zp ZP_WORD:10 2.152173913043478
|
||||
(word) sin16s_gen::x1#11 x1 zp ZP_WORD:10 2.1063829787234045
|
||||
(word) sin16s_gen::x1#2 x1 zp ZP_WORD:10 22.0
|
||||
(word) sin16s_gen::x2
|
||||
(word) sin16s_gen::x2#0 x2 zp ZP_WORD:22 22.0
|
||||
(word) sin16s_gen::x2#0 x2 zp ZP_WORD:16 22.0
|
||||
(word) sin16s_gen::x3
|
||||
(word) sin16s_gen::x3#0 x3 zp ZP_WORD:36 1.1
|
||||
(word) sin16s_gen::x3_6i
|
||||
(word) sin16s_gen::x3_6i#0 x3_6i zp ZP_WORD:38 4.4
|
||||
(word) sin16s_gen::x3#0 x3 zp ZP_WORD:32 3.0
|
||||
(word) sin16s_gen::x3_6
|
||||
(word) sin16s_gen::x3_6#0 x3_6 zp ZP_WORD:32 1.2692307692307692
|
||||
(word) sin16s_gen::x4
|
||||
(word) sin16s_gen::x4#0 x4 zp ZP_WORD:22 22.0
|
||||
(word) sin16s_gen::x4#0 x4 zp ZP_WORD:16 22.0
|
||||
(word) sin16s_gen::x5
|
||||
(word) sin16s_gen::x5#0 x5 zp ZP_WORD:22 0.9705882352941178
|
||||
(word) sin16s_gen::x5_128i
|
||||
(word) sin16s_gen::x5_128i#0 x5_128i zp ZP_WORD:12 11.0
|
||||
(word) sin16s_gen::x5#0 x5 zp ZP_WORD:34 3.6666666666666665
|
||||
(word) sin16s_gen::x5_128
|
||||
(word) sin16s_gen::x5_128#0 x5_128 zp ZP_WORD:34 1.32
|
||||
|
||||
zp ZP_DWORD:2 [ sin16s_gen::x#10 sin16s_gen::x#1 print_dword::dw#2 print_dword::dw#0 print_dword::dw#1 ]
|
||||
zp ZP_WORD:6 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::stepi#0 ]
|
||||
zp ZP_WORD:8 [ sin16s_gen::i#10 sin16s_gen::i#1 ]
|
||||
reg byte y [ sin16s_gen::isUpper#10 ]
|
||||
zp ZP_WORD:10 [ sin16s_gen::x1#11 sin16s_gen::x1#10 sin16s_gen::x1#0 sin16s_gen::x1#1 sin16s_gen::x1#2 mul_u4f12::v2#4 mul_u4f12::v2#1 mul_u4f12::v2#2 mul_u4f12::v2#3 mul_u4f12::v2#0 mul16u::b#0 ]
|
||||
zp ZP_WORD:12 [ sin16s_gen::sinx#10 sin16s_gen::sinx#14 sin16s_gen::sinx#1 sin16s_gen::usinx#0 print_sword::w#3 print_sword::w#1 print_sword::w#0 sin16s_gen::x5_128i#0 divr16u::return#10 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 sin16s_gen::stepf#0 divr16u::return#4 ]
|
||||
zp ZP_WORD:14 [ line_cursor#13 line_cursor#25 line_cursor#1 ]
|
||||
zp ZP_WORD:16 [ print_word::w#8 print_word::w#1 print_word::w#2 print_word::w#12 print_word::w#5 print_word::w#6 print_word::w#7 print_word::w#4 print_str::str#8 print_str::str#10 print_str::str#0 divr16u::divisor#8 ]
|
||||
zp ZP_DWORD:2 [ sin16s_gen::x#10 sin16s_gen::x#1 print_dword::dw#0 ]
|
||||
zp ZP_WORD:6 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 divr16u::divisor#6 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:8 [ sin16s_gen::i#10 sin16s_gen::i#1 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
|
||||
reg byte x [ sin16s_gen::isUpper#10 ]
|
||||
zp ZP_WORD:10 [ sin16s_gen::x1#11 sin16s_gen::x1#10 sin16s_gen::x1#0 sin16s_gen::x1#1 sin16s_gen::x1#2 mul_u4f12::v2#4 mul_u4f12::v2#1 mul_u4f12::v2#2 mul_u4f12::v2#3 mul_u4f12::v2#0 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ]
|
||||
zp ZP_WORD:12 [ sin16s_gen::sinx#10 sin16s_gen::sinx#14 sin16s_gen::sinx#1 sin16s_gen::usinx#0 print_sword::w#3 print_sword::w#1 print_sword::w#0 sin16s_gen::$19 mul16u::b#3 mul16u::b#2 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 sin16s_gen::stepf#0 ]
|
||||
zp ZP_WORD:14 [ line_cursor#11 line_cursor#23 line_cursor#1 sin16s_gen::stepi#0 ]
|
||||
zp ZP_WORD:16 [ print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#11 print_word::w#4 print_word::w#5 print_word::w#6 print_word::w#3 print_str::str#6 print_str::str#8 print_str::str#0 mul16u::a#4 mul16u::a#7 mul16u::a#3 mul16u::a#1 mul16u::a#2 mul16u::a#0 mul_u4f12::v1#4 mul_u4f12::v1#1 mul_u4f12::v1#2 mul_u4f12::v1#3 mul_u4f12::v1#0 sin16s_gen::x2#0 mul_u4f12::return#0 sin16s_gen::x4#0 mul_u4f12::return#2 mul_u4f12::return#10 mul_u4f12::return#1 mul_u4f12::return#3 ]
|
||||
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||
reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
|
||||
zp ZP_WORD:18 [ char_cursor#97 char_cursor#128 char_cursor#60 char_cursor#92 char_cursor#90 char_cursor#88 char_cursor#2 char_cursor#17 char_cursor#122 char_cursor#1 divr16u::rem#7 divr16u::rem#12 divr16u::rem#4 divr16u::rem#11 divr16u::rem#10 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
|
||||
zp ZP_WORD:20 [ divr16u::dividend#5 divr16u::dividend#7 divr16u::dividend#3 divr16u::dividend#4 divr16u::dividend#0 ]
|
||||
zp ZP_WORD:18 [ char_cursor#54 char_cursor#80 char_cursor#78 char_cursor#76 char_cursor#2 char_cursor#17 char_cursor#82 char_cursor#102 char_cursor#1 ]
|
||||
zp ZP_DWORD:20 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 sin16s_gen::$15 mul16u::return#3 sin16s_gen::$17 mul16u::return#4 mul_u4f12::$0 mul_u4f12::$1 ]
|
||||
zp ZP_DWORD:24 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
|
||||
reg byte x [ divr16u::i#2 divr16u::i#1 ]
|
||||
zp ZP_WORD:22 [ mul_u4f12::v1#4 mul_u4f12::v1#1 mul_u4f12::v1#2 mul_u4f12::v1#3 mul_u4f12::v1#0 mul16u::a#2 mul16u::a#1 mul16u::a#0 sin16s_gen::x2#0 mul_u4f12::return#0 sin16s_gen::x4#0 mul_u4f12::return#2 mul_u4f12::return#10 mul_u4f12::return#1 mul_u4f12::return#3 sin16s_gen::x5#0 ]
|
||||
zp ZP_DWORD:24 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u4f12::$0 mul_u4f12::$1 ]
|
||||
zp ZP_DWORD:28 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
|
||||
zp ZP_DWORD:32 [ sin16s_gen::step#0 ]
|
||||
zp ZP_WORD:36 [ sin16s_gen::x3#0 ]
|
||||
zp ZP_WORD:38 [ sin16s_gen::x3_6i#0 sin16s_gen::$21 ]
|
||||
zp ZP_DWORD:28 [ sin16s_gen::step#0 ]
|
||||
zp ZP_WORD:32 [ sin16s_gen::x3#0 sin16s_gen::x3_6#0 ]
|
||||
zp ZP_WORD:34 [ sin16s_gen::x5#0 sin16s_gen::x5_128#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ mul16u::$1 ]
|
||||
reg byte a [ divr16u::$1 ]
|
||||
reg byte a [ divr16u::$2 ]
|
||||
reg byte a [ mul16u::$1 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user