mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-22 16:33:48 +00:00
Fixed test data.
This commit is contained in:
parent
6366d1a9fa
commit
b11256030c
@ -180,18 +180,18 @@ do_perspective: {
|
||||
jsr print_str
|
||||
// perspective(x, y, z)
|
||||
jsr perspective
|
||||
// print_schar(xr)
|
||||
// print_uchar((char)xr)
|
||||
ldx.z xr
|
||||
jsr print_schar
|
||||
jsr print_uchar
|
||||
// print_str(",")
|
||||
lda #<str1
|
||||
sta.z print_str.str
|
||||
lda #>str1
|
||||
sta.z print_str.str+1
|
||||
jsr print_str
|
||||
// print_schar(yr)
|
||||
// print_uchar((char)yr)
|
||||
ldx.z yr
|
||||
jsr print_schar
|
||||
jsr print_uchar
|
||||
// print_str(")")
|
||||
lda #<str5
|
||||
sta.z print_str.str
|
||||
@ -330,6 +330,29 @@ perspective: {
|
||||
// }
|
||||
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_ln: {
|
||||
lda #<print_screen
|
||||
@ -371,29 +394,6 @@ print_char: {
|
||||
// }
|
||||
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
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
// Multiplication tables for seriously fast multiplication.
|
||||
|
@ -107,16 +107,16 @@ do_perspective::@7: scope:[do_perspective] from do_perspective::@6
|
||||
[53] call perspective
|
||||
to:do_perspective::@8
|
||||
do_perspective::@8: scope:[do_perspective] from do_perspective::@7
|
||||
[54] print_schar::b#4 = xr
|
||||
[55] call print_schar
|
||||
[54] print_uchar::b#1 = (byte)xr
|
||||
[55] call print_uchar
|
||||
to:do_perspective::@9
|
||||
do_perspective::@9: scope:[do_perspective] from do_perspective::@8
|
||||
[56] phi()
|
||||
[57] call print_str
|
||||
to:do_perspective::@10
|
||||
do_perspective::@10: scope:[do_perspective] from do_perspective::@9
|
||||
[58] print_schar::b#5 = yr
|
||||
[59] call print_schar
|
||||
[58] print_uchar::b#2 = (byte)yr
|
||||
[59] call print_uchar
|
||||
to:do_perspective::@11
|
||||
do_perspective::@11: scope:[do_perspective] from do_perspective::@10
|
||||
[60] phi()
|
||||
@ -168,17 +168,17 @@ print_str::@3: scope:[print_str] from print_str::@2
|
||||
to:print_str::@1
|
||||
|
||||
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
|
||||
[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 )
|
||||
[79] if(print_schar::b#10<0) goto print_schar::@1
|
||||
print_schar: scope:[print_schar] from do_perspective::@1 do_perspective::@3 do_perspective::@5
|
||||
[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#4<0) goto print_schar::@1
|
||||
to:print_schar::@3
|
||||
print_schar::@3: scope:[print_schar] from print_schar
|
||||
[80] phi()
|
||||
[81] call print_char
|
||||
to:print_schar::@2
|
||||
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 )
|
||||
[83] print_uchar::b#0 = (byte)print_schar::b#8
|
||||
[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#6
|
||||
[84] call print_uchar
|
||||
to:print_schar::@return
|
||||
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
|
||||
to:print_schar::@4
|
||||
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
|
||||
|
||||
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
|
||||
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()
|
||||
print_ln: scope:[print_ln] from do_perspective::@12
|
||||
[94] phi()
|
||||
[102] phi()
|
||||
to: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 )
|
||||
[96] print_line_cursor#0 = print_line_cursor#12 + $28
|
||||
[97] if(print_line_cursor#0<print_char_cursor#1) goto print_ln::@1
|
||||
[103] print_line_cursor#12 = phi( print_ln/print_screen#0, print_ln::@1/print_line_cursor#0 )
|
||||
[104] print_line_cursor#0 = print_line_cursor#12 + $28
|
||||
[105] if(print_line_cursor#0<print_char_cursor#1) goto print_ln::@1
|
||||
to:print_ln::@return
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
[98] return
|
||||
[106] return
|
||||
to:@return
|
||||
|
||||
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
|
||||
[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 )
|
||||
[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 )
|
||||
[100] *print_char_cursor#45 = print_char::ch#5
|
||||
[101] print_char_cursor#11 = ++ print_char_cursor#45
|
||||
[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 )
|
||||
[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 )
|
||||
[108] *print_char_cursor#45 = print_char::ch#5
|
||||
[109] print_char_cursor#11 = ++ print_char_cursor#45
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[102] 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
|
||||
[110] 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#5 reg byte a 130004.0
|
||||
byte* print_char_cursor
|
||||
byte* print_char_cursor#1 print_char_cursor zp[2]:6 1269.4615384615383
|
||||
byte* print_char_cursor#11 print_char_cursor zp[2]:6 4661.035714285714
|
||||
byte* print_char_cursor#1 print_char_cursor zp[2]:6 1277.230769230769
|
||||
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#72 print_char_cursor zp[2]:6 3734.6666666666665
|
||||
byte* print_char_cursor#77 print_char_cursor zp[2]:6 1506.0
|
||||
void print_cls()
|
||||
const to_nomodify byte* print_hextab[] = "0123456789abcdef"z
|
||||
@ -80,10 +81,8 @@ void print_ln()
|
||||
void print_schar(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#10 reg byte x 534.1666666666667
|
||||
signed byte print_schar::b#4 reg byte x 202.0
|
||||
signed byte print_schar::b#5 reg byte x 202.0
|
||||
signed byte print_schar::b#8 reg byte x 2002.0
|
||||
signed byte print_schar::b#4 reg byte x 500.5
|
||||
signed byte print_schar::b#6 reg byte x 2002.0
|
||||
byte* print_screen
|
||||
const byte* print_screen#0 print_screen = (byte*) 1024
|
||||
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::$2 reg byte x 20002.0
|
||||
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 psp2 loadstore zp[2]:13 0.6190476190476191
|
||||
volatile signed byte xr loadstore zp[1]:8 184.0
|
||||
volatile signed byte yr loadstore zp[1]:9 122.66666666666667
|
||||
volatile signed byte xr loadstore zp[1]:8 167.16666666666669
|
||||
volatile signed byte yr loadstore zp[1]:9 111.44444444444446
|
||||
volatile signed byte zr loadstore zp[1]:10 1003.0
|
||||
|
||||
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 ]
|
||||
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 ]
|
||||
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]:9 [ yr ]
|
||||
zp[1]:10 [ zr ]
|
||||
@ -116,6 +119,5 @@ zp[2]:13 [ psp2 ]
|
||||
zp[1]:15 [ mulf_init::val#0 ]
|
||||
reg byte x [ mulf_init::$2 ]
|
||||
reg byte x [ mulf_init::$6 ]
|
||||
reg byte x [ print_uchar::b#0 ]
|
||||
reg byte a [ print_uchar::$0 ]
|
||||
reg byte x [ print_uchar::$2 ]
|
||||
|
Loading…
Reference in New Issue
Block a user