mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-08-09 04:25:12 +00:00
Fixed test data.
This commit is contained in:
@@ -180,18 +180,18 @@ do_perspective: {
|
|||||||
jsr print_str
|
jsr print_str
|
||||||
// perspective(x, y, z)
|
// perspective(x, y, z)
|
||||||
jsr perspective
|
jsr perspective
|
||||||
// print_schar(xr)
|
// print_uchar((char)xr)
|
||||||
ldx.z xr
|
ldx.z xr
|
||||||
jsr print_schar
|
jsr print_uchar
|
||||||
// print_str(",")
|
// print_str(",")
|
||||||
lda #<str1
|
lda #<str1
|
||||||
sta.z print_str.str
|
sta.z print_str.str
|
||||||
lda #>str1
|
lda #>str1
|
||||||
sta.z print_str.str+1
|
sta.z print_str.str+1
|
||||||
jsr print_str
|
jsr print_str
|
||||||
// print_schar(yr)
|
// print_uchar((char)yr)
|
||||||
ldx.z yr
|
ldx.z yr
|
||||||
jsr print_schar
|
jsr print_uchar
|
||||||
// print_str(")")
|
// print_str(")")
|
||||||
lda #<str5
|
lda #<str5
|
||||||
sta.z print_str.str
|
sta.z print_str.str
|
||||||
@@ -330,6 +330,29 @@ perspective: {
|
|||||||
// }
|
// }
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
// Print a char as HEX
|
||||||
|
// print_uchar(byte register(X) b)
|
||||||
|
print_uchar: {
|
||||||
|
// b>>4
|
||||||
|
txa
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
// print_char(print_hextab[b>>4])
|
||||||
|
tay
|
||||||
|
lda print_hextab,y
|
||||||
|
// Table of hexadecimal digits
|
||||||
|
jsr print_char
|
||||||
|
// b&$f
|
||||||
|
lda #$f
|
||||||
|
axs #0
|
||||||
|
// print_char(print_hextab[b&$f])
|
||||||
|
lda print_hextab,x
|
||||||
|
jsr print_char
|
||||||
|
// }
|
||||||
|
rts
|
||||||
|
}
|
||||||
// Print a newline
|
// Print a newline
|
||||||
print_ln: {
|
print_ln: {
|
||||||
lda #<print_screen
|
lda #<print_screen
|
||||||
@@ -371,29 +394,6 @@ print_char: {
|
|||||||
// }
|
// }
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
// Print a char as HEX
|
|
||||||
// print_uchar(byte register(X) b)
|
|
||||||
print_uchar: {
|
|
||||||
// b>>4
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
// print_char(print_hextab[b>>4])
|
|
||||||
tay
|
|
||||||
lda print_hextab,y
|
|
||||||
// Table of hexadecimal digits
|
|
||||||
jsr print_char
|
|
||||||
// b&$f
|
|
||||||
lda #$f
|
|
||||||
axs #0
|
|
||||||
// print_char(print_hextab[b&$f])
|
|
||||||
lda print_hextab,x
|
|
||||||
jsr print_char
|
|
||||||
// }
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
.segment Data
|
.segment Data
|
||||||
print_hextab: .text "0123456789abcdef"
|
print_hextab: .text "0123456789abcdef"
|
||||||
// Multiplication tables for seriously fast multiplication.
|
// Multiplication tables for seriously fast multiplication.
|
||||||
|
@@ -107,16 +107,16 @@ do_perspective::@7: scope:[do_perspective] from do_perspective::@6
|
|||||||
[53] call perspective
|
[53] call perspective
|
||||||
to:do_perspective::@8
|
to:do_perspective::@8
|
||||||
do_perspective::@8: scope:[do_perspective] from do_perspective::@7
|
do_perspective::@8: scope:[do_perspective] from do_perspective::@7
|
||||||
[54] print_schar::b#4 = xr
|
[54] print_uchar::b#1 = (byte)xr
|
||||||
[55] call print_schar
|
[55] call print_uchar
|
||||||
to:do_perspective::@9
|
to:do_perspective::@9
|
||||||
do_perspective::@9: scope:[do_perspective] from do_perspective::@8
|
do_perspective::@9: scope:[do_perspective] from do_perspective::@8
|
||||||
[56] phi()
|
[56] phi()
|
||||||
[57] call print_str
|
[57] call print_str
|
||||||
to:do_perspective::@10
|
to:do_perspective::@10
|
||||||
do_perspective::@10: scope:[do_perspective] from do_perspective::@9
|
do_perspective::@10: scope:[do_perspective] from do_perspective::@9
|
||||||
[58] print_schar::b#5 = yr
|
[58] print_uchar::b#2 = (byte)yr
|
||||||
[59] call print_schar
|
[59] call print_uchar
|
||||||
to:do_perspective::@11
|
to:do_perspective::@11
|
||||||
do_perspective::@11: scope:[do_perspective] from do_perspective::@10
|
do_perspective::@11: scope:[do_perspective] from do_perspective::@10
|
||||||
[60] phi()
|
[60] phi()
|
||||||
@@ -168,17 +168,17 @@ print_str::@3: scope:[print_str] from print_str::@2
|
|||||||
to:print_str::@1
|
to:print_str::@1
|
||||||
|
|
||||||
void print_schar(signed byte print_schar::b)
|
void print_schar(signed byte print_schar::b)
|
||||||
print_schar: scope:[print_schar] from do_perspective::@1 do_perspective::@10 do_perspective::@3 do_perspective::@5 do_perspective::@8
|
print_schar: scope:[print_schar] from do_perspective::@1 do_perspective::@3 do_perspective::@5
|
||||||
[78] print_schar::b#10 = phi( do_perspective::@1/do_perspective::x#0, do_perspective::@10/print_schar::b#5, do_perspective::@3/do_perspective::y#0, do_perspective::@5/do_perspective::z#0, do_perspective::@8/print_schar::b#4 )
|
[78] print_schar::b#4 = phi( do_perspective::@1/do_perspective::x#0, do_perspective::@3/do_perspective::y#0, do_perspective::@5/do_perspective::z#0 )
|
||||||
[79] if(print_schar::b#10<0) goto print_schar::@1
|
[79] if(print_schar::b#4<0) goto print_schar::@1
|
||||||
to:print_schar::@3
|
to:print_schar::@3
|
||||||
print_schar::@3: scope:[print_schar] from print_schar
|
print_schar::@3: scope:[print_schar] from print_schar
|
||||||
[80] phi()
|
[80] phi()
|
||||||
[81] call print_char
|
[81] call print_char
|
||||||
to:print_schar::@2
|
to:print_schar::@2
|
||||||
print_schar::@2: scope:[print_schar] from print_schar::@3 print_schar::@4
|
print_schar::@2: scope:[print_schar] from print_schar::@3 print_schar::@4
|
||||||
[82] print_schar::b#8 = phi( print_schar::@4/print_schar::b#0, print_schar::@3/print_schar::b#10 )
|
[82] print_schar::b#6 = phi( print_schar::@4/print_schar::b#0, print_schar::@3/print_schar::b#4 )
|
||||||
[83] print_uchar::b#0 = (byte)print_schar::b#8
|
[83] print_uchar::b#0 = (byte)print_schar::b#6
|
||||||
[84] call print_uchar
|
[84] call print_uchar
|
||||||
to:print_schar::@return
|
to:print_schar::@return
|
||||||
print_schar::@return: scope:[print_schar] from print_schar::@2
|
print_schar::@return: scope:[print_schar] from print_schar::@2
|
||||||
@@ -189,7 +189,7 @@ print_schar::@1: scope:[print_schar] from print_schar
|
|||||||
[87] call print_char
|
[87] call print_char
|
||||||
to:print_schar::@4
|
to:print_schar::@4
|
||||||
print_schar::@4: scope:[print_schar] from print_schar::@1
|
print_schar::@4: scope:[print_schar] from print_schar::@1
|
||||||
[88] print_schar::b#0 = - print_schar::b#10
|
[88] print_schar::b#0 = - print_schar::b#4
|
||||||
to:print_schar::@2
|
to:print_schar::@2
|
||||||
|
|
||||||
void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z)
|
void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z)
|
||||||
@@ -203,41 +203,43 @@ perspective::@return: scope:[perspective] from perspective
|
|||||||
[93] return
|
[93] return
|
||||||
to:@return
|
to:@return
|
||||||
|
|
||||||
|
void print_uchar(byte print_uchar::b)
|
||||||
|
print_uchar: scope:[print_uchar] from do_perspective::@10 do_perspective::@8 print_schar::@2
|
||||||
|
[94] print_char_cursor#72 = phi( do_perspective::@10/print_char_cursor#1, do_perspective::@8/print_char_cursor#1, print_schar::@2/print_char_cursor#11 )
|
||||||
|
[94] print_uchar::b#3 = phi( do_perspective::@10/print_uchar::b#2, do_perspective::@8/print_uchar::b#1, print_schar::@2/print_uchar::b#0 )
|
||||||
|
[95] print_uchar::$0 = print_uchar::b#3 >> 4
|
||||||
|
[96] print_char::ch#3 = print_hextab[print_uchar::$0]
|
||||||
|
[97] call print_char
|
||||||
|
to:print_uchar::@1
|
||||||
|
print_uchar::@1: scope:[print_uchar] from print_uchar
|
||||||
|
[98] print_uchar::$2 = print_uchar::b#3 & $f
|
||||||
|
[99] print_char::ch#4 = print_hextab[print_uchar::$2]
|
||||||
|
[100] call print_char
|
||||||
|
to:print_uchar::@return
|
||||||
|
print_uchar::@return: scope:[print_uchar] from print_uchar::@1
|
||||||
|
[101] return
|
||||||
|
to:@return
|
||||||
|
|
||||||
void print_ln()
|
void print_ln()
|
||||||
print_ln: scope:[print_ln] from do_perspective::@12
|
print_ln: scope:[print_ln] from do_perspective::@12
|
||||||
[94] phi()
|
[102] phi()
|
||||||
to:print_ln::@1
|
to:print_ln::@1
|
||||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||||
[95] print_line_cursor#12 = phi( print_ln/print_screen#0, print_ln::@1/print_line_cursor#0 )
|
[103] print_line_cursor#12 = phi( print_ln/print_screen#0, print_ln::@1/print_line_cursor#0 )
|
||||||
[96] print_line_cursor#0 = print_line_cursor#12 + $28
|
[104] print_line_cursor#0 = print_line_cursor#12 + $28
|
||||||
[97] if(print_line_cursor#0<print_char_cursor#1) goto print_ln::@1
|
[105] if(print_line_cursor#0<print_char_cursor#1) goto print_ln::@1
|
||||||
to:print_ln::@return
|
to:print_ln::@return
|
||||||
print_ln::@return: scope:[print_ln] from print_ln::@1
|
print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||||
[98] return
|
[106] return
|
||||||
to:@return
|
to:@return
|
||||||
|
|
||||||
void print_char(byte print_char::ch)
|
void print_char(byte print_char::ch)
|
||||||
print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_str::@2 print_uchar print_uchar::@1
|
print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_str::@2 print_uchar print_uchar::@1
|
||||||
[99] print_char_cursor#45 = phi( print_schar::@1/print_char_cursor#1, print_schar::@3/print_char_cursor#1, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#11, print_uchar::@1/print_char_cursor#11 )
|
[107] print_char_cursor#45 = phi( print_schar::@1/print_char_cursor#1, print_schar::@3/print_char_cursor#1, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#72, print_uchar::@1/print_char_cursor#11 )
|
||||||
[99] print_char::ch#5 = phi( print_schar::@1/'-', print_schar::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 )
|
[107] print_char::ch#5 = phi( print_schar::@1/'-', print_schar::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 )
|
||||||
[100] *print_char_cursor#45 = print_char::ch#5
|
[108] *print_char_cursor#45 = print_char::ch#5
|
||||||
[101] print_char_cursor#11 = ++ print_char_cursor#45
|
[109] print_char_cursor#11 = ++ print_char_cursor#45
|
||||||
to:print_char::@return
|
to:print_char::@return
|
||||||
print_char::@return: scope:[print_char] from print_char
|
print_char::@return: scope:[print_char] from print_char
|
||||||
[102] return
|
[110] return
|
||||||
to:@return
|
|
||||||
|
|
||||||
void print_uchar(byte print_uchar::b)
|
|
||||||
print_uchar: scope:[print_uchar] from print_schar::@2
|
|
||||||
[103] print_uchar::$0 = print_uchar::b#0 >> 4
|
|
||||||
[104] print_char::ch#3 = print_hextab[print_uchar::$0]
|
|
||||||
[105] call print_char
|
|
||||||
to:print_uchar::@1
|
|
||||||
print_uchar::@1: scope:[print_uchar] from print_uchar
|
|
||||||
[106] print_uchar::$2 = print_uchar::b#0 & $f
|
|
||||||
[107] print_char::ch#4 = print_hextab[print_uchar::$2]
|
|
||||||
[108] call print_char
|
|
||||||
to:print_uchar::@return
|
|
||||||
print_uchar::@return: scope:[print_uchar] from print_uchar::@1
|
|
||||||
[109] return
|
|
||||||
to:@return
|
to:@return
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -67,9 +67,10 @@ byte print_char::ch#3 reg byte a 20002.0
|
|||||||
byte print_char::ch#4 reg byte a 20002.0
|
byte print_char::ch#4 reg byte a 20002.0
|
||||||
byte print_char::ch#5 reg byte a 130004.0
|
byte print_char::ch#5 reg byte a 130004.0
|
||||||
byte* print_char_cursor
|
byte* print_char_cursor
|
||||||
byte* print_char_cursor#1 print_char_cursor zp[2]:6 1269.4615384615383
|
byte* print_char_cursor#1 print_char_cursor zp[2]:6 1277.230769230769
|
||||||
byte* print_char_cursor#11 print_char_cursor zp[2]:6 4661.035714285714
|
byte* print_char_cursor#11 print_char_cursor zp[2]:6 4673.423076923077
|
||||||
byte* print_char_cursor#45 print_char_cursor zp[2]:6 116003.5
|
byte* print_char_cursor#45 print_char_cursor zp[2]:6 116003.5
|
||||||
|
byte* print_char_cursor#72 print_char_cursor zp[2]:6 3734.6666666666665
|
||||||
byte* print_char_cursor#77 print_char_cursor zp[2]:6 1506.0
|
byte* print_char_cursor#77 print_char_cursor zp[2]:6 1506.0
|
||||||
void print_cls()
|
void print_cls()
|
||||||
const to_nomodify byte* print_hextab[] = "0123456789abcdef"z
|
const to_nomodify byte* print_hextab[] = "0123456789abcdef"z
|
||||||
@@ -80,10 +81,8 @@ void print_ln()
|
|||||||
void print_schar(signed byte print_schar::b)
|
void print_schar(signed byte print_schar::b)
|
||||||
signed byte print_schar::b
|
signed byte print_schar::b
|
||||||
signed byte print_schar::b#0 reg byte x 2002.0
|
signed byte print_schar::b#0 reg byte x 2002.0
|
||||||
signed byte print_schar::b#10 reg byte x 534.1666666666667
|
signed byte print_schar::b#4 reg byte x 500.5
|
||||||
signed byte print_schar::b#4 reg byte x 202.0
|
signed byte print_schar::b#6 reg byte x 2002.0
|
||||||
signed byte print_schar::b#5 reg byte x 202.0
|
|
||||||
signed byte print_schar::b#8 reg byte x 2002.0
|
|
||||||
byte* print_screen
|
byte* print_screen
|
||||||
const byte* print_screen#0 print_screen = (byte*) 1024
|
const byte* print_screen#0 print_screen = (byte*) 1024
|
||||||
void print_str(byte* print_str::str)
|
void print_str(byte* print_str::str)
|
||||||
@@ -95,19 +94,23 @@ void print_uchar(byte print_uchar::b)
|
|||||||
byte~ print_uchar::$0 reg byte a 20002.0
|
byte~ print_uchar::$0 reg byte a 20002.0
|
||||||
byte~ print_uchar::$2 reg byte x 20002.0
|
byte~ print_uchar::$2 reg byte x 20002.0
|
||||||
byte print_uchar::b
|
byte print_uchar::b
|
||||||
byte print_uchar::b#0 reg byte x 5250.75
|
byte print_uchar::b#0 reg byte x 2002.0
|
||||||
|
byte print_uchar::b#1 reg byte x 202.0
|
||||||
|
byte print_uchar::b#2 reg byte x 202.0
|
||||||
|
byte print_uchar::b#3 reg byte x 5301.25
|
||||||
volatile word psp1 loadstore zp[2]:11 0.5909090909090909
|
volatile word psp1 loadstore zp[2]:11 0.5909090909090909
|
||||||
volatile word psp2 loadstore zp[2]:13 0.6190476190476191
|
volatile word psp2 loadstore zp[2]:13 0.6190476190476191
|
||||||
volatile signed byte xr loadstore zp[1]:8 184.0
|
volatile signed byte xr loadstore zp[1]:8 167.16666666666669
|
||||||
volatile signed byte yr loadstore zp[1]:9 122.66666666666667
|
volatile signed byte yr loadstore zp[1]:9 111.44444444444446
|
||||||
volatile signed byte zr loadstore zp[1]:10 1003.0
|
volatile signed byte zr loadstore zp[1]:10 1003.0
|
||||||
|
|
||||||
reg byte y [ mulf_init::i#2 mulf_init::i#1 ]
|
reg byte y [ mulf_init::i#2 mulf_init::i#1 ]
|
||||||
zp[2]:2 [ print_str::str#7 print_str::str#10 print_str::str#0 mulf_init::add#2 mulf_init::add#1 ]
|
zp[2]:2 [ print_str::str#7 print_str::str#10 print_str::str#0 mulf_init::add#2 mulf_init::add#1 ]
|
||||||
reg byte x [ print_schar::b#8 print_schar::b#0 print_schar::b#10 print_schar::b#5 print_schar::b#4 ]
|
reg byte x [ print_schar::b#6 print_schar::b#0 print_schar::b#4 ]
|
||||||
|
reg byte x [ print_uchar::b#3 print_uchar::b#2 print_uchar::b#1 print_uchar::b#0 ]
|
||||||
zp[2]:4 [ print_line_cursor#12 print_line_cursor#0 memset::dst#2 memset::dst#1 mulf_init::sqr#2 mulf_init::sqr#1 ]
|
zp[2]:4 [ print_line_cursor#12 print_line_cursor#0 memset::dst#2 memset::dst#1 mulf_init::sqr#2 mulf_init::sqr#1 ]
|
||||||
reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#3 print_char::ch#4 ]
|
reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#3 print_char::ch#4 ]
|
||||||
zp[2]:6 [ print_char_cursor#45 print_char_cursor#1 print_char_cursor#77 print_char_cursor#11 ]
|
zp[2]:6 [ print_char_cursor#45 print_char_cursor#72 print_char_cursor#1 print_char_cursor#77 print_char_cursor#11 ]
|
||||||
zp[1]:8 [ xr ]
|
zp[1]:8 [ xr ]
|
||||||
zp[1]:9 [ yr ]
|
zp[1]:9 [ yr ]
|
||||||
zp[1]:10 [ zr ]
|
zp[1]:10 [ zr ]
|
||||||
@@ -116,6 +119,5 @@ zp[2]:13 [ psp2 ]
|
|||||||
zp[1]:15 [ mulf_init::val#0 ]
|
zp[1]:15 [ mulf_init::val#0 ]
|
||||||
reg byte x [ mulf_init::$2 ]
|
reg byte x [ mulf_init::$2 ]
|
||||||
reg byte x [ mulf_init::$6 ]
|
reg byte x [ mulf_init::$6 ]
|
||||||
reg byte x [ print_uchar::b#0 ]
|
|
||||||
reg byte a [ print_uchar::$0 ]
|
reg byte a [ print_uchar::$0 ]
|
||||||
reg byte x [ print_uchar::$2 ]
|
reg byte x [ print_uchar::$2 ]
|
||||||
|
Reference in New Issue
Block a user