diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index f3bc62dc7..337df5616 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -2273,7 +2273,7 @@ public class TestPrograms { boolean success = true; ReferenceHelper helper = new ReferenceHelperFolder(refPath); success &= helper.testOutput(fileName, ".asm", program.getAsm().toString(false)); - success &= helper.testOutput(fileName, ".sym", program.getScope().toString(program)); + success &= helper.testOutput(fileName, ".sym", program.getScope().toString(program, null)); success &= helper.testOutput(fileName, ".cfg", program.getGraph().toString(program)); success &= helper.testOutput(fileName, ".log", program.getLog().toString()); if(!success) { diff --git a/src/test/ref/array-length-symbolic-min.sym b/src/test/ref/array-length-symbolic-min.sym index 1daabbadc..a319082c1 100644 --- a/src/test/ref/array-length-symbolic-min.sym +++ b/src/test/ref/array-length-symbolic-min.sym @@ -1 +1,16 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) SZ +(const byte) SZ#0 SZ = (byte) $f +(byte[SZ#0]) items +(const byte[SZ#0]) items#0 items = { fill( SZ#0, 0) } +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::cur_item +(byte) main::sub +(byte) main::sub#1 reg byte x 16.5 +(byte) main::sub#2 reg byte x 22.0 + +reg byte x [ main::sub#2 main::sub#1 ] diff --git a/src/test/ref/array-length-symbolic.sym b/src/test/ref/array-length-symbolic.sym index 1daabbadc..37e3c0d11 100644 --- a/src/test/ref/array-length-symbolic.sym +++ b/src/test/ref/array-length-symbolic.sym @@ -1 +1,31 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) ITEM_COUNT +(const byte) ITEM_COUNT#0 ITEM_COUNT = (byte) 3 +(byte) ITEM_SIZE +(const byte) ITEM_SIZE#0 ITEM_SIZE = (byte) 5 +(byte[ITEM_COUNT#0*ITEM_SIZE#0]) items +(const byte[ITEM_COUNT#0*ITEM_SIZE#0]) items#0 items = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(void()) main() +(byte~) main::$2 reg byte a 202.0 +(byte~) main::$3 reg byte a 202.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::cur_item +(byte*) main::cur_item#1 cur_item zp ZP_WORD:2 7.333333333333333 +(byte*) main::cur_item#4 cur_item zp ZP_WORD:2 17.571428571428573 +(byte) main::item +(byte) main::item#1 reg byte x 16.5 +(byte) main::item#4 reg byte x 15.375 +(byte) main::sub +(byte) main::sub#1 reg byte y 151.5 +(byte) main::sub#2 reg byte y 101.0 + +reg byte x [ main::item#4 main::item#1 ] +zp ZP_WORD:2 [ main::cur_item#4 main::cur_item#1 ] +reg byte y [ main::sub#2 main::sub#1 ] +reg byte a [ main::$2 ] +reg byte a [ main::$3 ] diff --git a/src/test/ref/arrays-init.sym b/src/test/ref/arrays-init.sym index 1daabbadc..393858c74 100644 --- a/src/test/ref/arrays-init.sym +++ b/src/test/ref/arrays-init.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[3]) b +(const byte[3]) b#0 b = { fill( 3, 0) } +(byte[]) c +(const byte[]) c#0 c = { (byte) 'c', (byte) 'm', (byte) 'l' } +(byte[]) d +(const byte[]) d#0 d = (string) "cml" +(void()) main() +(label) main::@return + diff --git a/src/test/ref/assignment-chained.sym b/src/test/ref/assignment-chained.sym index 1daabbadc..2b381789d 100644 --- a/src/test/ref/assignment-chained.sym +++ b/src/test/ref/assignment-chained.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte) main::a +(byte) main::a#2 reg byte a 4.0 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte a [ main::a#2 ] diff --git a/src/test/ref/assignment-compound.sym b/src/test/ref/assignment-compound.sym index 1daabbadc..787642bde 100644 --- a/src/test/ref/assignment-compound.sym +++ b/src/test/ref/assignment-compound.sym @@ -1 +1,40 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) cols +(const byte*) cols#0 cols = (byte*) 55296 +(void()) main() +(label) main::@1 +(label) main::@10 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::a +(byte) main::i +(byte[]) ref +(const byte[]) ref#0 ref = { (byte) 3, (byte) 4, (byte) 3, (byte) $12, (byte) 9, (byte) 1, (byte) 4, (byte) 2, (byte) 4, (byte) 5, (byte) 1, (byte) 0 } +(byte*) screen1 +(const byte*) screen1#0 screen1 = (byte*) 1024 +(byte*) screen2 +(const byte*) screen2#0 screen2 = (const byte*) screen1#0+(byte) $28 +(void()) test((byte) test::i , (byte) test::a) +(label) test::@1 +(label) test::@2 +(label) test::@return +(byte) test::a +(byte) test::a#11 a zp ZP_BYTE:2 1.3333333333333333 +(byte) test::i +(byte) test::i#11 reg byte x 3.0 + +zp ZP_BYTE:2 [ test::a#11 ] +reg byte x [ test::i#11 ] diff --git a/src/test/ref/bgblack.sym b/src/test/ref/bgblack.sym index 1daabbadc..775e5475e 100644 --- a/src/test/ref/bgblack.sym +++ b/src/test/ref/bgblack.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/bitmap-plotter.sym b/src/test/ref/bitmap-plotter.sym index 1daabbadc..f8633743b 100644 --- a/src/test/ref/bitmap-plotter.sym +++ b/src/test/ref/bitmap-plotter.sym @@ -1 +1,129 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte*) BITMAP +(const byte*) BITMAP#0 BITMAP = (byte*) 8192 +(byte) BMM +(const byte) BMM#0 BMM = (byte) $20 +(byte*) D011 +(const byte*) D011#0 D011 = (byte*) 53265 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte) DEN +(const byte) DEN#0 DEN = (byte) $10 +(byte*) FGCOL +(const byte*) FGCOL#0 FGCOL = (byte*) 53281 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte) RSEL +(const byte) RSEL#0 RSEL = (byte) 8 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) init_plot_tables() +(byte~) init_plot_tables::$0 reg byte a 22.0 +(byte~) init_plot_tables::$10 $10 zp ZP_BYTE:14 5.5 +(byte~) init_plot_tables::$7 reg byte a 22.0 +(byte~) init_plot_tables::$8 reg byte a 22.0 +(byte~) init_plot_tables::$9 reg byte a 22.0 +(label) init_plot_tables::@1 +(label) init_plot_tables::@2 +(label) init_plot_tables::@3 +(label) init_plot_tables::@4 +(label) init_plot_tables::@5 +(label) init_plot_tables::@6 +(label) init_plot_tables::@return +(byte) init_plot_tables::bits +(byte) init_plot_tables::bits#1 reg byte y 11.0 +(byte) init_plot_tables::bits#3 reg byte y 6.6000000000000005 +(byte) init_plot_tables::bits#4 reg byte y 7.333333333333333 +(byte) init_plot_tables::x +(byte) init_plot_tables::x#1 reg byte x 16.5 +(byte) init_plot_tables::x#2 reg byte x 7.333333333333334 +(byte) init_plot_tables::y +(byte) init_plot_tables::y#1 reg byte x 16.5 +(byte) init_plot_tables::y#2 reg byte x 5.5 +(byte*) init_plot_tables::yoffs +(byte*) init_plot_tables::yoffs#1 yoffs zp ZP_WORD:2 22.0 +(byte*) init_plot_tables::yoffs#2 yoffs zp ZP_WORD:2 6.875 +(byte*) init_plot_tables::yoffs#4 yoffs zp ZP_WORD:2 11.0 +(void()) init_screen() +(label) init_screen::@1 +(label) init_screen::@2 +(label) init_screen::@return +(byte*) init_screen::b +(byte*) init_screen::b#1 b zp ZP_WORD:4 16.5 +(byte*) init_screen::b#2 b zp ZP_WORD:4 16.5 +(byte*) init_screen::c +(byte*) init_screen::c#1 c zp ZP_WORD:6 16.5 +(byte*) init_screen::c#2 c zp ZP_WORD:6 16.5 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(void()) plot((byte) plot::x , (byte) plot::y) +(byte~) plot::$5 reg byte a 4.0 +(byte~) plot::$6 reg byte a 4.0 +(byte~) plot::$7 reg byte a 4.0 +(byte~) plot::$8 reg byte a 4.0 +(byte~) plot::$9 reg byte a 4.0 +(label) plot::@return +(byte*) plot::plotter +(byte*) plot::plotter#0 plotter zp ZP_WORD:10 3.0 +(byte*) plot::plotter_x +(byte*) plot::plotter_x#1 plotter_x zp ZP_WORD:10 2.0 +(byte*) plot::plotter_x#2 plotter_x zp ZP_WORD:10 0.8 +(word) plot::plotter_y +(word) plot::plotter_y#1 plotter_y zp ZP_WORD:12 2.0 +(word) plot::plotter_y#2 plotter_y zp ZP_WORD:12 4.0 +(byte) plot::x +(byte) plot::x#0 x zp ZP_BYTE:8 9.727272727272727 +(byte) plot::y +(byte) plot::y#0 y zp ZP_BYTE:9 15.000000000000002 +(byte[$100]) plot_bit +(const byte[$100]) plot_bit#0 plot_bit = { fill( $100, 0) } +(byte[$100]) plot_xhi +(const byte[$100]) plot_xhi#0 plot_xhi = { fill( $100, 0) } +(byte[$100]) plot_xlo +(const byte[$100]) plot_xlo#0 plot_xlo = { fill( $100, 0) } +(byte[$100]) plot_yhi +(const byte[$100]) plot_yhi#0 plot_yhi = { fill( $100, 0) } +(byte[$100]) plot_ylo +(const byte[$100]) plot_ylo#0 plot_ylo = { fill( $100, 0) } +(void()) plots() +(label) plots::@1 +(label) plots::@2 +(label) plots::@return +(byte) plots::i +(byte) plots::i#1 reg byte x 151.5 +(byte) plots::i#2 reg byte x 101.0 +(byte) plots_cnt +(const byte) plots_cnt#0 plots_cnt = (byte) 8 +(byte[]) plots_x +(const byte[]) plots_x#0 plots_x = { (byte) $3c, (byte) $50, (byte) $6e, (byte) $50, (byte) $3c, (byte) $28, (byte) $a, (byte) $28 } +(byte[]) plots_y +(const byte[]) plots_y#0 plots_y = { (byte) $a, (byte) $28, (byte) $3c, (byte) $50, (byte) $6e, (byte) $50, (byte) $3c, (byte) $28 } + +reg byte x [ plots::i#2 plots::i#1 ] +reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ] +reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] +reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ] +zp ZP_WORD:2 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] +zp ZP_WORD:4 [ init_screen::b#2 init_screen::b#1 ] +zp ZP_WORD:6 [ init_screen::c#2 init_screen::c#1 ] +zp ZP_BYTE:8 [ plot::x#0 ] +zp ZP_BYTE:9 [ plot::y#0 ] +reg byte a [ plot::$6 ] +zp ZP_WORD:10 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ] +reg byte a [ plot::$7 ] +reg byte a [ plot::$8 ] +zp ZP_WORD:12 [ plot::plotter_y#1 plot::plotter_y#2 ] +reg byte a [ plot::$9 ] +reg byte a [ plot::$5 ] +reg byte a [ init_plot_tables::$0 ] +zp ZP_BYTE:14 [ init_plot_tables::$10 ] +reg byte a [ init_plot_tables::$7 ] +reg byte a [ init_plot_tables::$8 ] +reg byte a [ init_plot_tables::$9 ] diff --git a/src/test/ref/bitwise-not.sym b/src/test/ref/bitwise-not.sym index 1daabbadc..b6c7fef55 100644 --- a/src/test/ref/bitwise-not.sym +++ b/src/test/ref/bitwise-not.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::c +(byte) main::c#1 reg byte x 16.5 +(byte) main::c#2 reg byte x 14.666666666666666 + +reg byte x [ main::c#2 main::c#1 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/bool-const.sym b/src/test/ref/bool-const.sym index 1daabbadc..65d94d49b 100644 --- a/src/test/ref/bool-const.sym +++ b/src/test/ref/bool-const.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) bool_const_if() +(label) bool_const_if::@1 +(label) bool_const_if::@return +(bool) bool_const_if::b +(void()) bool_const_inline() +(label) bool_const_inline::@1 +(label) bool_const_inline::@return +(byte) bool_const_inline::a +(void()) bool_const_vars() +(label) bool_const_vars::@1 +(label) bool_const_vars::@return +(byte) bool_const_vars::a +(bool) bool_const_vars::b +(bool) bool_const_vars::b1 +(bool) bool_const_vars::b2 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return + diff --git a/src/test/ref/bool-function.sym b/src/test/ref/bool-function.sym index 1daabbadc..a14aa2bd1 100644 --- a/src/test/ref/bool-function.sym +++ b/src/test/ref/bool-function.sym @@ -1 +1,38 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(bool()) isSet((byte) isSet::i , (bool) isSet::b) +(byte~) isSet::$0 reg byte a 4.0 +(bool~) isSet::$1 reg byte a 4.0 +(label) isSet::@return +(bool) isSet::b +(bool) isSet::b#0 b zp ZP_BOOL:2 3.25 +(byte) isSet::i +(byte) isSet::i#0 reg byte x 13.0 +(bool) isSet::return +(bool) isSet::return#0 reg byte a 22.0 +(bool) isSet::return#1 reg byte a 4.333333333333333 +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(bool~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 6.6 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$0 ] +zp ZP_BOOL:2 [ isSet::b#0 ] +reg byte x [ isSet::i#0 ] +reg byte a [ isSet::return#0 ] +reg byte a [ main::$2 ] +reg byte a [ isSet::$0 ] +reg byte a [ isSet::$1 ] +reg byte a [ isSet::return#1 ] diff --git a/src/test/ref/bool-ifs.sym b/src/test/ref/bool-ifs.sym index 1daabbadc..c3db6137a 100644 --- a/src/test/ref/bool-ifs.sym +++ b/src/test/ref/bool-ifs.sym @@ -1 +1,71 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) bool_and() +(byte~) bool_and::$1 reg byte a 11.0 +(label) bool_and::@1 +(label) bool_and::@2 +(label) bool_and::@3 +(label) bool_and::@4 +(label) bool_and::@5 +(label) bool_and::@return +(byte) bool_and::i +(byte) bool_and::i#1 reg byte x 16.5 +(byte) bool_and::i#2 reg byte x 11.0 +(byte*) bool_and::screen +(const byte*) bool_and::screen#0 screen = (byte*) 1024 +(void()) bool_complex() +(byte~) bool_complex::$5 reg byte a 8.25 +(label) bool_complex::@1 +(label) bool_complex::@2 +(label) bool_complex::@3 +(label) bool_complex::@4 +(label) bool_complex::@5 +(label) bool_complex::@6 +(label) bool_complex::@7 +(label) bool_complex::@return +(byte) bool_complex::i +(byte) bool_complex::i#1 reg byte x 16.5 +(byte) bool_complex::i#2 reg byte x 9.625 +(byte*) bool_complex::screen +(const byte*) bool_complex::screen#0 screen = (byte*) 1144 +(void()) bool_not() +(byte~) bool_not::$1 reg byte a 11.0 +(label) bool_not::@1 +(label) bool_not::@2 +(label) bool_not::@3 +(label) bool_not::@4 +(label) bool_not::@5 +(label) bool_not::@return +(byte) bool_not::i +(byte) bool_not::i#1 reg byte x 16.5 +(byte) bool_not::i#2 reg byte x 11.0 +(byte*) bool_not::screen +(const byte*) bool_not::screen#0 screen = (byte*) 1104 +(void()) bool_or() +(byte~) bool_or::$1 reg byte a 11.0 +(label) bool_or::@1 +(label) bool_or::@2 +(label) bool_or::@3 +(label) bool_or::@4 +(label) bool_or::@5 +(label) bool_or::@return +(byte) bool_or::i +(byte) bool_or::i#1 reg byte x 16.5 +(byte) bool_or::i#2 reg byte x 11.0 +(byte*) bool_or::screen +(const byte*) bool_or::screen#0 screen = (byte*) 1064 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return + +reg byte x [ bool_complex::i#2 bool_complex::i#1 ] +reg byte x [ bool_not::i#2 bool_not::i#1 ] +reg byte x [ bool_or::i#2 bool_or::i#1 ] +reg byte x [ bool_and::i#2 bool_and::i#1 ] +reg byte a [ bool_complex::$5 ] +reg byte a [ bool_not::$1 ] +reg byte a [ bool_or::$1 ] +reg byte a [ bool_and::$1 ] diff --git a/src/test/ref/bool-nullpointer-exception.sym b/src/test/ref/bool-nullpointer-exception.sym index 1daabbadc..1bbdd53d6 100644 --- a/src/test/ref/bool-nullpointer-exception.sym +++ b/src/test/ref/bool-nullpointer-exception.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(bool) framedone +(bool) framedone#2 reg byte a 50.5 +(void()) main() +(label) main::@1 +(label) main::@2 + +reg byte a [ framedone#2 ] diff --git a/src/test/ref/bool-pointer.sym b/src/test/ref/bool-pointer.sym index 1daabbadc..d36475ab9 100644 --- a/src/test/ref/bool-pointer.sym +++ b/src/test/ref/bool-pointer.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(bool*) main::bscreen + diff --git a/src/test/ref/bool-vars.sym b/src/test/ref/bool-vars.sym index 1daabbadc..1b35c6c86 100644 --- a/src/test/ref/bool-vars.sym +++ b/src/test/ref/bool-vars.sym @@ -1 +1,89 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) bool_and() +(byte~) bool_and::$1 reg byte a 11.0 +(label) bool_and::@1 +(label) bool_and::@2 +(label) bool_and::@3 +(label) bool_and::@4 +(label) bool_and::@5 +(label) bool_and::@return +(byte) bool_and::i +(byte) bool_and::i#1 reg byte x 16.5 +(byte) bool_and::i#2 reg byte x 11.0 +(bool) bool_and::o1 +(bool) bool_and::o2 +(bool) bool_and::o3 +(byte*) bool_and::screen +(const byte*) bool_and::screen#0 screen = (byte*) 1024 +(void()) bool_complex() +(byte~) bool_complex::$1 reg byte a 22.0 +(label) bool_complex::@1 +(label) bool_complex::@2 +(label) bool_complex::@3 +(label) bool_complex::@4 +(label) bool_complex::@5 +(label) bool_complex::@6 +(label) bool_complex::@7 +(label) bool_complex::@return +(byte) bool_complex::i +(byte) bool_complex::i#1 reg byte x 16.5 +(byte) bool_complex::i#2 reg byte x 6.6 +(bool) bool_complex::o1 +(bool) bool_complex::o1#0 o1 zp ZP_BOOL:2 6.6000000000000005 +(bool) bool_complex::o2 +(bool) bool_complex::o2#0 o2 zp ZP_BOOL:3 8.25 +(bool) bool_complex::o3 +(bool) bool_complex::o4 +(bool) bool_complex::o5 +(byte*) bool_complex::screen +(const byte*) bool_complex::screen#0 screen = (byte*) 1144 +(void()) bool_not() +(byte~) bool_not::$1 reg byte a 11.0 +(label) bool_not::@1 +(label) bool_not::@2 +(label) bool_not::@3 +(label) bool_not::@4 +(label) bool_not::@5 +(label) bool_not::@return +(byte) bool_not::i +(byte) bool_not::i#1 reg byte x 16.5 +(byte) bool_not::i#2 reg byte x 11.0 +(bool) bool_not::o1 +(bool) bool_not::o2 +(bool) bool_not::o3 +(byte*) bool_not::screen +(const byte*) bool_not::screen#0 screen = (byte*) 1104 +(void()) bool_or() +(byte~) bool_or::$1 reg byte a 11.0 +(label) bool_or::@1 +(label) bool_or::@2 +(label) bool_or::@3 +(label) bool_or::@4 +(label) bool_or::@5 +(label) bool_or::@return +(byte) bool_or::i +(byte) bool_or::i#1 reg byte x 16.5 +(byte) bool_or::i#2 reg byte x 11.0 +(bool) bool_or::o1 +(bool) bool_or::o2 +(bool) bool_or::o3 +(byte*) bool_or::screen +(const byte*) bool_or::screen#0 screen = (byte*) 1064 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return + +reg byte x [ bool_complex::i#2 bool_complex::i#1 ] +reg byte x [ bool_not::i#2 bool_not::i#1 ] +reg byte x [ bool_or::i#2 bool_or::i#1 ] +reg byte x [ bool_and::i#2 bool_and::i#1 ] +zp ZP_BOOL:2 [ bool_complex::o1#0 ] +reg byte a [ bool_complex::$1 ] +zp ZP_BOOL:3 [ bool_complex::o2#0 ] +reg byte a [ bool_not::$1 ] +reg byte a [ bool_or::$1 ] +reg byte a [ bool_and::$1 ] diff --git a/src/test/ref/bresenham.sym b/src/test/ref/bresenham.sym index 1daabbadc..de2d8277c 100644 --- a/src/test/ref/bresenham.sym +++ b/src/test/ref/bresenham.sym @@ -1 +1,46 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[$28*$19]) SCREEN +(const byte[$28*$19]) SCREEN#0 SCREEN = (byte*) 1024 +(byte) STAR +(const byte) STAR#0 STAR = (byte) $51 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::cursor +(byte*) main::cursor#1 cursor zp ZP_WORD:2 8.25 +(byte*) main::cursor#2 cursor zp ZP_WORD:2 11.0 +(byte*) main::cursor#3 cursor zp ZP_WORD:2 11.0 +(byte*) main::cursor#5 cursor zp ZP_WORD:2 16.5 +(byte) main::e +(byte) main::e#1 reg byte x 11.0 +(byte) main::e#2 reg byte x 22.0 +(byte) main::e#3 reg byte x 5.5 +(byte) main::e#5 reg byte x 16.5 +(byte) main::x +(byte) main::x#1 x zp ZP_BYTE:4 3.666666666666667 +(byte) main::x#2 x zp ZP_BYTE:4 11.0 +(byte) main::x0 +(const byte) main::x0#0 x0 = (byte) 4 +(byte) main::x1 +(const byte) main::x1#0 x1 = (byte) $27 +(byte) main::xd +(const byte) main::xd#0 xd = (const byte) main::x1#0-(const byte) main::x0#0 +(byte) main::y +(byte) main::y#1 y zp ZP_BYTE:5 7.333333333333333 +(byte) main::y#2 y zp ZP_BYTE:5 5.5 +(byte) main::y#4 y zp ZP_BYTE:5 16.5 +(byte) main::y0 +(const byte) main::y0#0 y0 = (byte) 4 +(byte) main::y1 +(const byte) main::y1#0 y1 = (byte) $18 +(byte) main::yd +(const byte) main::yd#0 yd = (const byte) main::y1#0-(const byte) main::y0#0 + +zp ZP_WORD:2 [ main::cursor#3 main::cursor#5 main::cursor#1 main::cursor#2 ] +zp ZP_BYTE:4 [ main::x#2 main::x#1 ] +reg byte x [ main::e#3 main::e#5 main::e#1 main::e#2 ] +zp ZP_BYTE:5 [ main::y#2 main::y#4 main::y#1 ] diff --git a/src/test/ref/bresenhamarr.sym b/src/test/ref/bresenhamarr.sym index 1daabbadc..4a442c3fd 100644 --- a/src/test/ref/bresenhamarr.sym +++ b/src/test/ref/bresenhamarr.sym @@ -1 +1,46 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte*~) main::$16 $16 zp ZP_WORD:6 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::STAR +(const byte) main::STAR#0 STAR = (byte) $51 +(byte) main::e +(byte) main::e#1 reg byte x 11.0 +(byte) main::e#2 reg byte x 22.0 +(byte) main::e#3 reg byte x 4.4 +(byte) main::e#5 reg byte x 16.5 +(word) main::idx +(word) main::idx#1 idx zp ZP_WORD:2 8.25 +(word) main::idx#2 idx zp ZP_WORD:2 11.0 +(word) main::idx#3 idx zp ZP_WORD:2 8.25 +(word) main::idx#5 idx zp ZP_WORD:2 16.5 +(byte[$28*$19]) main::screen +(const byte[$28*$19]) main::screen#0 screen = (byte*) 1024 +(byte) main::x +(byte) main::x#1 x zp ZP_BYTE:4 3.666666666666667 +(byte) main::x#2 x zp ZP_BYTE:4 7.333333333333333 +(byte) main::x0 +(const byte) main::x0#0 x0 = (byte) 0 +(byte) main::x1 +(const byte) main::x1#0 x1 = (byte) $27 +(byte) main::xd +(byte) main::y +(byte) main::y#1 y zp ZP_BYTE:5 7.333333333333333 +(byte) main::y#2 y zp ZP_BYTE:5 4.714285714285714 +(byte) main::y#4 y zp ZP_BYTE:5 16.5 +(byte) main::y0 +(const byte) main::y0#0 y0 = (byte) 0 +(byte) main::y1 +(const byte) main::y1#0 y1 = (byte) $18 +(byte) main::yd + +zp ZP_WORD:2 [ main::idx#3 main::idx#5 main::idx#1 main::idx#2 ] +zp ZP_BYTE:4 [ main::x#2 main::x#1 ] +reg byte x [ main::e#3 main::e#5 main::e#1 main::e#2 ] +zp ZP_BYTE:5 [ main::y#2 main::y#4 main::y#1 ] +zp ZP_WORD:6 [ main::$16 ] diff --git a/src/test/ref/c-types.sym b/src/test/ref/c-types.sym index 1daabbadc..2c1acfcf6 100644 --- a/src/test/ref/c-types.sym +++ b/src/test/ref/c-types.sym @@ -1 +1,175 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#2 reg byte x 4.0 +(byte) print_byte::b#4 reg byte x 2.5 +(byte~) print_byte::b#6 reg byte x 4.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#14 reg byte a 6.0 +(byte) print_char::ch#4 reg byte a 4.0 +(byte) print_char::ch#5 reg byte a 4.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:10 11.0 +(byte*) print_char_cursor#132 print_char_cursor zp ZP_WORD:10 3.583333333333333 +(byte*) print_char_cursor#139 print_char_cursor zp ZP_WORD:10 6.0 +(byte*) print_char_cursor#140 print_char_cursor zp ZP_WORD:10 3.0 +(byte*) print_char_cursor#143 print_char_cursor zp ZP_WORD:10 3.333333333333333 +(byte*) print_char_cursor#150 print_char_cursor zp ZP_WORD:10 8.0 +(byte*~) print_char_cursor#155 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#156 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#157 print_char_cursor zp ZP_WORD:10 4.0 +(byte*) print_char_cursor#24 print_char_cursor zp ZP_WORD:10 0.5568181818181817 +(byte*) print_char_cursor#90 print_char_cursor zp ZP_WORD:10 16.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:14 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:14 16.5 +(void()) print_dword((dword) print_dword::dw) +(label) print_dword::@1 +(label) print_dword::@return +(dword) print_dword::dw +(dword) print_dword::dw#0 dw zp ZP_DWORD:4 4.0 +(dword) print_dword::dw#2 dw zp ZP_DWORD:4 2.0 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 0.8333333333333333 +(byte*) print_line_cursor#20 print_line_cursor zp ZP_WORD:2 24.0 +(byte*) print_line_cursor#39 print_line_cursor zp ZP_WORD:2 8.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 reg byte x 4.0 +(signed byte) print_sbyte::b#3 reg byte x 1.0 +(signed byte) print_sbyte::b#5 reg byte x 4.0 +(byte*) print_screen +(void()) print_sdword((signed dword) print_sdword::dw) +(label) print_sdword::@1 +(label) print_sdword::@2 +(label) print_sdword::@3 +(label) print_sdword::@return +(signed dword) print_sdword::dw +(signed dword) print_sdword::dw#0 dw zp ZP_DWORD:4 4.0 +(signed dword) print_sdword::dw#3 dw zp ZP_DWORD:4 1.5 +(signed dword) print_sdword::dw#4 dw zp ZP_DWORD:4 4.0 +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:12 22.0 +(byte*) print_str::str#5 str zp ZP_WORD:12 11.5 +(byte*) print_str::str#7 str zp ZP_WORD:12 2.0 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:8 4.0 +(signed word) print_sword::w#5 w zp ZP_WORD:8 1.5 +(signed word) print_sword::w#6 w zp ZP_WORD:8 4.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#1 w zp ZP_WORD:8 4.0 +(word) print_word::w#2 w zp ZP_WORD:8 4.0 +(word) print_word::w#5 w zp ZP_WORD:8 3.333333333333333 +(word~) print_word::w#9 w zp ZP_WORD:8 4.0 +(void()) testChar() +(label) testChar::@1 +(label) testChar::@2 +(label) testChar::@3 +(label) testChar::@4 +(label) testChar::@5 +(label) testChar::@6 +(label) testChar::@return +(signed byte) testChar::n +(const signed byte) testChar::n#0 n = (signed byte) -$e +(signed byte) testChar::s +(const signed byte) testChar::s#0 s = (signed byte) -$e +(const string) testChar::str str = (string) "char: @" +(byte) testChar::u +(const byte) testChar::u#0 u = (byte) $e +(void()) testInt() +(label) testInt::@1 +(label) testInt::@2 +(label) testInt::@3 +(label) testInt::@4 +(label) testInt::@5 +(label) testInt::@6 +(label) testInt::@return +(signed word) testInt::n +(const signed word) testInt::n#0 n = (signed word) -$578 +(signed word) testInt::s +(const signed word) testInt::s#0 s = (signed word) -$578 +(const string) testInt::str str = (string) "int: @" +(word) testInt::u +(const word) testInt::u#0 u = (word) $578 +(void()) testLong() +(label) testLong::@1 +(label) testLong::@2 +(label) testLong::@3 +(label) testLong::@4 +(label) testLong::@5 +(label) testLong::@6 +(label) testLong::@return +(signed dword) testLong::n +(const signed dword) testLong::n#0 n = (signed dword) -$222e0 +(signed dword) testLong::s +(const signed dword) testLong::s#0 s = (signed dword) -$222e0 +(const string) testLong::str str = (string) "long: @" +(dword) testLong::u +(const dword) testLong::u#0 u = (dword) $222e0 +(void()) testShort() +(label) testShort::@1 +(label) testShort::@2 +(label) testShort::@3 +(label) testShort::@4 +(label) testShort::@5 +(label) testShort::@6 +(label) testShort::@return +(signed word) testShort::n +(const signed word) testShort::n#0 n = (signed word) -$578 +(signed word) testShort::s +(const signed word) testShort::s#0 s = (signed word) -$578 +(const string) testShort::str str = (string) "short: @" +(word) testShort::u +(const word) testShort::u#0 u = (word) $578 + +zp ZP_WORD:2 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 ] +zp ZP_DWORD:4 [ print_sdword::dw#4 print_sdword::dw#3 print_sdword::dw#0 print_dword::dw#2 print_dword::dw#0 ] +zp ZP_WORD:8 [ print_word::w#5 print_word::w#1 print_word::w#2 print_word::w#9 print_sword::w#6 print_sword::w#5 print_sword::w#0 ] +reg byte x [ print_byte::b#4 print_byte::b#6 print_byte::b#1 print_byte::b#2 ] +reg byte a [ print_char::ch#14 print_char::ch#4 print_char::ch#5 ] +zp ZP_WORD:10 [ print_char_cursor#90 print_char_cursor#143 print_char_cursor#139 print_char_cursor#140 print_char_cursor#24 print_char_cursor#132 print_char_cursor#150 print_char_cursor#155 print_char_cursor#156 print_char_cursor#157 print_char_cursor#1 ] +zp ZP_WORD:12 [ print_str::str#5 print_str::str#7 print_str::str#0 ] +reg byte x [ print_sbyte::b#5 print_sbyte::b#0 print_sbyte::b#3 ] +zp ZP_WORD:14 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] diff --git a/src/test/ref/c64dtv-8bppcharstretch.sym b/src/test/ref/c64dtv-8bppcharstretch.sym index 1daabbadc..9d525caa9 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.sym +++ b/src/test/ref/c64dtv-8bppcharstretch.sym @@ -1 +1,193 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CHARGEN +(const byte*) CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) CHARSET8 +(const byte*) CHARSET8#0 CHARSET8 = (byte*) 32768 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte) DTV_BADLINE_OFF +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte) $20 +(byte) DTV_CHUNKY +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte) $40 +(byte*) DTV_CONTROL +(const byte*) DTV_CONTROL#0 DTV_CONTROL = (byte*) 53308 +(byte*) DTV_FEATURE +(const byte*) DTV_FEATURE#0 DTV_FEATURE = (byte*) 53311 +(byte) DTV_FEATURE_ENABLE +(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte) 1 +(byte) DTV_HIGHCOLOR +(const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte) 4 +(byte) DTV_LINEAR +(const byte) DTV_LINEAR#0 DTV_LINEAR = (byte) 1 +(byte*) DTV_PALETTE +(const byte*) DTV_PALETTE#0 DTV_PALETTE = (byte*) 53760 +(byte*) DTV_PLANEA_MODULO_HI +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = (byte*) 53305 +(byte*) DTV_PLANEA_MODULO_LO +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = (byte*) 53304 +(byte*) DTV_PLANEA_START_HI +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = (byte*) 53317 +(byte*) DTV_PLANEA_START_LO +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = (byte*) 53306 +(byte*) DTV_PLANEA_START_MI +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = (byte*) 53307 +(byte*) DTV_PLANEA_STEP +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = (byte*) 53318 +(byte*) DTV_PLANEB_MODULO_HI +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = (byte*) 53320 +(byte*) DTV_PLANEB_MODULO_LO +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = (byte*) 53319 +(byte*) DTV_PLANEB_START_HI +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = (byte*) 53323 +(byte*) DTV_PLANEB_START_LO +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = (byte*) 53321 +(byte*) DTV_PLANEB_START_MI +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = (byte*) 53322 +(byte*) DTV_PLANEB_STEP +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = (byte*) 53324 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_CHARROM +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte) $31 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 31744 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte*) VIC_CONTROL2 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = (byte*) 53270 +(byte) VIC_CSEL +(const byte) VIC_CSEL#0 VIC_CSEL = (byte) 8 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_ECM +(const byte) VIC_ECM#0 VIC_ECM = (byte) $40 +(byte) VIC_MCM +(const byte) VIC_MCM#0 VIC_MCM = (byte) $10 +(byte*) VIC_MEMORY +(const byte*) VIC_MEMORY#0 VIC_MEMORY = (byte*) 53272 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) +(label) dtvSetCpuBankSegment1::@return +(byte*) dtvSetCpuBankSegment1::cpuBank +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = (byte*) 255 +(byte) dtvSetCpuBankSegment1::cpuBankIdx +(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 reg byte a 2.0 +(void()) gfx_init() +(label) gfx_init::@1 +(label) gfx_init::@return +(void()) gfx_init_plane_charset8() +(byte~) gfx_init_plane_charset8::$10 reg byte a 2002.0 +(label) gfx_init_plane_charset8::@1 +(label) gfx_init_plane_charset8::@2 +(label) gfx_init_plane_charset8::@3 +(label) gfx_init_plane_charset8::@4 +(label) gfx_init_plane_charset8::@5 +(label) gfx_init_plane_charset8::@6 +(label) gfx_init_plane_charset8::@7 +(label) gfx_init_plane_charset8::@8 +(label) gfx_init_plane_charset8::@9 +(label) gfx_init_plane_charset8::@return +(byte) gfx_init_plane_charset8::bits +(byte) gfx_init_plane_charset8::bits#0 bits zp ZP_BYTE:6 101.0 +(byte) gfx_init_plane_charset8::bits#1 bits zp ZP_BYTE:6 500.5 +(byte) gfx_init_plane_charset8::bits#2 bits zp ZP_BYTE:6 443.42857142857144 +(byte) gfx_init_plane_charset8::c +(byte) gfx_init_plane_charset8::c#2 reg byte a 2002.0 +(byte~) gfx_init_plane_charset8::c#3 reg byte a 2002.0 +(byte) gfx_init_plane_charset8::ch +(byte) gfx_init_plane_charset8::ch#1 ch zp ZP_BYTE:2 16.5 +(byte) gfx_init_plane_charset8::ch#8 ch zp ZP_BYTE:2 1.2941176470588236 +(byte*) gfx_init_plane_charset8::chargen +(byte*) gfx_init_plane_charset8::chargen#1 chargen zp ZP_WORD:3 13.3125 +(byte*) gfx_init_plane_charset8::chargen#2 chargen zp ZP_WORD:3 157.0 +(byte*) gfx_init_plane_charset8::chargen#3 chargen zp ZP_WORD:3 22.0 +(byte) gfx_init_plane_charset8::col +(byte) gfx_init_plane_charset8::col#1 col zp ZP_BYTE:9 302.0 +(byte) gfx_init_plane_charset8::col#2 col zp ZP_BYTE:9 388.0 +(byte) gfx_init_plane_charset8::col#5 col zp ZP_BYTE:9 71.0 +(byte) gfx_init_plane_charset8::col#6 col zp ZP_BYTE:9 22.0 +(byte) gfx_init_plane_charset8::cp +(byte) gfx_init_plane_charset8::cp#1 reg byte x 1501.5 +(byte) gfx_init_plane_charset8::cp#2 reg byte x 222.44444444444446 +(byte) gfx_init_plane_charset8::cr +(byte) gfx_init_plane_charset8::cr#1 cr zp ZP_BYTE:5 151.5 +(byte) gfx_init_plane_charset8::cr#6 cr zp ZP_BYTE:5 14.428571428571429 +(byte*) gfx_init_plane_charset8::gfxa +(byte*) gfx_init_plane_charset8::gfxa#1 gfxa zp ZP_WORD:7 234.8888888888889 +(byte*) gfx_init_plane_charset8::gfxa#2 gfxa zp ZP_WORD:7 517.3333333333334 +(byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp ZP_WORD:7 71.0 +(byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp ZP_WORD:7 22.0 +(byte) gfx_init_plane_charset8::gfxbCpuBank +(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = (byte)(const byte*) CHARSET8#0/(word) $4000 +(void()) gfx_init_screen0() +(byte~) gfx_init_screen0::$0 reg byte a 202.0 +(byte~) gfx_init_screen0::$1 $1 zp ZP_BYTE:13 101.0 +(byte~) gfx_init_screen0::$2 reg byte a 202.0 +(byte~) gfx_init_screen0::$3 reg byte a 202.0 +(label) gfx_init_screen0::@1 +(label) gfx_init_screen0::@2 +(label) gfx_init_screen0::@3 +(label) gfx_init_screen0::@return +(byte*) gfx_init_screen0::ch +(byte*) gfx_init_screen0::ch#1 ch zp ZP_WORD:11 42.599999999999994 +(byte*) gfx_init_screen0::ch#2 ch zp ZP_WORD:11 52.33333333333333 +(byte*) gfx_init_screen0::ch#3 ch zp ZP_WORD:11 22.0 +(byte) gfx_init_screen0::cx +(byte) gfx_init_screen0::cx#1 reg byte x 151.5 +(byte) gfx_init_screen0::cx#2 reg byte x 43.285714285714285 +(byte) gfx_init_screen0::cy +(byte) gfx_init_screen0::cy#1 cy zp ZP_BYTE:10 16.5 +(byte) gfx_init_screen0::cy#4 cy zp ZP_BYTE:10 12.299999999999999 +(void()) main() +(byte~) main::$32 reg byte a 202.0 +(byte~) main::$33 reg byte a 202.0 +(byte~) main::$34 reg byte a 202.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(byte) main::j +(byte) main::j#1 reg byte x 16.5 +(byte) main::j#2 reg byte x 22.0 +(byte) main::rst +(byte) main::rst#1 reg byte x 57.714285714285715 + +reg byte x [ main::j#2 main::j#1 ] +zp ZP_BYTE:2 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +zp ZP_WORD:3 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] +zp ZP_BYTE:5 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] +zp ZP_BYTE:6 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] +zp ZP_WORD:7 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] +zp ZP_BYTE:9 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] +reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] +reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] +reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#2 ] +zp ZP_BYTE:10 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] +zp ZP_WORD:11 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] +reg byte x [ main::rst#1 ] +reg byte a [ main::$32 ] +reg byte a [ main::$33 ] +reg byte a [ main::$34 ] +reg byte a [ gfx_init_plane_charset8::$10 ] +reg byte a [ gfx_init_screen0::$0 ] +zp ZP_BYTE:13 [ gfx_init_screen0::$1 ] +reg byte a [ gfx_init_screen0::$2 ] +reg byte a [ gfx_init_screen0::$3 ] diff --git a/src/test/ref/c64dtv-8bppchunkystretch.sym b/src/test/ref/c64dtv-8bppchunkystretch.sym index 1daabbadc..a6357623e 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.sym +++ b/src/test/ref/c64dtv-8bppchunkystretch.sym @@ -1 +1,130 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CHUNKY +(const byte*) CHUNKY#0 CHUNKY = (byte*) 32768 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte) DTV_BADLINE_OFF +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte) $20 +(byte) DTV_CHUNKY +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte) $40 +(byte) DTV_COLORRAM_OFF +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte) $10 +(byte*) DTV_CONTROL +(const byte*) DTV_CONTROL#0 DTV_CONTROL = (byte*) 53308 +(byte*) DTV_FEATURE +(const byte*) DTV_FEATURE#0 DTV_FEATURE = (byte*) 53311 +(byte) DTV_FEATURE_ENABLE +(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte) 1 +(byte) DTV_HIGHCOLOR +(const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte) 4 +(byte) DTV_LINEAR +(const byte) DTV_LINEAR#0 DTV_LINEAR = (byte) 1 +(byte*) DTV_PALETTE +(const byte*) DTV_PALETTE#0 DTV_PALETTE = (byte*) 53760 +(byte*) DTV_PLANEB_MODULO_HI +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = (byte*) 53320 +(byte*) DTV_PLANEB_MODULO_LO +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = (byte*) 53319 +(byte*) DTV_PLANEB_START_HI +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = (byte*) 53323 +(byte*) DTV_PLANEB_START_LO +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = (byte*) 53321 +(byte*) DTV_PLANEB_START_MI +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = (byte*) 53322 +(byte*) DTV_PLANEB_STEP +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = (byte*) 53324 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte*) VIC_CONTROL2 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = (byte*) 53270 +(byte) VIC_CSEL +(const byte) VIC_CSEL#0 VIC_CSEL = (byte) 8 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_ECM +(const byte) VIC_ECM#0 VIC_ECM = (byte) $40 +(byte) VIC_MCM +(const byte) VIC_MCM#0 VIC_MCM = (byte) $10 +(byte*) VIC_MEMORY +(const byte*) VIC_MEMORY#0 VIC_MEMORY = (byte*) 53272 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) +(label) dtvSetCpuBankSegment1::@return +(byte*) dtvSetCpuBankSegment1::cpuBank +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = (byte*) 255 +(byte) dtvSetCpuBankSegment1::cpuBankIdx +(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 202.0 +(byte) dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 103.0 +(void()) gfx_init_chunky() +(word~) gfx_init_chunky::$9 $9 zp ZP_WORD:7 101.0 +(label) gfx_init_chunky::@1 +(label) gfx_init_chunky::@2 +(label) gfx_init_chunky::@3 +(label) gfx_init_chunky::@4 +(label) gfx_init_chunky::@5 +(label) gfx_init_chunky::@6 +(label) gfx_init_chunky::@7 +(label) gfx_init_chunky::@return +(byte) gfx_init_chunky::c +(byte) gfx_init_chunky::c#0 reg byte a 202.0 +(byte*) gfx_init_chunky::gfxb +(byte*) gfx_init_chunky::gfxb#1 gfxb zp ZP_WORD:5 42.599999999999994 +(byte*) gfx_init_chunky::gfxb#3 gfxb zp ZP_WORD:5 157.0 +(byte*) gfx_init_chunky::gfxb#4 gfxb zp ZP_WORD:5 75.75 +(byte*) gfx_init_chunky::gfxb#5 gfxb zp ZP_WORD:5 22.0 +(byte) gfx_init_chunky::gfxbCpuBank +(byte) gfx_init_chunky::gfxbCpuBank#2 reg byte x 202.0 +(byte) gfx_init_chunky::gfxbCpuBank#4 reg byte x 103.75 +(byte) gfx_init_chunky::gfxbCpuBank#7 reg byte x 22.0 +(byte) gfx_init_chunky::gfxbCpuBank#8 reg byte x 34.888888888888886 +(word) gfx_init_chunky::x +(word) gfx_init_chunky::x#1 x zp ZP_WORD:3 151.5 +(word) gfx_init_chunky::x#2 x zp ZP_WORD:3 30.299999999999997 +(byte) gfx_init_chunky::y +(byte) gfx_init_chunky::y#1 y zp ZP_BYTE:2 16.5 +(byte) gfx_init_chunky::y#6 y zp ZP_BYTE:2 9.461538461538462 +(void()) main() +(byte~) main::$31 reg byte a 202.0 +(byte~) main::$32 reg byte a 202.0 +(byte~) main::$33 reg byte a 202.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(byte) main::j +(byte) main::j#1 reg byte x 16.5 +(byte) main::j#2 reg byte x 22.0 +(byte) main::rst +(byte) main::rst#1 reg byte x 57.714285714285715 + +reg byte x [ main::j#2 main::j#1 ] +zp ZP_BYTE:2 [ gfx_init_chunky::y#6 gfx_init_chunky::y#1 ] +zp ZP_WORD:3 [ gfx_init_chunky::x#2 gfx_init_chunky::x#1 ] +reg byte x [ gfx_init_chunky::gfxbCpuBank#4 gfx_init_chunky::gfxbCpuBank#7 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::gfxbCpuBank#2 ] +zp ZP_WORD:5 [ gfx_init_chunky::gfxb#4 gfx_init_chunky::gfxb#3 gfx_init_chunky::gfxb#5 gfx_init_chunky::gfxb#1 ] +reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ] +reg byte x [ main::rst#1 ] +reg byte a [ main::$31 ] +reg byte a [ main::$32 ] +reg byte a [ main::$33 ] +zp ZP_WORD:7 [ gfx_init_chunky::$9 ] +reg byte a [ gfx_init_chunky::c#0 ] diff --git a/src/test/ref/c64dtv-blitter-box.sym b/src/test/ref/c64dtv-blitter-box.sym index 1daabbadc..4963c3632 100644 --- a/src/test/ref/c64dtv-blitter-box.sym +++ b/src/test/ref/c64dtv-blitter-box.sym @@ -1 +1,97 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) DTV_BLITTER_ALU +(const byte*) DTV_BLITTER_ALU#0 DTV_BLITTER_ALU = (byte*) 54078 +(byte*) DTV_BLITTER_CONTROL +(const byte*) DTV_BLITTER_CONTROL#0 DTV_BLITTER_CONTROL = (byte*) 54074 +(byte*) DTV_BLITTER_CONTROL2 +(const byte*) DTV_BLITTER_CONTROL2#0 DTV_BLITTER_CONTROL2 = (byte*) 54079 +(byte*) DTV_BLITTER_DEST_HI +(const byte*) DTV_BLITTER_DEST_HI#0 DTV_BLITTER_DEST_HI = (byte*) 54066 +(byte*) DTV_BLITTER_DEST_LIN_HI +(const byte*) DTV_BLITTER_DEST_LIN_HI#0 DTV_BLITTER_DEST_LIN_HI = (byte*) 54070 +(byte*) DTV_BLITTER_DEST_LIN_LO +(const byte*) DTV_BLITTER_DEST_LIN_LO#0 DTV_BLITTER_DEST_LIN_LO = (byte*) 54069 +(byte*) DTV_BLITTER_DEST_LO +(const byte*) DTV_BLITTER_DEST_LO#0 DTV_BLITTER_DEST_LO = (byte*) 54064 +(byte*) DTV_BLITTER_DEST_MI +(const byte*) DTV_BLITTER_DEST_MI#0 DTV_BLITTER_DEST_MI = (byte*) 54065 +(byte*) DTV_BLITTER_DEST_MOD_HI +(const byte*) DTV_BLITTER_DEST_MOD_HI#0 DTV_BLITTER_DEST_MOD_HI = (byte*) 54068 +(byte*) DTV_BLITTER_DEST_MOD_LO +(const byte*) DTV_BLITTER_DEST_MOD_LO#0 DTV_BLITTER_DEST_MOD_LO = (byte*) 54067 +(byte*) DTV_BLITTER_DEST_STEP +(const byte*) DTV_BLITTER_DEST_STEP#0 DTV_BLITTER_DEST_STEP = (byte*) 54071 +(byte*) DTV_BLITTER_LEN_HI +(const byte*) DTV_BLITTER_LEN_HI#0 DTV_BLITTER_LEN_HI = (byte*) 54073 +(byte*) DTV_BLITTER_LEN_LO +(const byte*) DTV_BLITTER_LEN_LO#0 DTV_BLITTER_LEN_LO = (byte*) 54072 +(byte*) DTV_BLITTER_SRCA_HI +(const byte*) DTV_BLITTER_SRCA_HI#0 DTV_BLITTER_SRCA_HI = (byte*) 54050 +(byte*) DTV_BLITTER_SRCA_LIN_HI +(const byte*) DTV_BLITTER_SRCA_LIN_HI#0 DTV_BLITTER_SRCA_LIN_HI = (byte*) 54054 +(byte*) DTV_BLITTER_SRCA_LIN_LO +(const byte*) DTV_BLITTER_SRCA_LIN_LO#0 DTV_BLITTER_SRCA_LIN_LO = (byte*) 54053 +(byte*) DTV_BLITTER_SRCA_LO +(const byte*) DTV_BLITTER_SRCA_LO#0 DTV_BLITTER_SRCA_LO = (byte*) 54048 +(byte*) DTV_BLITTER_SRCA_MI +(const byte*) DTV_BLITTER_SRCA_MI#0 DTV_BLITTER_SRCA_MI = (byte*) 54049 +(byte*) DTV_BLITTER_SRCA_MOD_HI +(const byte*) DTV_BLITTER_SRCA_MOD_HI#0 DTV_BLITTER_SRCA_MOD_HI = (byte*) 54052 +(byte*) DTV_BLITTER_SRCA_MOD_LO +(const byte*) DTV_BLITTER_SRCA_MOD_LO#0 DTV_BLITTER_SRCA_MOD_LO = (byte*) 54051 +(byte*) DTV_BLITTER_SRCA_STEP +(const byte*) DTV_BLITTER_SRCA_STEP#0 DTV_BLITTER_SRCA_STEP = (byte*) 54055 +(byte*) DTV_BLITTER_SRCB_HI +(const byte*) DTV_BLITTER_SRCB_HI#0 DTV_BLITTER_SRCB_HI = (byte*) 54058 +(byte*) DTV_BLITTER_SRCB_LIN_HI +(const byte*) DTV_BLITTER_SRCB_LIN_HI#0 DTV_BLITTER_SRCB_LIN_HI = (byte*) 54062 +(byte*) DTV_BLITTER_SRCB_LIN_LO +(const byte*) DTV_BLITTER_SRCB_LIN_LO#0 DTV_BLITTER_SRCB_LIN_LO = (byte*) 54061 +(byte*) DTV_BLITTER_SRCB_LO +(const byte*) DTV_BLITTER_SRCB_LO#0 DTV_BLITTER_SRCB_LO = (byte*) 54056 +(byte*) DTV_BLITTER_SRCB_MI +(const byte*) DTV_BLITTER_SRCB_MI#0 DTV_BLITTER_SRCB_MI = (byte*) 54057 +(byte*) DTV_BLITTER_SRCB_MOD_HI +(const byte*) DTV_BLITTER_SRCB_MOD_HI#0 DTV_BLITTER_SRCB_MOD_HI = (byte*) 54060 +(byte*) DTV_BLITTER_SRCB_MOD_LO +(const byte*) DTV_BLITTER_SRCB_MOD_LO#0 DTV_BLITTER_SRCB_MOD_LO = (byte*) 54059 +(byte*) DTV_BLITTER_SRCB_STEP +(const byte*) DTV_BLITTER_SRCB_STEP#0 DTV_BLITTER_SRCB_STEP = (byte*) 54063 +(byte*) DTV_BLITTER_TRANSPARANCY +(const byte*) DTV_BLITTER_TRANSPARANCY#0 DTV_BLITTER_TRANSPARANCY = (byte*) 54075 +(byte) DTV_BLIT_ADD +(const byte) DTV_BLIT_ADD#0 DTV_BLIT_ADD = (byte) $30 +(byte) DTV_BLIT_CLEAR_IRQ +(const byte) DTV_BLIT_CLEAR_IRQ#0 DTV_BLIT_CLEAR_IRQ = (byte) 1 +(byte) DTV_BLIT_DEST_CONT +(const byte) DTV_BLIT_DEST_CONT#0 DTV_BLIT_DEST_CONT = (byte) 8 +(byte) DTV_BLIT_DEST_FWD +(const byte) DTV_BLIT_DEST_FWD#0 DTV_BLIT_DEST_FWD = (byte) 8 +(byte) DTV_BLIT_FORCE_START +(const byte) DTV_BLIT_FORCE_START#0 DTV_BLIT_FORCE_START = (byte) 1 +(byte) DTV_BLIT_SRCA_FWD +(const byte) DTV_BLIT_SRCA_FWD#0 DTV_BLIT_SRCA_FWD = (byte) 2 +(byte) DTV_BLIT_SRCB_FWD +(const byte) DTV_BLIT_SRCB_FWD#0 DTV_BLIT_SRCB_FWD = (byte) 4 +(byte) DTV_BLIT_STATUS_BUSY +(const byte) DTV_BLIT_STATUS_BUSY#0 DTV_BLIT_STATUS_BUSY = (byte) 1 +(byte) DTV_BLIT_TRANSPARANCY_NONE +(const byte) DTV_BLIT_TRANSPARANCY_NONE#0 DTV_BLIT_TRANSPARANCY_NONE = (byte) 0 +(byte*) DTV_FEATURE +(const byte*) DTV_FEATURE#0 DTV_FEATURE = (byte*) 53311 +(byte) DTV_FEATURE_ENABLE +(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte) 1 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) SRCA +(const byte[]) SRCA#0 SRCA = (string) "camelot rules!@" +(byte[]) SRCB +(const byte[]) SRCB#0 SRCB = { (byte) $80 } +(void()) main() +(byte~) main::$25 reg byte a 22.0 +(label) main::@1 +(label) main::@return + +reg byte a [ main::$25 ] diff --git a/src/test/ref/c64dtv-blittermin.sym b/src/test/ref/c64dtv-blittermin.sym index 1daabbadc..b14bf57b1 100644 --- a/src/test/ref/c64dtv-blittermin.sym +++ b/src/test/ref/c64dtv-blittermin.sym @@ -1 +1,104 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) DTV_BLITTER_ALU +(const byte*) DTV_BLITTER_ALU#0 DTV_BLITTER_ALU = (byte*) 54078 +(byte*) DTV_BLITTER_CONTROL +(const byte*) DTV_BLITTER_CONTROL#0 DTV_BLITTER_CONTROL = (byte*) 54074 +(byte*) DTV_BLITTER_CONTROL2 +(const byte*) DTV_BLITTER_CONTROL2#0 DTV_BLITTER_CONTROL2 = (byte*) 54079 +(byte*) DTV_BLITTER_DEST_HI +(const byte*) DTV_BLITTER_DEST_HI#0 DTV_BLITTER_DEST_HI = (byte*) 54066 +(byte*) DTV_BLITTER_DEST_LIN_HI +(const byte*) DTV_BLITTER_DEST_LIN_HI#0 DTV_BLITTER_DEST_LIN_HI = (byte*) 54070 +(byte*) DTV_BLITTER_DEST_LIN_LO +(const byte*) DTV_BLITTER_DEST_LIN_LO#0 DTV_BLITTER_DEST_LIN_LO = (byte*) 54069 +(byte*) DTV_BLITTER_DEST_LO +(const byte*) DTV_BLITTER_DEST_LO#0 DTV_BLITTER_DEST_LO = (byte*) 54064 +(byte*) DTV_BLITTER_DEST_MI +(const byte*) DTV_BLITTER_DEST_MI#0 DTV_BLITTER_DEST_MI = (byte*) 54065 +(byte*) DTV_BLITTER_DEST_MOD_HI +(const byte*) DTV_BLITTER_DEST_MOD_HI#0 DTV_BLITTER_DEST_MOD_HI = (byte*) 54068 +(byte*) DTV_BLITTER_DEST_MOD_LO +(const byte*) DTV_BLITTER_DEST_MOD_LO#0 DTV_BLITTER_DEST_MOD_LO = (byte*) 54067 +(byte*) DTV_BLITTER_DEST_STEP +(const byte*) DTV_BLITTER_DEST_STEP#0 DTV_BLITTER_DEST_STEP = (byte*) 54071 +(byte*) DTV_BLITTER_LEN_HI +(const byte*) DTV_BLITTER_LEN_HI#0 DTV_BLITTER_LEN_HI = (byte*) 54073 +(byte*) DTV_BLITTER_LEN_LO +(const byte*) DTV_BLITTER_LEN_LO#0 DTV_BLITTER_LEN_LO = (byte*) 54072 +(byte*) DTV_BLITTER_SRCA_HI +(const byte*) DTV_BLITTER_SRCA_HI#0 DTV_BLITTER_SRCA_HI = (byte*) 54050 +(byte*) DTV_BLITTER_SRCA_LIN_HI +(const byte*) DTV_BLITTER_SRCA_LIN_HI#0 DTV_BLITTER_SRCA_LIN_HI = (byte*) 54054 +(byte*) DTV_BLITTER_SRCA_LIN_LO +(const byte*) DTV_BLITTER_SRCA_LIN_LO#0 DTV_BLITTER_SRCA_LIN_LO = (byte*) 54053 +(byte*) DTV_BLITTER_SRCA_LO +(const byte*) DTV_BLITTER_SRCA_LO#0 DTV_BLITTER_SRCA_LO = (byte*) 54048 +(byte*) DTV_BLITTER_SRCA_MI +(const byte*) DTV_BLITTER_SRCA_MI#0 DTV_BLITTER_SRCA_MI = (byte*) 54049 +(byte*) DTV_BLITTER_SRCA_MOD_HI +(const byte*) DTV_BLITTER_SRCA_MOD_HI#0 DTV_BLITTER_SRCA_MOD_HI = (byte*) 54052 +(byte*) DTV_BLITTER_SRCA_MOD_LO +(const byte*) DTV_BLITTER_SRCA_MOD_LO#0 DTV_BLITTER_SRCA_MOD_LO = (byte*) 54051 +(byte*) DTV_BLITTER_SRCA_STEP +(const byte*) DTV_BLITTER_SRCA_STEP#0 DTV_BLITTER_SRCA_STEP = (byte*) 54055 +(byte*) DTV_BLITTER_SRCB_HI +(const byte*) DTV_BLITTER_SRCB_HI#0 DTV_BLITTER_SRCB_HI = (byte*) 54058 +(byte*) DTV_BLITTER_SRCB_LIN_HI +(const byte*) DTV_BLITTER_SRCB_LIN_HI#0 DTV_BLITTER_SRCB_LIN_HI = (byte*) 54062 +(byte*) DTV_BLITTER_SRCB_LIN_LO +(const byte*) DTV_BLITTER_SRCB_LIN_LO#0 DTV_BLITTER_SRCB_LIN_LO = (byte*) 54061 +(byte*) DTV_BLITTER_SRCB_LO +(const byte*) DTV_BLITTER_SRCB_LO#0 DTV_BLITTER_SRCB_LO = (byte*) 54056 +(byte*) DTV_BLITTER_SRCB_MI +(const byte*) DTV_BLITTER_SRCB_MI#0 DTV_BLITTER_SRCB_MI = (byte*) 54057 +(byte*) DTV_BLITTER_SRCB_MOD_HI +(const byte*) DTV_BLITTER_SRCB_MOD_HI#0 DTV_BLITTER_SRCB_MOD_HI = (byte*) 54060 +(byte*) DTV_BLITTER_SRCB_MOD_LO +(const byte*) DTV_BLITTER_SRCB_MOD_LO#0 DTV_BLITTER_SRCB_MOD_LO = (byte*) 54059 +(byte*) DTV_BLITTER_SRCB_STEP +(const byte*) DTV_BLITTER_SRCB_STEP#0 DTV_BLITTER_SRCB_STEP = (byte*) 54063 +(byte*) DTV_BLITTER_TRANSPARANCY +(const byte*) DTV_BLITTER_TRANSPARANCY#0 DTV_BLITTER_TRANSPARANCY = (byte*) 54075 +(byte) DTV_BLIT_ADD +(const byte) DTV_BLIT_ADD#0 DTV_BLIT_ADD = (byte) $30 +(byte) DTV_BLIT_CLEAR_IRQ +(const byte) DTV_BLIT_CLEAR_IRQ#0 DTV_BLIT_CLEAR_IRQ = (byte) 1 +(byte) DTV_BLIT_DEST_CONT +(const byte) DTV_BLIT_DEST_CONT#0 DTV_BLIT_DEST_CONT = (byte) 8 +(byte) DTV_BLIT_DEST_FWD +(const byte) DTV_BLIT_DEST_FWD#0 DTV_BLIT_DEST_FWD = (byte) 8 +(byte) DTV_BLIT_FORCE_START +(const byte) DTV_BLIT_FORCE_START#0 DTV_BLIT_FORCE_START = (byte) 1 +(byte) DTV_BLIT_SRCA_FWD +(const byte) DTV_BLIT_SRCA_FWD#0 DTV_BLIT_SRCA_FWD = (byte) 2 +(byte) DTV_BLIT_SRCB_FWD +(const byte) DTV_BLIT_SRCB_FWD#0 DTV_BLIT_SRCB_FWD = (byte) 4 +(byte) DTV_BLIT_STATUS_BUSY +(const byte) DTV_BLIT_STATUS_BUSY#0 DTV_BLIT_STATUS_BUSY = (byte) 1 +(byte) DTV_BLIT_TRANSPARANCY_NONE +(const byte) DTV_BLIT_TRANSPARANCY_NONE#0 DTV_BLIT_TRANSPARANCY_NONE = (byte) 0 +(byte*) DTV_FEATURE +(const byte*) DTV_FEATURE#0 DTV_FEATURE = (byte*) 53311 +(byte) DTV_FEATURE_ENABLE +(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte) 1 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) SRCA +(const byte[]) SRCA#0 SRCA = { (byte) 'c', (byte) 'a', (byte) 'm', (byte) 'e', (byte) 'l', (byte) 'o', (byte) 't', (byte) '!', (byte) ' ' } +(byte) SRCA_LEN +(const byte) SRCA_LEN#0 SRCA_LEN = (byte) 9 +(byte[]) SRCB +(const byte[]) SRCB#0 SRCB = { (byte) $80 } +(void()) main() +(byte~) main::$15 reg byte a 202.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::r +(byte) main::r#1 reg byte x 16.5 +(byte) main::r#2 reg byte x 5.5 + +reg byte x [ main::r#2 main::r#1 ] +reg byte a [ main::$15 ] diff --git a/src/test/ref/c64dtv-color.sym b/src/test/ref/c64dtv-color.sym index 1daabbadc..0fc1ad8c5 100644 --- a/src/test/ref/c64dtv-color.sym +++ b/src/test/ref/c64dtv-color.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) DTV_BADLINE_OFF +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte) $20 +(byte) DTV_BORDER_OFF +(const byte) DTV_BORDER_OFF#0 DTV_BORDER_OFF = (byte) 2 +(byte*) DTV_CONTROL +(const byte*) DTV_CONTROL#0 DTV_CONTROL = (byte*) 53308 +(byte*) DTV_FEATURE +(const byte*) DTV_FEATURE#0 DTV_FEATURE = (byte*) 53311 +(byte) DTV_FEATURE_ENABLE +(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte) 1 +(byte) DTV_HIGHCOLOR +(const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte) 4 +(byte*) DTV_PALETTE +(const byte*) DTV_PALETTE#0 DTV_PALETTE = (byte*) 53760 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(byte) main::c +(byte) main::c#1 reg byte x 151.5 +(byte) main::c#2 reg byte x 201.99999999999997 +(byte[$10]) main::palette +(const byte[$10]) main::palette#0 palette = { (byte) 0, (byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5, (byte) 6, (byte) 7, (byte) 8, (byte) 9, (byte) $a, (byte) $b, (byte) $c, (byte) $d, (byte) $e, (byte) $f } +(byte) main::r +(byte) main::r#1 reg byte x 151.5 +(byte) main::r#2 reg byte x 67.33333333333333 + +reg byte x [ main::r#2 main::r#1 ] +reg byte x [ main::c#2 main::c#1 ] diff --git a/src/test/ref/c64dtv-gfxexplorer.sym b/src/test/ref/c64dtv-gfxexplorer.sym index 1daabbadc..1314adddf 100644 --- a/src/test/ref/c64dtv-gfxexplorer.sym +++ b/src/test/ref/c64dtv-gfxexplorer.sym @@ -1 +1,1565 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BGCOL1 +(const byte*) BGCOL1#0 BGCOL1 = (byte*) 53281 +(byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = (byte*) 53282 +(byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = (byte*) 53283 +(byte*) BGCOL4 +(const byte*) BGCOL4#0 BGCOL4 = (byte*) 53284 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CHARGEN +(const byte*) CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_A_DDR +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = (byte*) 56322 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte*) CIA1_PORT_B_DDR +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = (byte*) 56323 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte) DTV_BORDER_OFF +(const byte) DTV_BORDER_OFF#0 DTV_BORDER_OFF = (byte) 2 +(byte) DTV_CHUNKY +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte) $40 +(byte) DTV_COLORRAM_OFF +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte) $10 +(dword) DTV_COLOR_BANK_DEFAULT +(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword) $1d800 +(byte*) DTV_COLOR_BANK_HI +(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = (byte*) 53303 +(byte*) DTV_COLOR_BANK_LO +(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = (byte*) 53302 +(byte*) DTV_CONTROL +(const byte*) DTV_CONTROL#0 DTV_CONTROL = (byte*) 53308 +(byte*) DTV_FEATURE +(const byte*) DTV_FEATURE#0 DTV_FEATURE = (byte*) 53311 +(byte) DTV_FEATURE_ENABLE +(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte) 1 +(byte*) DTV_GRAPHICS_VIC_BANK +(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = (byte*) 53309 +(byte) DTV_HIGHCOLOR +(const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte) 4 +(byte) DTV_LINEAR +(const byte) DTV_LINEAR#0 DTV_LINEAR = (byte) 1 +(byte) DTV_OVERSCAN +(const byte) DTV_OVERSCAN#0 DTV_OVERSCAN = (byte) 8 +(byte*) DTV_PALETTE +(const byte*) DTV_PALETTE#0 DTV_PALETTE = (byte*) 53760 +(byte[$10]) DTV_PALETTE_DEFAULT +(const byte[$10]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte) 0, (byte) $f, (byte) $36, (byte) $be, (byte) $58, (byte) $db, (byte) $86, (byte) $ff, (byte) $29, (byte) $26, (byte) $3b, (byte) 5, (byte) 7, (byte) $df, (byte) $9a, (byte) $a } +(byte*) DTV_PLANEA_MODULO_HI +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = (byte*) 53305 +(byte*) DTV_PLANEA_MODULO_LO +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = (byte*) 53304 +(byte*) DTV_PLANEA_START_HI +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = (byte*) 53317 +(byte*) DTV_PLANEA_START_LO +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = (byte*) 53306 +(byte*) DTV_PLANEA_START_MI +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = (byte*) 53307 +(byte*) DTV_PLANEA_STEP +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = (byte*) 53318 +(byte*) DTV_PLANEB_MODULO_HI +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = (byte*) 53320 +(byte*) DTV_PLANEB_MODULO_LO +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = (byte*) 53319 +(byte*) DTV_PLANEB_START_HI +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = (byte*) 53323 +(byte*) DTV_PLANEB_START_LO +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = (byte*) 53321 +(byte*) DTV_PLANEB_START_MI +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = (byte*) 53322 +(byte*) DTV_PLANEB_STEP +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = (byte*) 53324 +(byte*) FORM_CHARSET +(const byte*) FORM_CHARSET#0 FORM_CHARSET = (byte*) 6144 +(byte[]) FORM_COLS +(const byte[]) FORM_COLS#0 FORM_COLS = (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@ @aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@ @ nnnnnnnnnnnn mmmmmmmmmm ooooooooo @ nnnnnnnnnnnn mmmmmmmmmm ooooooooo @ nnnnnnnnnnnn mmmmmmmmmm ooooooooo @ nnnnnnnnnnnn mmmmmmmmmm ooooooooo @ nnnnnnnnnnnn mmmmmmmmmm @ nnnnnnnnnnnn jjjjjjjjj @ nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @ nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @ nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @ nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @ nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @ nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @@" +(signed byte) FORM_CURSOR_BLINK +(const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (signed byte) $28 +(byte*) FORM_SCREEN +(const byte*) FORM_SCREEN#0 FORM_SCREEN = (byte*) 1024 +(byte[]) FORM_TEXT +(const byte[]) FORM_TEXT#0 FORM_TEXT = (string) " C64 DTV Graphics Mode Explorer @ @ PRESET 0 Standard Charset @ @ CONTROL PLANE A VIC II @ bmm 0 pattern p0 screen s0 @ mcm 0 start 00 gfx g0 @ ecm 0 step 00 colors c0 @ hicolor 0 modulo 00 @ linear 0 COLORS @ color off 0 PLANE B palet 0 @ chunky 0 pattern p0 bgcol0 00 @ border off 0 start 00 bgcol1 00 @ overscan 0 step 00 bgcol2 00 @ modulo 00 bgcol3 00 @@" +(byte) KEY_COMMODORE +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte) $3d +(byte) KEY_CRSR_DOWN +(const byte) KEY_CRSR_DOWN#0 KEY_CRSR_DOWN = (byte) 7 +(byte) KEY_CRSR_RIGHT +(const byte) KEY_CRSR_RIGHT#0 KEY_CRSR_RIGHT = (byte) 2 +(byte) KEY_CTRL +(const byte) KEY_CTRL#0 KEY_CTRL = (byte) $3a +(byte) KEY_LSHIFT +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte) $f +(byte) KEY_MODIFIER_COMMODORE +(const byte) KEY_MODIFIER_COMMODORE#0 KEY_MODIFIER_COMMODORE = (byte) 8 +(byte) KEY_MODIFIER_CTRL +(const byte) KEY_MODIFIER_CTRL#0 KEY_MODIFIER_CTRL = (byte) 4 +(byte) KEY_MODIFIER_LSHIFT +(const byte) KEY_MODIFIER_LSHIFT#0 KEY_MODIFIER_LSHIFT = (byte) 1 +(byte) KEY_MODIFIER_RSHIFT +(const byte) KEY_MODIFIER_RSHIFT#0 KEY_MODIFIER_RSHIFT = (byte) 2 +(byte) KEY_MODIFIER_SHIFT +(const byte) KEY_MODIFIER_SHIFT#0 KEY_MODIFIER_SHIFT = (const byte) KEY_MODIFIER_LSHIFT#0|(const byte) KEY_MODIFIER_RSHIFT#0 +(byte) KEY_RSHIFT +(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte) $34 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(dword) PLANE_8BPP_CHUNKY +(const dword) PLANE_8BPP_CHUNKY#0 PLANE_8BPP_CHUNKY = (dword) $20000 +(dword) PLANE_BLANK +(const dword) PLANE_BLANK#0 PLANE_BLANK = (dword) $38000 +(dword) PLANE_CHARSET8 +(const dword) PLANE_CHARSET8#0 PLANE_CHARSET8 = (dword) $3c000 +(dword) PLANE_FULL +(const dword) PLANE_FULL#0 PLANE_FULL = (dword) $3a000 +(dword) PLANE_HORISONTAL +(const dword) PLANE_HORISONTAL#0 PLANE_HORISONTAL = (dword) $30000 +(dword) PLANE_HORISONTAL2 +(const dword) PLANE_HORISONTAL2#0 PLANE_HORISONTAL2 = (dword) $34000 +(dword) PLANE_VERTICAL +(const dword) PLANE_VERTICAL#0 PLANE_VERTICAL = (dword) $32000 +(dword) PLANE_VERTICAL2 +(const dword) PLANE_VERTICAL2#0 PLANE_VERTICAL2 = (dword) $36000 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_CHARROM +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte) $31 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_BITMAP +(const byte*) VIC_BITMAP#0 VIC_BITMAP = (byte*) 24576 +(byte) VIC_BMM +(const byte) VIC_BMM#0 VIC_BMM = (byte) $20 +(byte*) VIC_CHARSET_ROM +(const byte*) VIC_CHARSET_ROM#0 VIC_CHARSET_ROM = (byte*) 22528 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte*) VIC_CONTROL2 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = (byte*) 53270 +(byte) VIC_CSEL +(const byte) VIC_CSEL#0 VIC_CSEL = (byte) 8 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_ECM +(const byte) VIC_ECM#0 VIC_ECM = (byte) $40 +(byte) VIC_MCM +(const byte) VIC_MCM#0 VIC_MCM = (byte) $10 +(byte*) VIC_MEMORY +(const byte*) VIC_MEMORY#0 VIC_MEMORY = (byte*) 53272 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(byte*) VIC_SCREEN0 +(const byte*) VIC_SCREEN0#0 VIC_SCREEN0 = (byte*) 16384 +(byte*) VIC_SCREEN1 +(const byte*) VIC_SCREEN1#0 VIC_SCREEN1 = (byte*) 17408 +(byte*) VIC_SCREEN2 +(const byte*) VIC_SCREEN2#0 VIC_SCREEN2 = (byte*) 18432 +(byte*) VIC_SCREEN3 +(const byte*) VIC_SCREEN3#0 VIC_SCREEN3 = (byte*) 19456 +(byte*) VIC_SCREEN4 +(const byte*) VIC_SCREEN4#0 VIC_SCREEN4 = (byte*) 20480 +(void()) apply_preset((byte) apply_preset::idx) +(label) apply_preset::@1 +(label) apply_preset::@10 +(label) apply_preset::@11 +(label) apply_preset::@12 +(label) apply_preset::@13 +(label) apply_preset::@2 +(label) apply_preset::@3 +(label) apply_preset::@4 +(label) apply_preset::@5 +(label) apply_preset::@6 +(label) apply_preset::@7 +(label) apply_preset::@8 +(label) apply_preset::@9 +(label) apply_preset::@return +(byte) apply_preset::i +(byte) apply_preset::i#1 reg byte y 1501.5 +(byte) apply_preset::i#2 reg byte y 2002.0 +(byte) apply_preset::idx +(byte) apply_preset::idx#0 reg byte a 11.18181818181818 +(byte*) apply_preset::preset +(byte*) apply_preset::preset#14 preset zp ZP_WORD:24 200.2 +(void()) bitmap_clear() +(label) bitmap_clear::@1 +(label) bitmap_clear::@2 +(label) bitmap_clear::@3 +(label) bitmap_clear::@return +(byte*) bitmap_clear::bitmap +(word) bitmap_clear::bitmap#0 bitmap zp ZP_WORD:84 2.0 +(byte*) bitmap_clear::bitmap#1 bitmap zp ZP_WORD:84 42.599999999999994 +(byte*) bitmap_clear::bitmap#2 bitmap zp ZP_WORD:84 157.0 +(byte*) bitmap_clear::bitmap#3 bitmap zp ZP_WORD:84 24.0 +(byte*~) bitmap_clear::bitmap#5 bitmap zp ZP_WORD:84 4.0 +(byte) bitmap_clear::x +(byte) bitmap_clear::x#1 reg byte x 151.5 +(byte) bitmap_clear::x#2 reg byte x 67.33333333333333 +(byte) bitmap_clear::y +(byte) bitmap_clear::y#1 y zp ZP_BYTE:83 16.5 +(byte) bitmap_clear::y#4 y zp ZP_BYTE:83 3.6666666666666665 +(void()) bitmap_init((byte*) bitmap_init::bitmap) +(byte~) bitmap_init::$0 reg byte a 22.0 +(byte~) bitmap_init::$10 $10 zp ZP_BYTE:136 5.5 +(byte~) bitmap_init::$7 reg byte a 22.0 +(byte~) bitmap_init::$8 reg byte a 22.0 +(byte~) bitmap_init::$9 reg byte a 22.0 +(label) bitmap_init::@1 +(label) bitmap_init::@2 +(label) bitmap_init::@3 +(label) bitmap_init::@4 +(label) bitmap_init::@5 +(label) bitmap_init::@6 +(label) bitmap_init::@return +(byte*) bitmap_init::bitmap +(byte) bitmap_init::bits +(byte) bitmap_init::bits#1 reg byte y 11.0 +(byte) bitmap_init::bits#3 reg byte y 6.6000000000000005 +(byte) bitmap_init::bits#4 reg byte y 7.333333333333333 +(byte) bitmap_init::x +(byte) bitmap_init::x#1 reg byte x 16.5 +(byte) bitmap_init::x#2 reg byte x 7.333333333333334 +(byte) bitmap_init::y +(byte) bitmap_init::y#1 reg byte x 16.5 +(byte) bitmap_init::y#2 reg byte x 5.5 +(byte*) bitmap_init::yoffs +(byte*) bitmap_init::yoffs#1 yoffs zp ZP_WORD:86 22.0 +(byte*) bitmap_init::yoffs#2 yoffs zp ZP_WORD:86 6.875 +(byte*) bitmap_init::yoffs#4 yoffs zp ZP_WORD:86 11.0 +(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1) +(label) bitmap_line::@1 +(label) bitmap_line::@10 +(label) bitmap_line::@11 +(label) bitmap_line::@12 +(label) bitmap_line::@13 +(label) bitmap_line::@14 +(label) bitmap_line::@2 +(label) bitmap_line::@3 +(label) bitmap_line::@4 +(label) bitmap_line::@5 +(label) bitmap_line::@6 +(label) bitmap_line::@7 +(label) bitmap_line::@8 +(label) bitmap_line::@9 +(label) bitmap_line::@return +(byte) bitmap_line::x0 +(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:69 1.260869565217391 +(byte) bitmap_line::x1 +(byte) bitmap_line::x1#0 reg byte x 1.3181818181818181 +(byte) bitmap_line::xd +(byte) bitmap_line::xd#1 xd zp ZP_BYTE:68 0.7 +(byte) bitmap_line::xd#2 xd zp ZP_BYTE:68 0.7 +(byte) bitmap_line::y0 +(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:71 1.6666666666666674 +(byte) bitmap_line::y1 +(byte) bitmap_line::y1#0 y1 zp ZP_BYTE:74 1.7500000000000007 +(byte) bitmap_line::yd +(byte) bitmap_line::yd#1 reg byte y 0.8888888888888888 +(byte) bitmap_line::yd#10 reg byte y 0.8888888888888888 +(byte) bitmap_line::yd#11 reg byte y 0.8888888888888888 +(byte) bitmap_line::yd#2 reg byte y 0.8888888888888888 +(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd) +(byte~) bitmap_line_xdyd::$6 reg byte x 202.0 +(label) bitmap_line_xdyd::@1 +(label) bitmap_line_xdyd::@2 +(label) bitmap_line_xdyd::@3 +(label) bitmap_line_xdyd::@4 +(label) bitmap_line_xdyd::@return +(byte) bitmap_line_xdyd::e +(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:79 4.0 +(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:79 134.66666666666666 +(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:79 202.0 +(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:79 40.8 +(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:79 101.0 +(byte) bitmap_line_xdyd::x +(byte) bitmap_line_xdyd::x#0 x zp ZP_BYTE:78 0.8 +(byte) bitmap_line_xdyd::x#1 x zp ZP_BYTE:78 0.8 +(byte) bitmap_line_xdyd::x#2 x zp ZP_BYTE:78 37.875 +(byte) bitmap_line_xdyd::x#3 x zp ZP_BYTE:78 76.25 +(byte) bitmap_line_xdyd::x#6 x zp ZP_BYTE:78 3.0 +(byte) bitmap_line_xdyd::x1 +(byte) bitmap_line_xdyd::x1#0 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyd::x1#6 x1 zp ZP_BYTE:69 7.5 +(byte) bitmap_line_xdyd::xd +(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:68 14.714285714285715 +(byte) bitmap_line_xdyd::y +(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:71 101.0 +(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:71 58.00000000000001 +(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:71 3.0 +(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:71 101.0 +(byte) bitmap_line_xdyd::yd +(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:77 4.0 +(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:77 4.0 +(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:77 7.642857142857143 +(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd) +(byte~) bitmap_line_xdyi::$6 reg byte x 202.0 +(label) bitmap_line_xdyi::@1 +(label) bitmap_line_xdyi::@2 +(label) bitmap_line_xdyi::@3 +(label) bitmap_line_xdyi::@4 +(label) bitmap_line_xdyi::@return +(byte) bitmap_line_xdyi::e +(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:72 4.0 +(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:72 134.66666666666666 +(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:72 202.0 +(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:72 40.8 +(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:72 101.0 +(byte) bitmap_line_xdyi::x +(byte) bitmap_line_xdyi::x#0 x zp ZP_BYTE:70 0.8 +(byte) bitmap_line_xdyi::x#1 x zp ZP_BYTE:70 0.8 +(byte) bitmap_line_xdyi::x#2 x zp ZP_BYTE:70 37.875 +(byte) bitmap_line_xdyi::x#3 x zp ZP_BYTE:70 76.25 +(byte) bitmap_line_xdyi::x#6 x zp ZP_BYTE:70 3.0 +(byte) bitmap_line_xdyi::x1 +(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:69 7.5 +(byte) bitmap_line_xdyi::xd +(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:68 14.714285714285715 +(byte) bitmap_line_xdyi::y +(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:71 101.0 +(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:71 58.00000000000001 +(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:71 3.0 +(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:71 101.0 +(byte) bitmap_line_xdyi::yd +(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:67 4.0 +(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:67 4.0 +(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:67 7.642857142857143 +(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd) +(byte~) bitmap_line_ydxd::$6 reg byte a 202.0 +(label) bitmap_line_ydxd::@1 +(label) bitmap_line_ydxd::@2 +(label) bitmap_line_ydxd::@3 +(label) bitmap_line_ydxd::@4 +(label) bitmap_line_ydxd::@return +(byte) bitmap_line_ydxd::e +(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:82 4.0 +(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:82 134.66666666666666 +(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:82 202.0 +(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:82 40.8 +(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:82 101.0 +(byte) bitmap_line_ydxd::x +(byte) bitmap_line_ydxd::x#0 reg byte x 1.0 +(byte) bitmap_line_ydxd::x#1 reg byte x 1.0 +(byte) bitmap_line_ydxd::x#2 reg byte x 101.0 +(byte) bitmap_line_ydxd::x#3 reg byte x 58.00000000000001 +(byte) bitmap_line_ydxd::x#5 reg byte x 3.0 +(byte) bitmap_line_ydxd::x#6 reg byte x 101.0 +(byte) bitmap_line_ydxd::xd +(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:68 7.642857142857143 +(byte) bitmap_line_ydxd::y +(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:81 0.8 +(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:81 0.8 +(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:81 76.25 +(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:81 37.875 +(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:81 3.0 +(byte) bitmap_line_ydxd::y1 +(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:71 1.3333333333333333 +(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:71 1.3333333333333333 +(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:71 7.5 +(byte) bitmap_line_ydxd::yd +(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:80 2.0 +(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:80 2.0 +(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:80 14.714285714285715 +(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd) +(byte~) bitmap_line_ydxi::$6 reg byte a 202.0 +(label) bitmap_line_ydxi::@1 +(label) bitmap_line_ydxi::@2 +(label) bitmap_line_ydxi::@3 +(label) bitmap_line_ydxi::@4 +(label) bitmap_line_ydxi::@return +(byte) bitmap_line_ydxi::e +(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:76 4.0 +(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:76 134.66666666666666 +(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:76 202.0 +(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:76 40.8 +(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:76 101.0 +(byte) bitmap_line_ydxi::x +(byte) bitmap_line_ydxi::x#0 reg byte x 1.0 +(byte) bitmap_line_ydxi::x#1 reg byte x 1.0 +(byte) bitmap_line_ydxi::x#2 reg byte x 101.0 +(byte) bitmap_line_ydxi::x#3 reg byte x 58.00000000000001 +(byte) bitmap_line_ydxi::x#5 reg byte x 3.0 +(byte) bitmap_line_ydxi::x#6 reg byte x 101.0 +(byte) bitmap_line_ydxi::xd +(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:68 7.642857142857143 +(byte) bitmap_line_ydxi::y +(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:75 0.8 +(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:75 0.8 +(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:75 37.875 +(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:75 76.25 +(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:75 3.0 +(byte) bitmap_line_ydxi::y1 +(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:74 1.3333333333333333 +(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:74 1.3333333333333333 +(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:74 7.5 +(byte) bitmap_line_ydxi::yd +(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:73 2.0 +(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:73 2.0 +(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:73 14.714285714285715 +(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y) +(byte~) bitmap_plot::$1 reg byte a 4.0 +(label) bitmap_plot::@return +(byte*) bitmap_plot::plotter +(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:132 1.0 +(word) bitmap_plot::plotter_x +(word) bitmap_plot::plotter_x#0 plotter_x zp ZP_WORD:132 2.0 +(word) bitmap_plot::plotter_y +(word) bitmap_plot::plotter_y#0 plotter_y zp ZP_WORD:134 4.0 +(byte) bitmap_plot::x +(byte) bitmap_plot::x#0 reg byte x 101.0 +(byte) bitmap_plot::x#1 reg byte x 101.0 +(byte) bitmap_plot::x#2 reg byte x 101.0 +(byte) bitmap_plot::x#3 reg byte x 101.0 +(byte) bitmap_plot::x#4 reg byte x 102.5 +(byte) bitmap_plot::y +(byte) bitmap_plot::y#0 reg byte y 202.0 +(byte) bitmap_plot::y#1 reg byte y 202.0 +(byte) bitmap_plot::y#2 reg byte y 202.0 +(byte) bitmap_plot::y#3 reg byte y 202.0 +(byte) bitmap_plot::y#4 reg byte y 204.0 +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } +(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) +(label) dtvSetCpuBankSegment1::@return +(byte*) dtvSetCpuBankSegment1::cpuBank +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = (byte*) 255 +(byte) dtvSetCpuBankSegment1::cpuBankIdx +(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 202.0 +(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 reg byte a 4.0 +(byte) dtvSetCpuBankSegment1::cpuBankIdx#13 reg byte a 105.0 +(byte*) form_a_mod_hi +(byte*) form_a_mod_lo +(byte*) form_a_pattern +(byte*) form_a_start_hi +(byte*) form_a_start_lo +(byte*) form_a_step_hi +(byte*) form_a_step_lo +(byte*) form_b_mod_hi +(byte*) form_b_mod_lo +(byte*) form_b_pattern +(byte*) form_b_start_hi +(byte*) form_b_start_lo +(byte*) form_b_step_hi +(byte*) form_b_step_lo +(byte()) form_control() +(byte~) form_control::$13 reg byte a 4.0 +(byte~) form_control::$14 reg byte a 4.0 +(byte~) form_control::$15 reg byte a 4.0 +(byte~) form_control::$16 reg byte a 4.0 +(byte~) form_control::$24 reg byte a 4.0 +(label) form_control::@1 +(label) form_control::@10 +(label) form_control::@11 +(label) form_control::@12 +(label) form_control::@13 +(label) form_control::@14 +(label) form_control::@15 +(label) form_control::@16 +(label) form_control::@17 +(label) form_control::@18 +(label) form_control::@19 +(label) form_control::@2 +(label) form_control::@20 +(label) form_control::@21 +(label) form_control::@22 +(label) form_control::@23 +(label) form_control::@3 +(label) form_control::@4 +(label) form_control::@5 +(label) form_control::@6 +(label) form_control::@7 +(label) form_control::@8 +(label) form_control::@9 +(label) form_control::@return +(byte*) form_control::field +(byte) form_control::key_event +(byte) form_control::key_event#0 reg byte a 2.6666666666666665 +(byte) form_control::return +(byte) form_control::return#0 reg byte a 2002.0 +(byte) form_control::return#2 reg byte x 333.6666666666667 +(byte*) form_ctrl_bmm +(byte*) form_ctrl_borof +(byte*) form_ctrl_chunk +(byte*) form_ctrl_colof +(byte*) form_ctrl_ecm +(byte*) form_ctrl_hicol +(byte*) form_ctrl_line +(byte*) form_ctrl_mcm +(byte*) form_ctrl_overs +(signed byte) form_cursor_count +(signed byte) form_cursor_count#1 form_cursor_count zp ZP_BYTE:17 0.3333333333333333 +(signed byte) form_cursor_count#15 form_cursor_count zp ZP_BYTE:17 0.4 +(signed byte) form_cursor_count#16 form_cursor_count zp ZP_BYTE:17 65.82352941176472 +(signed byte) form_cursor_count#21 form_cursor_count zp ZP_BYTE:17 221.2 +(signed byte) form_cursor_count#5 form_cursor_count zp ZP_BYTE:17 2.0 +(byte*) form_dtv_palet +(byte) form_field_idx +(byte) form_field_idx#1 form_field_idx zp ZP_BYTE:18 0.3333333333333333 +(byte) form_field_idx#18 form_field_idx zp ZP_BYTE:18 65.94117647058826 +(byte) form_field_idx#28 form_field_idx zp ZP_BYTE:18 30.75675675675673 +(byte) form_field_idx#31 form_field_idx zp ZP_BYTE:18 6.0 +(byte) form_field_idx#5 form_field_idx zp ZP_BYTE:18 2.0 +(byte) form_field_idx#6 form_field_idx zp ZP_BYTE:18 2.0 +(byte*()) form_field_ptr((byte) form_field_ptr::field_idx) +(label) form_field_ptr::@return +(byte*) form_field_ptr::field +(byte) form_field_ptr::field_idx +(byte) form_field_ptr::field_idx#0 reg byte x 2002.0 +(byte) form_field_ptr::field_idx#1 reg byte x 4.0 +(byte) form_field_ptr::field_idx#2 reg byte x 335.66666666666674 +(byte*) form_field_ptr::line +(word) form_field_ptr::line#0 line zp ZP_WORD:119 0.06451612903225806 +(byte*) form_field_ptr::return +(byte) form_field_ptr::x +(byte) form_field_ptr::x#0 x zp ZP_BYTE:121 33.90000000000003 +(byte) form_field_ptr::y +(byte) form_field_ptr::y#0 reg byte a 6.0 +(byte) form_fields_cnt +(const byte) form_fields_cnt#0 form_fields_cnt = (byte) $24 +(byte[]) form_fields_max +(const byte[]) form_fields_max#0 form_fields_max = { (byte) $a, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) $d, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $d, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) 3, (byte) 1, (byte) 4, (byte) 1, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f } +(byte[]) form_fields_val +(const byte[]) form_fields_val#0 form_fields_val = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) form_fields_x +(const byte[]) form_fields_x#0 form_fields_x = { (byte) 8, (byte) $c, (byte) $c, (byte) $c, (byte) $c, (byte) $c, (byte) $c, (byte) $c, (byte) $c, (byte) $c, (byte) $19, (byte) $18, (byte) $19, (byte) $18, (byte) $19, (byte) $18, (byte) $19, (byte) $19, (byte) $18, (byte) $19, (byte) $18, (byte) $19, (byte) $18, (byte) $19, (byte) $25, (byte) $25, (byte) $25, (byte) $25, (byte) $24, (byte) $25, (byte) $24, (byte) $25, (byte) $24, (byte) $25, (byte) $24, (byte) $25 } +(byte[]) form_fields_y +(const byte[]) form_fields_y#0 form_fields_y = { (byte) 2, (byte) 5, (byte) 6, (byte) 7, (byte) 8, (byte) 9, (byte) $a, (byte) $b, (byte) $c, (byte) $d, (byte) 5, (byte) 6, (byte) 6, (byte) 7, (byte) 7, (byte) 8, (byte) 8, (byte) $b, (byte) $c, (byte) $c, (byte) $d, (byte) $d, (byte) $e, (byte) $e, (byte) 5, (byte) 6, (byte) 7, (byte) $a, (byte) $b, (byte) $b, (byte) $c, (byte) $c, (byte) $d, (byte) $d, (byte) $e, (byte) $e } +(byte[$19]) form_line_hi +(const byte[$19]) form_line_hi#0 form_line_hi = { fill( $19, 0) } +(byte[$19]) form_line_lo +(const byte[$19]) form_line_lo#0 form_line_lo = { fill( $19, 0) } +(void()) form_mode() +(byte~) form_mode::$36 reg byte a 2002.0 +(label) form_mode::@1 +(label) form_mode::@10 +(label) form_mode::@11 +(label) form_mode::@12 +(label) form_mode::@13 +(label) form_mode::@14 +(label) form_mode::@15 +(label) form_mode::@16 +(label) form_mode::@17 +(label) form_mode::@18 +(label) form_mode::@19 +(label) form_mode::@2 +(label) form_mode::@3 +(label) form_mode::@4 +(label) form_mode::@5 +(label) form_mode::@6 +(label) form_mode::@7 +(label) form_mode::@8 +(label) form_mode::@9 +(label) form_mode::@return +(byte) form_mode::i +(byte) form_mode::i#1 reg byte x 151.5 +(byte) form_mode::i#2 reg byte x 202.0 +(byte) form_mode::preset_current +(byte) form_mode::preset_current#0 preset_current zp ZP_BYTE:19 4.0 +(byte) form_mode::preset_current#1 preset_current zp ZP_BYTE:19 50.5 +(byte) form_mode::preset_current#6 preset_current zp ZP_BYTE:19 157.71428571428572 +(byte*) form_preset +(void()) form_render_values() +(label) form_render_values::@1 +(label) form_render_values::@2 +(label) form_render_values::@return +(byte*) form_render_values::field +(byte) form_render_values::idx +(byte) form_render_values::idx#1 reg byte x 1501.5 +(byte) form_render_values::idx#2 reg byte x 1001.0 +(void()) form_set_screen((byte*) form_set_screen::screen) +(byte~) form_set_screen::$0 reg byte a 202.0 +(byte~) form_set_screen::$1 reg byte a 202.0 +(label) form_set_screen::@1 +(label) form_set_screen::@return +(byte*) form_set_screen::line +(byte*) form_set_screen::line#1 line zp ZP_WORD:26 67.33333333333333 +(byte*) form_set_screen::line#2 line zp ZP_WORD:26 80.8 +(byte*) form_set_screen::screen +(byte) form_set_screen::y +(byte) form_set_screen::y#1 reg byte x 151.5 +(byte) form_set_screen::y#2 reg byte x 67.33333333333333 +(byte*) form_vic_bg0_hi +(byte*) form_vic_bg0_lo +(byte*) form_vic_bg1_hi +(byte*) form_vic_bg1_lo +(byte*) form_vic_bg2_hi +(byte*) form_vic_bg2_lo +(byte*) form_vic_bg3_hi +(byte*) form_vic_bg3_lo +(byte*) form_vic_cols +(byte*) form_vic_gfx +(byte*) form_vic_screen +(dword()) get_plane((byte) get_plane::idx) +(label) get_plane::@1 +(label) get_plane::@10 +(label) get_plane::@11 +(label) get_plane::@12 +(label) get_plane::@13 +(label) get_plane::@14 +(label) get_plane::@2 +(label) get_plane::@3 +(label) get_plane::@4 +(label) get_plane::@5 +(label) get_plane::@6 +(label) get_plane::@7 +(label) get_plane::@8 +(label) get_plane::@9 +(label) get_plane::@return +(byte) get_plane::idx +(byte) get_plane::idx#0 reg byte a 4.0 +(byte) get_plane::idx#1 reg byte a 4.0 +(byte) get_plane::idx#10 reg byte a 2.285714285714285 +(dword) get_plane::return +(dword) get_plane::return#14 return zp ZP_DWORD:13 1.0 +(dword) get_plane::return#16 return zp ZP_DWORD:13 4.0 +(dword) get_plane::return#17 return zp ZP_DWORD:13 4.0 +(byte*()) get_vic_charset((byte) get_vic_charset::idx) +(label) get_vic_charset::@1 +(label) get_vic_charset::@2 +(label) get_vic_charset::@return +(byte) get_vic_charset::idx +(byte) get_vic_charset::idx#0 reg byte a 3.0 +(byte*) get_vic_charset::return +(byte*) get_vic_charset::return#2 return zp ZP_WORD:11 0.6666666666666666 +(byte*) get_vic_charset::return#4 return zp ZP_WORD:11 4.0 +(byte*()) get_vic_screen((byte) get_vic_screen::idx) +(label) get_vic_screen::@1 +(label) get_vic_screen::@2 +(label) get_vic_screen::@3 +(label) get_vic_screen::@4 +(label) get_vic_screen::@5 +(label) get_vic_screen::@return +(byte) get_vic_screen::idx +(byte) get_vic_screen::idx#0 reg byte a 4.0 +(byte) get_vic_screen::idx#1 reg byte a 4.0 +(byte) get_vic_screen::idx#2 reg byte a 2.8 +(byte*) get_vic_screen::return +(byte*) get_vic_screen::return#10 return zp ZP_WORD:3 4.0 +(byte*) get_vic_screen::return#11 return zp ZP_WORD:3 4.0 +(byte*) get_vic_screen::return#5 return zp ZP_WORD:3 1.0 +(void()) gfx_init() +(label) gfx_init::@1 +(label) gfx_init::@10 +(label) gfx_init::@11 +(label) gfx_init::@12 +(label) gfx_init::@13 +(label) gfx_init::@14 +(label) gfx_init::@2 +(label) gfx_init::@3 +(label) gfx_init::@4 +(label) gfx_init::@5 +(label) gfx_init::@6 +(label) gfx_init::@7 +(label) gfx_init::@8 +(label) gfx_init::@9 +(label) gfx_init::@return +(void()) gfx_init_charset() +(label) gfx_init_charset::@1 +(label) gfx_init_charset::@2 +(label) gfx_init_charset::@3 +(label) gfx_init_charset::@4 +(label) gfx_init_charset::@return +(byte) gfx_init_charset::c +(byte) gfx_init_charset::c#1 c zp ZP_BYTE:88 16.5 +(byte) gfx_init_charset::c#4 c zp ZP_BYTE:88 3.142857142857143 +(byte*) gfx_init_charset::chargen +(byte*) gfx_init_charset::chargen#1 chargen zp ZP_WORD:89 42.599999999999994 +(byte*) gfx_init_charset::chargen#2 chargen zp ZP_WORD:89 104.66666666666666 +(byte*) gfx_init_charset::chargen#3 chargen zp ZP_WORD:89 22.0 +(byte*) gfx_init_charset::charset +(byte*) gfx_init_charset::charset#1 charset zp ZP_WORD:91 35.5 +(byte*) gfx_init_charset::charset#2 charset zp ZP_WORD:91 157.0 +(byte*) gfx_init_charset::charset#3 charset zp ZP_WORD:91 22.0 +(byte) gfx_init_charset::l +(byte) gfx_init_charset::l#1 reg byte x 151.5 +(byte) gfx_init_charset::l#2 reg byte x 50.5 +(void()) gfx_init_plane_8bppchunky() +(word~) gfx_init_plane_8bppchunky::$9 $9 zp ZP_WORD:130 101.0 +(label) gfx_init_plane_8bppchunky::@1 +(label) gfx_init_plane_8bppchunky::@2 +(label) gfx_init_plane_8bppchunky::@3 +(label) gfx_init_plane_8bppchunky::@4 +(label) gfx_init_plane_8bppchunky::@5 +(label) gfx_init_plane_8bppchunky::@6 +(label) gfx_init_plane_8bppchunky::@7 +(label) gfx_init_plane_8bppchunky::@return +(byte) gfx_init_plane_8bppchunky::c +(byte) gfx_init_plane_8bppchunky::c#0 reg byte a 202.0 +(byte*) gfx_init_plane_8bppchunky::gfxb +(byte*) gfx_init_plane_8bppchunky::gfxb#1 gfxb zp ZP_WORD:64 42.599999999999994 +(byte*) gfx_init_plane_8bppchunky::gfxb#3 gfxb zp ZP_WORD:64 157.0 +(byte*) gfx_init_plane_8bppchunky::gfxb#4 gfxb zp ZP_WORD:64 75.75 +(byte*) gfx_init_plane_8bppchunky::gfxb#5 gfxb zp ZP_WORD:64 22.0 +(byte) gfx_init_plane_8bppchunky::gfxbCpuBank +(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 reg byte x 202.0 +(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 reg byte x 103.75 +(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 reg byte x 22.0 +(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 reg byte x 34.888888888888886 +(word) gfx_init_plane_8bppchunky::x +(word) gfx_init_plane_8bppchunky::x#1 x zp ZP_WORD:62 151.5 +(word) gfx_init_plane_8bppchunky::x#2 x zp ZP_WORD:62 30.299999999999997 +(byte) gfx_init_plane_8bppchunky::y +(byte) gfx_init_plane_8bppchunky::y#1 y zp ZP_BYTE:61 16.5 +(byte) gfx_init_plane_8bppchunky::y#6 y zp ZP_BYTE:61 9.461538461538462 +(void()) gfx_init_plane_blank() +(label) gfx_init_plane_blank::@return +(void()) gfx_init_plane_charset8() +(byte~) gfx_init_plane_charset8::$8 reg byte a 2002.0 +(label) gfx_init_plane_charset8::@1 +(label) gfx_init_plane_charset8::@2 +(label) gfx_init_plane_charset8::@3 +(label) gfx_init_plane_charset8::@4 +(label) gfx_init_plane_charset8::@5 +(label) gfx_init_plane_charset8::@6 +(label) gfx_init_plane_charset8::@7 +(label) gfx_init_plane_charset8::@8 +(label) gfx_init_plane_charset8::@9 +(label) gfx_init_plane_charset8::@return +(byte) gfx_init_plane_charset8::bits +(byte) gfx_init_plane_charset8::bits#0 bits zp ZP_BYTE:57 101.0 +(byte) gfx_init_plane_charset8::bits#1 bits zp ZP_BYTE:57 500.5 +(byte) gfx_init_plane_charset8::bits#2 bits zp ZP_BYTE:57 443.42857142857144 +(byte) gfx_init_plane_charset8::c +(byte) gfx_init_plane_charset8::c#2 reg byte a 2002.0 +(byte~) gfx_init_plane_charset8::c#3 reg byte a 2002.0 +(byte) gfx_init_plane_charset8::ch +(byte) gfx_init_plane_charset8::ch#1 ch zp ZP_BYTE:53 16.5 +(byte) gfx_init_plane_charset8::ch#8 ch zp ZP_BYTE:53 1.2941176470588236 +(byte*) gfx_init_plane_charset8::chargen +(byte*) gfx_init_plane_charset8::chargen#1 chargen zp ZP_WORD:54 13.3125 +(byte*) gfx_init_plane_charset8::chargen#2 chargen zp ZP_WORD:54 157.0 +(byte*) gfx_init_plane_charset8::chargen#3 chargen zp ZP_WORD:54 22.0 +(byte) gfx_init_plane_charset8::col +(byte) gfx_init_plane_charset8::col#1 col zp ZP_BYTE:60 302.0 +(byte) gfx_init_plane_charset8::col#2 col zp ZP_BYTE:60 388.0 +(byte) gfx_init_plane_charset8::col#5 col zp ZP_BYTE:60 71.0 +(byte) gfx_init_plane_charset8::col#6 col zp ZP_BYTE:60 22.0 +(byte) gfx_init_plane_charset8::cp +(byte) gfx_init_plane_charset8::cp#1 reg byte x 1501.5 +(byte) gfx_init_plane_charset8::cp#2 reg byte x 222.44444444444446 +(byte) gfx_init_plane_charset8::cr +(byte) gfx_init_plane_charset8::cr#1 cr zp ZP_BYTE:56 151.5 +(byte) gfx_init_plane_charset8::cr#6 cr zp ZP_BYTE:56 14.428571428571429 +(byte*) gfx_init_plane_charset8::gfxa +(byte*) gfx_init_plane_charset8::gfxa#1 gfxa zp ZP_WORD:58 234.8888888888889 +(byte*) gfx_init_plane_charset8::gfxa#2 gfxa zp ZP_WORD:58 517.3333333333334 +(byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp ZP_WORD:58 71.0 +(byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp ZP_WORD:58 22.0 +(byte) gfx_init_plane_charset8::gfxbCpuBank +(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = (byte)(const dword) PLANE_CHARSET8#0/(word) $4000 +(void()) gfx_init_plane_fill((dword) gfx_init_plane_fill::plane_addr , (byte) gfx_init_plane_fill::fill) +(dword~) gfx_init_plane_fill::$0 $0 zp ZP_DWORD:124 4.0 +(word~) gfx_init_plane_fill::$1 $1 zp ZP_WORD:128 4.0 +(word~) gfx_init_plane_fill::$4 $4 zp ZP_WORD:42 4.0 +(word~) gfx_init_plane_fill::$5 $5 zp ZP_WORD:42 4.0 +(label) gfx_init_plane_fill::@1 +(label) gfx_init_plane_fill::@2 +(label) gfx_init_plane_fill::@3 +(label) gfx_init_plane_fill::@4 +(label) gfx_init_plane_fill::@5 +(label) gfx_init_plane_fill::@return +(byte) gfx_init_plane_fill::bx +(byte) gfx_init_plane_fill::bx#1 reg byte x 151.5 +(byte) gfx_init_plane_fill::bx#2 reg byte x 67.33333333333333 +(byte) gfx_init_plane_fill::by +(byte) gfx_init_plane_fill::by#1 by zp ZP_BYTE:41 16.5 +(byte) gfx_init_plane_fill::by#4 by zp ZP_BYTE:41 3.6666666666666665 +(byte) gfx_init_plane_fill::fill +(byte) gfx_init_plane_fill::fill#6 fill zp ZP_BYTE:40 5.611111111111111 +(byte*) gfx_init_plane_fill::gfxb +(word) gfx_init_plane_fill::gfxb#0 gfxb zp ZP_WORD:42 2.0 +(byte*) gfx_init_plane_fill::gfxb#1 gfxb zp ZP_WORD:42 42.599999999999994 +(byte*) gfx_init_plane_fill::gfxb#2 gfxb zp ZP_WORD:42 157.0 +(byte*) gfx_init_plane_fill::gfxb#3 gfxb zp ZP_WORD:42 24.0 +(byte*~) gfx_init_plane_fill::gfxb#6 gfxb zp ZP_WORD:42 4.0 +(byte) gfx_init_plane_fill::gfxbCpuBank +(byte) gfx_init_plane_fill::gfxbCpuBank#0 reg byte a 4.0 +(dword) gfx_init_plane_fill::plane_addr +(dword) gfx_init_plane_fill::plane_addr#3 plane_addr zp ZP_DWORD:36 0.6666666666666666 +(void()) gfx_init_plane_full() +(label) gfx_init_plane_full::@return +(void()) gfx_init_plane_horisontal() +(byte~) gfx_init_plane_horisontal::$8 reg byte a 202.0 +(label) gfx_init_plane_horisontal::@1 +(label) gfx_init_plane_horisontal::@2 +(label) gfx_init_plane_horisontal::@3 +(label) gfx_init_plane_horisontal::@4 +(label) gfx_init_plane_horisontal::@5 +(label) gfx_init_plane_horisontal::@6 +(label) gfx_init_plane_horisontal::@7 +(label) gfx_init_plane_horisontal::@return +(byte) gfx_init_plane_horisontal::ax +(byte) gfx_init_plane_horisontal::ax#1 reg byte x 151.5 +(byte) gfx_init_plane_horisontal::ax#2 reg byte x 25.25 +(byte) gfx_init_plane_horisontal::ay +(byte) gfx_init_plane_horisontal::ay#1 ay zp ZP_BYTE:50 16.5 +(byte) gfx_init_plane_horisontal::ay#4 ay zp ZP_BYTE:50 11.181818181818182 +(byte*) gfx_init_plane_horisontal::gfxa +(byte*) gfx_init_plane_horisontal::gfxa#1 gfxa zp ZP_WORD:51 202.0 +(byte*) gfx_init_plane_horisontal::gfxa#2 gfxa zp ZP_WORD:51 202.0 +(byte*) gfx_init_plane_horisontal::gfxa#3 gfxa zp ZP_WORD:51 103.2 +(byte*) gfx_init_plane_horisontal::gfxa#6 gfxa zp ZP_WORD:51 22.0 +(byte*) gfx_init_plane_horisontal::gfxa#7 gfxa zp ZP_WORD:51 62.8 +(byte) gfx_init_plane_horisontal::gfxbCpuBank +(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfxbCpuBank = (byte)(const dword) PLANE_HORISONTAL#0/(word) $4000 +(void()) gfx_init_plane_horisontal2() +(byte~) gfx_init_plane_horisontal2::$8 reg byte a 202.0 +(label) gfx_init_plane_horisontal2::@1 +(label) gfx_init_plane_horisontal2::@2 +(label) gfx_init_plane_horisontal2::@3 +(label) gfx_init_plane_horisontal2::@4 +(label) gfx_init_plane_horisontal2::@return +(byte) gfx_init_plane_horisontal2::ax +(byte) gfx_init_plane_horisontal2::ax#1 reg byte x 151.5 +(byte) gfx_init_plane_horisontal2::ax#2 reg byte x 40.4 +(byte) gfx_init_plane_horisontal2::ay +(byte) gfx_init_plane_horisontal2::ay#1 ay zp ZP_BYTE:44 16.5 +(byte) gfx_init_plane_horisontal2::ay#4 ay zp ZP_BYTE:44 15.375 +(byte*) gfx_init_plane_horisontal2::gfxa +(byte*) gfx_init_plane_horisontal2::gfxa#1 gfxa zp ZP_WORD:45 42.599999999999994 +(byte*) gfx_init_plane_horisontal2::gfxa#2 gfxa zp ZP_WORD:45 78.5 +(byte*) gfx_init_plane_horisontal2::gfxa#3 gfxa zp ZP_WORD:45 22.0 +(byte) gfx_init_plane_horisontal2::gfxbCpuBank +(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfxbCpuBank = (byte)(const dword) PLANE_HORISONTAL2#0/(word) $4000 +(byte) gfx_init_plane_horisontal2::row +(byte) gfx_init_plane_horisontal2::row#0 reg byte a 202.0 +(byte[]) gfx_init_plane_horisontal2::row_bitmask +(const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 row_bitmask = { (byte) 0, (byte) $55, (byte) $aa, (byte) $ff } +(void()) gfx_init_plane_vertical() +(label) gfx_init_plane_vertical::@1 +(label) gfx_init_plane_vertical::@2 +(label) gfx_init_plane_vertical::@3 +(label) gfx_init_plane_vertical::@4 +(label) gfx_init_plane_vertical::@return +(byte) gfx_init_plane_vertical::bx +(byte) gfx_init_plane_vertical::bx#1 reg byte x 151.5 +(byte) gfx_init_plane_vertical::bx#2 reg byte x 67.33333333333333 +(byte) gfx_init_plane_vertical::by +(byte) gfx_init_plane_vertical::by#1 by zp ZP_BYTE:47 16.5 +(byte) gfx_init_plane_vertical::by#4 by zp ZP_BYTE:47 3.6666666666666665 +(byte*) gfx_init_plane_vertical::gfxb +(byte*) gfx_init_plane_vertical::gfxb#1 gfxb zp ZP_WORD:48 42.599999999999994 +(byte*) gfx_init_plane_vertical::gfxb#2 gfxb zp ZP_WORD:48 157.0 +(byte*) gfx_init_plane_vertical::gfxb#3 gfxb zp ZP_WORD:48 22.0 +(byte) gfx_init_plane_vertical::gfxbCpuBank +(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfxbCpuBank = (byte)(const dword) PLANE_VERTICAL#0/(word) $4000 +(void()) gfx_init_plane_vertical2() +(label) gfx_init_plane_vertical2::@return +(void()) gfx_init_screen0() +(byte~) gfx_init_screen0::$0 reg byte a 202.0 +(byte~) gfx_init_screen0::$1 $1 zp ZP_BYTE:139 101.0 +(byte~) gfx_init_screen0::$2 reg byte a 202.0 +(byte~) gfx_init_screen0::$3 reg byte a 202.0 +(label) gfx_init_screen0::@1 +(label) gfx_init_screen0::@2 +(label) gfx_init_screen0::@3 +(label) gfx_init_screen0::@return +(byte*) gfx_init_screen0::ch +(byte*) gfx_init_screen0::ch#1 ch zp ZP_WORD:106 42.599999999999994 +(byte*) gfx_init_screen0::ch#2 ch zp ZP_WORD:106 52.33333333333333 +(byte*) gfx_init_screen0::ch#3 ch zp ZP_WORD:106 22.0 +(byte) gfx_init_screen0::cx +(byte) gfx_init_screen0::cx#1 reg byte x 151.5 +(byte) gfx_init_screen0::cx#2 reg byte x 43.285714285714285 +(byte) gfx_init_screen0::cy +(byte) gfx_init_screen0::cy#1 cy zp ZP_BYTE:105 16.5 +(byte) gfx_init_screen0::cy#4 cy zp ZP_BYTE:105 12.299999999999999 +(void()) gfx_init_screen1() +(byte~) gfx_init_screen1::$0 reg byte a 202.0 +(byte~) gfx_init_screen1::$1 reg byte a 202.0 +(label) gfx_init_screen1::@1 +(label) gfx_init_screen1::@2 +(label) gfx_init_screen1::@3 +(label) gfx_init_screen1::@return +(byte*) gfx_init_screen1::ch +(byte*) gfx_init_screen1::ch#1 ch zp ZP_WORD:103 42.599999999999994 +(byte*) gfx_init_screen1::ch#2 ch zp ZP_WORD:103 78.5 +(byte*) gfx_init_screen1::ch#3 ch zp ZP_WORD:103 22.0 +(byte) gfx_init_screen1::cx +(byte) gfx_init_screen1::cx#1 reg byte x 151.5 +(byte) gfx_init_screen1::cx#2 reg byte x 60.599999999999994 +(byte) gfx_init_screen1::cy +(byte) gfx_init_screen1::cy#1 cy zp ZP_BYTE:102 16.5 +(byte) gfx_init_screen1::cy#4 cy zp ZP_BYTE:102 15.375 +(void()) gfx_init_screen2() +(byte~) gfx_init_screen2::$0 reg byte a 202.0 +(byte~) gfx_init_screen2::$3 reg byte a 202.0 +(byte~) gfx_init_screen2::$4 reg byte a 202.0 +(label) gfx_init_screen2::@1 +(label) gfx_init_screen2::@2 +(label) gfx_init_screen2::@3 +(label) gfx_init_screen2::@return +(byte*) gfx_init_screen2::ch +(byte*) gfx_init_screen2::ch#1 ch zp ZP_WORD:100 42.599999999999994 +(byte*) gfx_init_screen2::ch#2 ch zp ZP_WORD:100 44.85714285714286 +(byte*) gfx_init_screen2::ch#3 ch zp ZP_WORD:100 22.0 +(byte) gfx_init_screen2::col +(byte) gfx_init_screen2::col#0 reg byte y 151.5 +(byte) gfx_init_screen2::col2 +(byte) gfx_init_screen2::col2#0 col2 zp ZP_BYTE:138 101.0 +(byte) gfx_init_screen2::cx +(byte) gfx_init_screen2::cx#1 reg byte x 151.5 +(byte) gfx_init_screen2::cx#2 reg byte x 37.875 +(byte) gfx_init_screen2::cy +(byte) gfx_init_screen2::cy#1 cy zp ZP_BYTE:99 16.5 +(byte) gfx_init_screen2::cy#4 cy zp ZP_BYTE:99 11.181818181818182 +(void()) gfx_init_screen3() +(byte~) gfx_init_screen3::$0 reg byte a 202.0 +(byte~) gfx_init_screen3::$1 $1 zp ZP_BYTE:137 101.0 +(byte~) gfx_init_screen3::$2 reg byte a 202.0 +(byte~) gfx_init_screen3::$3 reg byte a 202.0 +(label) gfx_init_screen3::@1 +(label) gfx_init_screen3::@2 +(label) gfx_init_screen3::@3 +(label) gfx_init_screen3::@return +(byte*) gfx_init_screen3::ch +(byte*) gfx_init_screen3::ch#1 ch zp ZP_WORD:97 42.599999999999994 +(byte*) gfx_init_screen3::ch#2 ch zp ZP_WORD:97 52.33333333333333 +(byte*) gfx_init_screen3::ch#3 ch zp ZP_WORD:97 22.0 +(byte) gfx_init_screen3::cx +(byte) gfx_init_screen3::cx#1 reg byte x 151.5 +(byte) gfx_init_screen3::cx#2 reg byte x 43.285714285714285 +(byte) gfx_init_screen3::cy +(byte) gfx_init_screen3::cy#1 cy zp ZP_BYTE:96 16.5 +(byte) gfx_init_screen3::cy#4 cy zp ZP_BYTE:96 12.299999999999999 +(void()) gfx_init_screen4() +(label) gfx_init_screen4::@1 +(label) gfx_init_screen4::@2 +(label) gfx_init_screen4::@3 +(label) gfx_init_screen4::@return +(byte*) gfx_init_screen4::ch +(byte*) gfx_init_screen4::ch#1 ch zp ZP_WORD:94 42.599999999999994 +(byte*) gfx_init_screen4::ch#2 ch zp ZP_WORD:94 157.0 +(byte*) gfx_init_screen4::ch#3 ch zp ZP_WORD:94 22.0 +(byte) gfx_init_screen4::cx +(byte) gfx_init_screen4::cx#1 reg byte x 151.5 +(byte) gfx_init_screen4::cx#2 reg byte x 67.33333333333333 +(byte) gfx_init_screen4::cy +(byte) gfx_init_screen4::cy#1 cy zp ZP_BYTE:93 16.5 +(byte) gfx_init_screen4::cy#4 cy zp ZP_BYTE:93 3.6666666666666665 +(void()) gfx_init_vic_bitmap() +(label) gfx_init_vic_bitmap::@1 +(label) gfx_init_vic_bitmap::@2 +(label) gfx_init_vic_bitmap::@3 +(label) gfx_init_vic_bitmap::@return +(byte) gfx_init_vic_bitmap::l +(byte) gfx_init_vic_bitmap::l#1 l zp ZP_BYTE:66 16.5 +(byte) gfx_init_vic_bitmap::l#2 l zp ZP_BYTE:66 11.0 +(byte) gfx_init_vic_bitmap::lines_cnt +(const byte) gfx_init_vic_bitmap::lines_cnt#0 lines_cnt = (byte) 9 +(byte[]) gfx_init_vic_bitmap::lines_x +(const byte[]) gfx_init_vic_bitmap::lines_x#0 lines_x = { (byte) 0, (byte) $ff, (byte) $ff, (byte) 0, (byte) 0, (byte) $80, (byte) $ff, (byte) $80, (byte) 0, (byte) $80 } +(byte[]) gfx_init_vic_bitmap::lines_y +(const byte[]) gfx_init_vic_bitmap::lines_y#0 lines_y = { (byte) 0, (byte) 0, (byte) $c7, (byte) $c7, (byte) 0, (byte) 0, (byte) $64, (byte) $c7, (byte) $64, (byte) 0 } +(void()) gfx_mode() +(byte~) gfx_mode::$20 reg byte a 4.0 +(dword~) gfx_mode::$22 $22 zp ZP_DWORD:13 4.0 +(byte~) gfx_mode::$25 reg byte a 4.0 +(word~) gfx_mode::$26 $26 zp ZP_WORD:108 2.0 +(byte~) gfx_mode::$27 reg byte a 4.0 +(word~) gfx_mode::$28 $28 zp ZP_WORD:110 4.0 +(byte~) gfx_mode::$29 reg byte a 4.0 +(byte~) gfx_mode::$30 reg byte a 4.0 +(byte~) gfx_mode::$31 reg byte a 4.0 +(byte~) gfx_mode::$32 reg byte a 4.0 +(byte~) gfx_mode::$33 reg byte a 4.0 +(byte~) gfx_mode::$34 reg byte a 4.0 +(dword~) gfx_mode::$36 $36 zp ZP_DWORD:13 4.0 +(byte~) gfx_mode::$39 reg byte a 4.0 +(word~) gfx_mode::$40 $40 zp ZP_WORD:112 2.0 +(byte~) gfx_mode::$41 reg byte a 4.0 +(word~) gfx_mode::$42 $42 zp ZP_WORD:114 4.0 +(byte~) gfx_mode::$43 reg byte a 4.0 +(byte~) gfx_mode::$44 reg byte a 4.0 +(byte~) gfx_mode::$45 reg byte a 4.0 +(byte~) gfx_mode::$46 reg byte a 4.0 +(byte~) gfx_mode::$47 reg byte a 4.0 +(byte*~) gfx_mode::$53 $53 zp ZP_WORD:3 2.0 +(word~) gfx_mode::$54 $54 zp ZP_WORD:3 4.0 +(word~) gfx_mode::$55 $55 zp ZP_WORD:3 2.0 +(byte~) gfx_mode::$56 $56 zp ZP_BYTE:116 0.5 +(byte*~) gfx_mode::$58 $58 zp ZP_WORD:11 2.0 +(word~) gfx_mode::$59 $59 zp ZP_WORD:11 4.0 +(byte~) gfx_mode::$60 reg byte a 4.0 +(byte~) gfx_mode::$61 reg byte a 4.0 +(byte~) gfx_mode::$62 reg byte a 4.0 +(byte~) gfx_mode::$64 reg byte a 4.0 +(byte~) gfx_mode::$65 reg byte a 4.0 +(byte~) gfx_mode::$66 reg byte a 4.0 +(byte~) gfx_mode::$67 reg byte a 4.0 +(byte~) gfx_mode::$68 reg byte a 4.0 +(byte~) gfx_mode::$69 reg byte a 4.0 +(byte~) gfx_mode::$70 reg byte a 4.0 +(byte~) gfx_mode::$71 reg byte a 4.0 +(label) gfx_mode::@1 +(label) gfx_mode::@10 +(label) gfx_mode::@11 +(label) gfx_mode::@12 +(label) gfx_mode::@13 +(label) gfx_mode::@14 +(label) gfx_mode::@15 +(label) gfx_mode::@16 +(label) gfx_mode::@17 +(label) gfx_mode::@18 +(label) gfx_mode::@19 +(label) gfx_mode::@2 +(label) gfx_mode::@20 +(label) gfx_mode::@21 +(label) gfx_mode::@22 +(label) gfx_mode::@23 +(label) gfx_mode::@24 +(label) gfx_mode::@25 +(label) gfx_mode::@26 +(label) gfx_mode::@27 +(label) gfx_mode::@28 +(label) gfx_mode::@29 +(label) gfx_mode::@3 +(label) gfx_mode::@30 +(label) gfx_mode::@31 +(label) gfx_mode::@32 +(label) gfx_mode::@33 +(label) gfx_mode::@4 +(label) gfx_mode::@5 +(label) gfx_mode::@6 +(label) gfx_mode::@7 +(label) gfx_mode::@8 +(label) gfx_mode::@9 +(label) gfx_mode::@return +(byte*) gfx_mode::col +(byte*) gfx_mode::col#1 col zp ZP_WORD:5 350.5 +(byte*) gfx_mode::col#2 col zp ZP_WORD:5 1552.0 +(byte*) gfx_mode::col#3 col zp ZP_WORD:5 202.0 +(byte) gfx_mode::cx +(byte) gfx_mode::cx#1 reg byte x 1501.5 +(byte) gfx_mode::cx#2 reg byte x 500.5 +(byte) gfx_mode::cy +(byte) gfx_mode::cy#1 cy zp ZP_BYTE:2 151.5 +(byte) gfx_mode::cy#4 cy zp ZP_BYTE:2 28.857142857142858 +(byte) gfx_mode::dtv_control +(byte) gfx_mode::dtv_control#10 reg byte x 4.0 +(byte) gfx_mode::dtv_control#11 reg byte x 4.0 +(byte) gfx_mode::dtv_control#12 reg byte x 6.0 +(byte) gfx_mode::dtv_control#13 reg byte x 4.0 +(byte) gfx_mode::dtv_control#14 reg byte x 2.0 +(byte) gfx_mode::dtv_control#15 reg byte x 4.0 +(byte) gfx_mode::dtv_control#2 reg byte x 4.0 +(byte) gfx_mode::dtv_control#3 reg byte x 4.0 +(byte) gfx_mode::dtv_control#4 reg byte x 4.0 +(byte) gfx_mode::dtv_control#5 reg byte x 4.0 +(byte) gfx_mode::dtv_control#6 reg byte x 4.0 +(byte) gfx_mode::i +(byte) gfx_mode::i#1 reg byte x 151.5 +(byte) gfx_mode::i#2 reg byte x 202.0 +(byte) gfx_mode::j +(byte) gfx_mode::j#1 reg byte x 151.5 +(byte) gfx_mode::j#2 reg byte x 202.0 +(byte) gfx_mode::keyboard_event +(byte) gfx_mode::keyboard_event#0 reg byte a 202.0 +(dword) gfx_mode::plane_a +(dword) gfx_mode::plane_a#0 plane_a zp ZP_DWORD:13 1.0 +(byte) gfx_mode::plane_a_offs +(byte) gfx_mode::plane_a_offs#0 reg byte x 0.8 +(dword) gfx_mode::plane_b +(dword) gfx_mode::plane_b#0 plane_b zp ZP_DWORD:13 1.0 +(byte) gfx_mode::plane_b_offs +(byte) gfx_mode::plane_b_offs#0 reg byte x 0.8 +(byte*) gfx_mode::vic_colors +(byte*) gfx_mode::vic_colors#0 vic_colors zp ZP_WORD:3 4.0 +(byte*) gfx_mode::vic_colors#1 vic_colors zp ZP_WORD:3 420.59999999999997 +(byte*) gfx_mode::vic_colors#2 vic_colors zp ZP_WORD:3 1034.6666666666667 +(byte*) gfx_mode::vic_colors#3 vic_colors zp ZP_WORD:3 204.0 +(byte) gfx_mode::vic_control +(byte) gfx_mode::vic_control#2 reg byte x 4.0 +(byte) gfx_mode::vic_control#4 reg byte x 6.0 +(byte) gfx_mode::vic_control#5 reg byte x 2.0 +(byte) gfx_mode::vic_control2 +(byte) gfx_mode::vic_control2#2 reg byte a 2.0 +(byte()) keyboard_event_get() +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte) keyboard_event_get::return#1 reg byte a 4.0 +(byte) keyboard_event_get::return#2 reg byte a 26.25 +(byte) keyboard_event_get::return#3 reg byte a 202.0 +(byte) keyboard_event_get::return#4 reg byte a 4.0 +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 reg byte a 4.0 +(byte~) keyboard_event_pressed::$1 reg byte a 4.0 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::keycode#4 keycode zp ZP_BYTE:10 1.3333333333333333 +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::return#0 reg byte a 4.0 +(byte) keyboard_event_pressed::return#1 reg byte a 4.0 +(byte) keyboard_event_pressed::return#10 reg byte a 1.6666666666666665 +(byte) keyboard_event_pressed::return#2 reg byte a 4.0 +(byte) keyboard_event_pressed::return#3 reg byte a 4.0 +(byte) keyboard_event_pressed::row_bits +(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:118 2.0 +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 reg byte a 4.0 +(byte~) keyboard_event_scan::$15 reg byte a 200002.0 +(byte~) keyboard_event_scan::$16 reg byte a 200002.0 +(byte~) keyboard_event_scan::$23 reg byte a 200002.0 +(byte~) keyboard_event_scan::$3 reg byte a 4.0 +(byte~) keyboard_event_scan::$6 reg byte a 4.0 +(byte~) keyboard_event_scan::$9 reg byte a 4.0 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@13 +(label) keyboard_event_scan::@14 +(label) keyboard_event_scan::@15 +(label) keyboard_event_scan::@16 +(label) keyboard_event_scan::@17 +(label) keyboard_event_scan::@18 +(label) keyboard_event_scan::@19 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@20 +(label) keyboard_event_scan::@21 +(label) keyboard_event_scan::@22 +(label) keyboard_event_scan::@23 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::col#1 reg byte x 150001.5 +(byte) keyboard_event_scan::col#2 reg byte x 28571.714285714286 +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::event_type#0 reg byte a 200002.0 +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:8 20002.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:8 31538.846153846156 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:8 5000.5 +(byte) keyboard_event_scan::keycode#13 keycode zp ZP_BYTE:8 10001.0 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:8 52500.75 +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:7 15001.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:7 6000.24 +(byte) keyboard_event_scan::row_scan +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:117 12778.055555555557 +(byte[8]) keyboard_events +(const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } +(byte) keyboard_events_size +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:9 200002.0 +(byte) keyboard_events_size#100 keyboard_events_size zp ZP_BYTE:9 882.6176470588235 +(byte) keyboard_events_size#108 keyboard_events_size zp ZP_BYTE:9 102001.2 +(byte) keyboard_events_size#109 keyboard_events_size zp ZP_BYTE:9 4286.428571428572 +(byte) keyboard_events_size#18 keyboard_events_size zp ZP_BYTE:9 81000.90000000001 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:9 200002.0 +(byte) keyboard_events_size#24 keyboard_events_size zp ZP_BYTE:9 6.766666666666667 +(byte) keyboard_events_size#27 keyboard_events_size zp ZP_BYTE:9 0.3333333333333333 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:9 3.0 +(byte) keyboard_events_size#47 keyboard_events_size zp ZP_BYTE:9 73.73333333333335 +(byte) keyboard_events_size#99 keyboard_events_size zp ZP_BYTE:9 105.0 +(void()) keyboard_init() +(label) keyboard_init::@return +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 3334.333333333333 +(byte) keyboard_matrix_read::return#2 reg byte a 20002.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte x 10003.0 +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(byte) keyboard_modifiers +(byte) keyboard_modifiers#18 reg byte x 0.8 +(byte) keyboard_modifiers#19 reg byte x 1.6 +(byte) keyboard_modifiers#20 reg byte x 1.6 +(byte) keyboard_modifiers#21 reg byte x 0.7272727272727273 +(byte) keyboard_modifiers#3 reg byte x 4.0 +(byte) keyboard_modifiers#4 reg byte x 4.0 +(byte) keyboard_modifiers#5 reg byte x 4.0 +(byte[8]) keyboard_scan_values +(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(byte[]) preset_8bpppixelcell +(const byte[]) preset_8bpppixelcell#0 preset_8bpppixelcell = { (byte) $a, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) $b, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_chunky +(const byte[]) preset_chunky#0 preset_chunky = { (byte) 7, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 6, (byte) 0, (byte) 0, (byte) 0, (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_ecmchar +(const byte[]) preset_ecmchar#0 preset_ecmchar = { (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 2, (byte) 0, (byte) 5, (byte) 0, (byte) 6 } +(byte[]) preset_hi_ecmchar +(const byte[]) preset_hi_ecmchar#0 preset_hi_ecmchar = { (byte) 5, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 3, (byte) 4, (byte) 6, (byte) 8, (byte) 9, (byte) $c, (byte) $c } +(byte[]) preset_hi_stdchar +(const byte[]) preset_hi_stdchar#0 preset_hi_stdchar = { (byte) 4, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_mcbm +(const byte[]) preset_mcbm#0 preset_mcbm = { (byte) 3, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 2, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 9, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_sixsfred +(const byte[]) preset_sixsfred#0 preset_sixsfred = { (byte) 8, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 9, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) $a, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_sixsfred2 +(const byte[]) preset_sixsfred2#0 preset_sixsfred2 = { (byte) 9, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 9, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) $a, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_stdbm +(const byte[]) preset_stdbm#0 preset_stdbm = { (byte) 2, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 2, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_stdchar +(const byte[]) preset_stdchar#0 preset_stdchar = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) preset_twoplane +(const byte[]) preset_twoplane#0 preset_twoplane = { (byte) 6, (byte) 1, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 7, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 7, (byte) 0, (byte) $d, (byte) 4, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:30 2002.0 +(byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:30 821.0 +(byte*) print_char_cursor#22 print_char_cursor zp ZP_WORD:30 102.0 +(byte*) print_char_cursor#38 print_char_cursor zp ZP_WORD:30 572.0 +(byte*~) print_char_cursor#73 print_char_cursor zp ZP_WORD:30 4.0 +(byte*~) print_char_cursor#74 print_char_cursor zp ZP_WORD:30 202.0 +(void()) print_cls() +(byte*~) print_cls::$0 $0 zp ZP_WORD:122 202.0 +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#0 sc zp ZP_WORD:34 4.0 +(byte*) print_cls::sc#1 sc zp ZP_WORD:34 101.0 +(byte*) print_cls::sc#2 sc zp ZP_WORD:34 152.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#2 print_line_cursor zp ZP_WORD:32 8.749999999999998 +(byte*) print_line_cursor#21 print_line_cursor zp ZP_WORD:32 2004.0 +(byte*) print_line_cursor#22 print_line_cursor zp ZP_WORD:32 641.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_set_screen((byte*) print_set_screen::screen) +(label) print_set_screen::@return +(byte*) print_set_screen::screen +(byte*) print_set_screen::screen#2 screen zp ZP_WORD:32 5.631578947368421 +(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at) +(label) print_str_at::@1 +(label) print_str_at::@2 +(label) print_str_at::@return +(byte*) print_str_at::at +(byte*) print_str_at::at#0 at zp ZP_WORD:22 1001.0 +(byte*) print_str_at::at#2 at zp ZP_WORD:22 1001.0 +(byte*) print_str_at::str +(byte*) print_str_at::str#0 str zp ZP_WORD:20 2002.0 +(byte*) print_str_at::str#1 str zp ZP_WORD:20 2.0 +(byte*) print_str_at::str#2 str zp ZP_WORD:20 1001.5 +(void()) print_str_lines((byte*) print_str_lines::str) +(label) print_str_lines::@1 +(label) print_str_lines::@2 +(label) print_str_lines::@3 +(label) print_str_lines::@4 +(label) print_str_lines::@5 +(label) print_str_lines::@6 +(label) print_str_lines::@return +(byte) print_str_lines::ch +(byte) print_str_lines::ch#0 reg byte a 667.3333333333334 +(byte*) print_str_lines::str +(byte*) print_str_lines::str#0 str zp ZP_WORD:28 233.66666666666669 +(byte*) print_str_lines::str#3 str zp ZP_WORD:28 152.5 +(byte*) print_str_lines::str#4 str zp ZP_WORD:28 1552.0 +(byte*) print_str_lines::str#5 str zp ZP_WORD:28 1.0 +(void()) render_preset_name((byte) render_preset_name::idx) +(label) render_preset_name::@1 +(label) render_preset_name::@10 +(label) render_preset_name::@11 +(label) render_preset_name::@12 +(label) render_preset_name::@2 +(label) render_preset_name::@3 +(label) render_preset_name::@4 +(label) render_preset_name::@5 +(label) render_preset_name::@6 +(label) render_preset_name::@7 +(label) render_preset_name::@8 +(label) render_preset_name::@9 +(label) render_preset_name::@return +(byte) render_preset_name::idx +(byte) render_preset_name::idx#0 reg byte a 4.0 +(byte) render_preset_name::idx#1 reg byte a 202.0 +(byte) render_preset_name::idx#10 reg byte a 11.363636363636362 +(byte*) render_preset_name::name +(const byte*) render_preset_name::name#1 name#1 = (string) "Standard Charset @" +(const byte*) render_preset_name::name#10 name#10 = (string) "Sixs Fred 2 @" +(const byte*) render_preset_name::name#11 name#11 = (string) "8bpp Pixel Cell @" +(byte*) render_preset_name::name#13 name zp ZP_WORD:20 2.0 +(const byte*) render_preset_name::name#2 name#2 = (string) "Extended Color Charset @" +(const byte*) render_preset_name::name#3 name#3 = (string) "Standard Bitmap @" +(const byte*) render_preset_name::name#4 name#4 = (string) "Multicolor Bitmap @" +(const byte*) render_preset_name::name#5 name#5 = (string) "Hicolor Charset @" +(const byte*) render_preset_name::name#6 name#6 = (string) "Hicolor Extended Color Charset@" +(const byte*) render_preset_name::name#7 name#7 = (string) "Twoplane Bitmap @" +(const byte*) render_preset_name::name#8 name#8 = (string) "Chunky 8bpp @" +(const byte*) render_preset_name::name#9 name#9 = (string) "Sixs Fred @" + +reg byte x [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#3 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 ] +reg byte x [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ] +reg byte a [ gfx_mode::vic_control2#2 ] +zp ZP_BYTE:2 [ gfx_mode::cy#4 gfx_mode::cy#1 ] +zp ZP_WORD:3 [ gfx_mode::vic_colors#2 gfx_mode::vic_colors#3 gfx_mode::vic_colors#1 gfx_mode::vic_colors#0 get_vic_screen::return#11 get_vic_screen::return#5 get_vic_screen::return#10 gfx_mode::$53 gfx_mode::$54 gfx_mode::$55 ] +zp ZP_WORD:5 [ gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ] +reg byte x [ gfx_mode::cx#2 gfx_mode::cx#1 ] +reg byte x [ gfx_mode::j#2 gfx_mode::j#1 ] +reg byte x [ gfx_mode::i#2 gfx_mode::i#1 ] +reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +reg byte x [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#19 keyboard_modifiers#18 keyboard_modifiers#3 keyboard_modifiers#4 keyboard_modifiers#5 ] +reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +zp ZP_BYTE:8 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] +zp ZP_BYTE:9 [ keyboard_events_size#18 keyboard_events_size#109 keyboard_events_size#99 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#108 keyboard_events_size#1 keyboard_events_size#2 ] +zp ZP_BYTE:10 [ keyboard_event_pressed::keycode#4 ] +reg byte a [ get_vic_screen::idx#2 get_vic_screen::idx#0 get_vic_screen::idx#1 ] +zp ZP_WORD:11 [ get_vic_charset::return#2 get_vic_charset::return#4 gfx_mode::$58 gfx_mode::$59 ] +reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ] +zp ZP_DWORD:13 [ get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$22 gfx_mode::plane_a#0 gfx_mode::$36 gfx_mode::plane_b#0 ] +reg byte x [ form_mode::i#2 form_mode::i#1 ] +zp ZP_BYTE:17 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +zp ZP_BYTE:18 [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#31 form_field_idx#6 form_field_idx#5 ] +zp ZP_BYTE:19 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] +reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] +zp ZP_WORD:20 [ render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] +zp ZP_WORD:22 [ print_str_at::at#2 print_str_at::at#0 ] +reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] +reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] +zp ZP_WORD:24 [ apply_preset::preset#14 ] +reg byte y [ apply_preset::i#2 apply_preset::i#1 ] +reg byte x [ form_control::return#2 ] +zp ZP_WORD:26 [ form_set_screen::line#2 form_set_screen::line#1 ] +reg byte x [ form_set_screen::y#2 form_set_screen::y#1 ] +zp ZP_WORD:28 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] +zp ZP_WORD:30 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#73 print_char_cursor#74 print_char_cursor#38 print_char_cursor#1 ] +zp ZP_WORD:32 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] +zp ZP_WORD:34 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] +zp ZP_DWORD:36 [ gfx_init_plane_fill::plane_addr#3 ] +zp ZP_BYTE:40 [ gfx_init_plane_fill::fill#6 ] +zp ZP_BYTE:41 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] +zp ZP_WORD:42 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 ] +reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] +reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ] +zp ZP_BYTE:44 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] +zp ZP_WORD:45 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 ] +reg byte x [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] +zp ZP_BYTE:47 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] +zp ZP_WORD:48 [ gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 ] +reg byte x [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] +zp ZP_BYTE:50 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] +zp ZP_WORD:51 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 ] +reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] +zp ZP_BYTE:53 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +zp ZP_WORD:54 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] +zp ZP_BYTE:56 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] +zp ZP_BYTE:57 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] +zp ZP_WORD:58 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] +zp ZP_BYTE:60 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] +reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] +reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] +zp ZP_BYTE:61 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] +zp ZP_WORD:62 [ gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 ] +reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] +zp ZP_WORD:64 [ gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] +zp ZP_BYTE:66 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] +zp ZP_BYTE:67 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 ] +zp ZP_BYTE:68 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line::xd#2 bitmap_line::xd#1 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] +zp ZP_BYTE:69 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 ] +zp ZP_BYTE:70 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 ] +zp ZP_BYTE:71 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +zp ZP_BYTE:72 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] +reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] +reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] +zp ZP_BYTE:73 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 ] +zp ZP_BYTE:74 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line::y1#0 ] +reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] +zp ZP_BYTE:75 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 ] +zp ZP_BYTE:76 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] +zp ZP_BYTE:77 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 ] +zp ZP_BYTE:78 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 ] +zp ZP_BYTE:79 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] +zp ZP_BYTE:80 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] +reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] +zp ZP_BYTE:81 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] +zp ZP_BYTE:82 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] +zp ZP_BYTE:83 [ bitmap_clear::y#4 bitmap_clear::y#1 ] +zp ZP_WORD:84 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 ] +reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] +reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] +reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] +reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +zp ZP_WORD:86 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] +zp ZP_BYTE:88 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] +zp ZP_WORD:89 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 ] +zp ZP_WORD:91 [ gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] +reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] +zp ZP_BYTE:93 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] +zp ZP_WORD:94 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 ] +reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ] +zp ZP_BYTE:96 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] +reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] +zp ZP_WORD:97 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ] +zp ZP_BYTE:99 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] +reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] +zp ZP_WORD:100 [ gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] +zp ZP_BYTE:102 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] +reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] +zp ZP_WORD:103 [ gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 ] +zp ZP_BYTE:105 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] +zp ZP_WORD:106 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] +reg byte a [ gfx_mode::$20 ] +reg byte x [ gfx_mode::plane_a_offs#0 ] +zp ZP_WORD:108 [ gfx_mode::$26 ] +reg byte a [ gfx_mode::$25 ] +reg byte a [ gfx_mode::$27 ] +zp ZP_WORD:110 [ gfx_mode::$28 ] +reg byte a [ gfx_mode::$29 ] +reg byte a [ gfx_mode::$30 ] +reg byte a [ gfx_mode::$31 ] +reg byte a [ gfx_mode::$32 ] +reg byte a [ gfx_mode::$33 ] +reg byte a [ gfx_mode::$34 ] +reg byte x [ gfx_mode::plane_b_offs#0 ] +zp ZP_WORD:112 [ gfx_mode::$40 ] +reg byte a [ gfx_mode::$39 ] +reg byte a [ gfx_mode::$41 ] +zp ZP_WORD:114 [ gfx_mode::$42 ] +reg byte a [ gfx_mode::$43 ] +reg byte a [ gfx_mode::$44 ] +reg byte a [ gfx_mode::$45 ] +reg byte a [ gfx_mode::$46 ] +reg byte a [ gfx_mode::$47 ] +zp ZP_BYTE:116 [ gfx_mode::$56 ] +reg byte a [ get_vic_charset::idx#0 ] +reg byte a [ gfx_mode::$60 ] +reg byte a [ gfx_mode::$61 ] +reg byte a [ gfx_mode::$62 ] +reg byte a [ gfx_mode::$64 ] +reg byte a [ gfx_mode::$65 ] +reg byte a [ gfx_mode::$66 ] +reg byte a [ gfx_mode::$67 ] +reg byte a [ gfx_mode::$68 ] +reg byte a [ gfx_mode::$69 ] +reg byte a [ gfx_mode::$70 ] +reg byte a [ gfx_mode::$71 ] +reg byte a [ keyboard_event_get::return#3 ] +reg byte a [ gfx_mode::keyboard_event#0 ] +reg byte x [ keyboard_matrix_read::rowid#0 ] +reg byte a [ keyboard_matrix_read::return#2 ] +zp ZP_BYTE:117 [ keyboard_event_scan::row_scan#0 ] +reg byte a [ keyboard_event_pressed::return#0 ] +reg byte a [ keyboard_event_scan::$0 ] +reg byte a [ keyboard_event_pressed::return#1 ] +reg byte a [ keyboard_event_scan::$3 ] +reg byte a [ keyboard_event_pressed::return#2 ] +reg byte a [ keyboard_event_scan::$6 ] +reg byte a [ keyboard_event_pressed::return#3 ] +reg byte a [ keyboard_event_scan::$9 ] +reg byte a [ keyboard_event_scan::$15 ] +reg byte a [ keyboard_event_scan::$16 ] +reg byte a [ keyboard_event_scan::event_type#0 ] +reg byte a [ keyboard_event_scan::$23 ] +reg byte a [ keyboard_event_pressed::$0 ] +zp ZP_BYTE:118 [ keyboard_event_pressed::row_bits#0 ] +reg byte a [ keyboard_event_pressed::$1 ] +reg byte a [ keyboard_event_pressed::return#10 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ form_control::return#0 ] +reg byte a [ form_mode::$36 ] +reg byte a [ apply_preset::idx#0 ] +reg byte a [ form_field_ptr::y#0 ] +zp ZP_WORD:119 [ form_field_ptr::line#0 ] +zp ZP_BYTE:121 [ form_field_ptr::x#0 ] +reg byte a [ form_control::$13 ] +reg byte a [ keyboard_event_get::return#4 ] +reg byte a [ form_control::key_event#0 ] +reg byte a [ form_control::$15 ] +reg byte a [ form_control::$16 ] +reg byte a [ form_control::$24 ] +reg byte a [ form_control::$14 ] +reg byte a [ form_set_screen::$0 ] +reg byte a [ form_set_screen::$1 ] +reg byte a [ print_str_lines::ch#0 ] +zp ZP_WORD:122 [ print_cls::$0 ] +zp ZP_DWORD:124 [ gfx_init_plane_fill::$0 ] +zp ZP_WORD:128 [ gfx_init_plane_fill::$1 ] +reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ] +reg byte a [ gfx_init_plane_horisontal2::$8 ] +reg byte a [ gfx_init_plane_horisontal2::row#0 ] +reg byte a [ gfx_init_plane_horisontal::$8 ] +reg byte a [ gfx_init_plane_charset8::$8 ] +zp ZP_WORD:130 [ gfx_init_plane_8bppchunky::$9 ] +reg byte a [ gfx_init_plane_8bppchunky::c#0 ] +reg byte x [ bitmap_line::x1#0 ] +reg byte y [ bitmap_line::yd#2 ] +reg byte y [ bitmap_line::yd#1 ] +reg byte y [ bitmap_line::yd#10 ] +reg byte y [ bitmap_line::yd#11 ] +reg byte x [ bitmap_line_xdyi::$6 ] +zp ZP_WORD:132 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 ] +zp ZP_WORD:134 [ bitmap_plot::plotter_y#0 ] +reg byte a [ bitmap_plot::$1 ] +reg byte a [ bitmap_line_ydxi::$6 ] +reg byte x [ bitmap_line_xdyd::$6 ] +reg byte a [ bitmap_line_ydxd::$6 ] +reg byte a [ bitmap_init::$0 ] +zp ZP_BYTE:136 [ bitmap_init::$10 ] +reg byte a [ bitmap_init::$7 ] +reg byte a [ bitmap_init::$8 ] +reg byte a [ bitmap_init::$9 ] +reg byte a [ gfx_init_screen3::$0 ] +zp ZP_BYTE:137 [ gfx_init_screen3::$1 ] +reg byte a [ gfx_init_screen3::$2 ] +reg byte a [ gfx_init_screen3::$3 ] +reg byte a [ gfx_init_screen2::$0 ] +reg byte y [ gfx_init_screen2::col#0 ] +zp ZP_BYTE:138 [ gfx_init_screen2::col2#0 ] +reg byte a [ gfx_init_screen2::$3 ] +reg byte a [ gfx_init_screen2::$4 ] +reg byte a [ gfx_init_screen1::$0 ] +reg byte a [ gfx_init_screen1::$1 ] +reg byte a [ gfx_init_screen0::$0 ] +zp ZP_BYTE:139 [ gfx_init_screen0::$1 ] +reg byte a [ gfx_init_screen0::$2 ] +reg byte a [ gfx_init_screen0::$3 ] diff --git a/src/test/ref/c64dtv-gfxmodes.sym b/src/test/ref/c64dtv-gfxmodes.sym index 1daabbadc..2a977e7d4 100644 --- a/src/test/ref/c64dtv-gfxmodes.sym +++ b/src/test/ref/c64dtv-gfxmodes.sym @@ -1 +1,1422 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BGCOL1 +(const byte*) BGCOL1#0 BGCOL1 = (byte*) 53281 +(byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = (byte*) 53282 +(byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = (byte*) 53283 +(byte*) BGCOL4 +(const byte*) BGCOL4#0 BGCOL4 = (byte*) 53284 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte) BLUE +(const byte) BLUE#0 BLUE = (byte) 6 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte) DTV_BORDER_OFF +(const byte) DTV_BORDER_OFF#0 DTV_BORDER_OFF = (byte) 2 +(byte) DTV_CHUNKY +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte) $40 +(byte) DTV_COLORRAM_OFF +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte) $10 +(dword) DTV_COLOR_BANK_DEFAULT +(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword) $1d800 +(byte*) DTV_COLOR_BANK_HI +(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = (byte*) 53303 +(byte*) DTV_COLOR_BANK_LO +(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = (byte*) 53302 +(byte*) DTV_CONTROL +(const byte*) DTV_CONTROL#0 DTV_CONTROL = (byte*) 53308 +(byte*) DTV_FEATURE +(const byte*) DTV_FEATURE#0 DTV_FEATURE = (byte*) 53311 +(byte) DTV_FEATURE_ENABLE +(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte) 1 +(byte*) DTV_GRAPHICS_VIC_BANK +(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = (byte*) 53309 +(byte) DTV_HIGHCOLOR +(const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte) 4 +(byte) DTV_LINEAR +(const byte) DTV_LINEAR#0 DTV_LINEAR = (byte) 1 +(byte) DTV_OVERSCAN +(const byte) DTV_OVERSCAN#0 DTV_OVERSCAN = (byte) 8 +(byte*) DTV_PALETTE +(const byte*) DTV_PALETTE#0 DTV_PALETTE = (byte*) 53760 +(byte[$10]) DTV_PALETTE_DEFAULT +(const byte[$10]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte) 0, (byte) $f, (byte) $36, (byte) $be, (byte) $58, (byte) $db, (byte) $86, (byte) $ff, (byte) $29, (byte) $26, (byte) $3b, (byte) 5, (byte) 7, (byte) $df, (byte) $9a, (byte) $a } +(byte*) DTV_PLANEA_MODULO_HI +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = (byte*) 53305 +(byte*) DTV_PLANEA_MODULO_LO +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = (byte*) 53304 +(byte*) DTV_PLANEA_START_HI +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = (byte*) 53317 +(byte*) DTV_PLANEA_START_LO +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = (byte*) 53306 +(byte*) DTV_PLANEA_START_MI +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = (byte*) 53307 +(byte*) DTV_PLANEA_STEP +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = (byte*) 53318 +(byte*) DTV_PLANEB_MODULO_HI +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = (byte*) 53320 +(byte*) DTV_PLANEB_MODULO_LO +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = (byte*) 53319 +(byte*) DTV_PLANEB_START_HI +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = (byte*) 53323 +(byte*) DTV_PLANEB_START_LO +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = (byte*) 53321 +(byte*) DTV_PLANEB_START_MI +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = (byte*) 53322 +(byte*) DTV_PLANEB_STEP +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = (byte*) 53324 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) KEY_0 +(const byte) KEY_0#0 KEY_0 = (byte) $23 +(byte) KEY_1 +(const byte) KEY_1#0 KEY_1 = (byte) $38 +(byte) KEY_2 +(const byte) KEY_2#0 KEY_2 = (byte) $3b +(byte) KEY_3 +(const byte) KEY_3#0 KEY_3 = (byte) 8 +(byte) KEY_4 +(const byte) KEY_4#0 KEY_4 = (byte) $b +(byte) KEY_6 +(const byte) KEY_6#0 KEY_6 = (byte) $13 +(byte) KEY_7 +(const byte) KEY_7#0 KEY_7 = (byte) $18 +(byte) KEY_8 +(const byte) KEY_8#0 KEY_8 = (byte) $1b +(byte) KEY_A +(const byte) KEY_A#0 KEY_A = (byte) $a +(byte) KEY_B +(const byte) KEY_B#0 KEY_B = (byte) $1c +(byte) KEY_C +(const byte) KEY_C#0 KEY_C = (byte) $14 +(byte) KEY_D +(const byte) KEY_D#0 KEY_D = (byte) $12 +(byte) KEY_E +(const byte) KEY_E#0 KEY_E = (byte) $e +(byte) KEY_H +(const byte) KEY_H#0 KEY_H = (byte) $1d +(byte) KEY_L +(const byte) KEY_L#0 KEY_L = (byte) $2a +(byte) KEY_O +(const byte) KEY_O#0 KEY_O = (byte) $26 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(byte) KEY_U +(const byte) KEY_U#0 KEY_U = (byte) $1e +(byte) LIGHT_GREEN +(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte) $d +(byte[]) MENU_TEXT +(const byte[]) MENU_TEXT#0 MENU_TEXT = (string) "C64DTV Graphics Modes CCLHBME@ OHIIMCC@ LUNCMMM@----------------------------------------@1. Standard Char (V) 0000000@2. Extended Color Char (V) 0000001@3. Multicolor Char (V) 0000010@4. Standard Bitmap (V) 0000100@5. Multicolor Bitmap (V) 0000110@6. High Color Standard Char (H) 0001000@7. High Extended Color Char (H) 0001001@8. High Multicolor Char (H) 0001010@9. High Multicolor Bitmap (H) 0001110@a. Sixs Fred 2 (D) 0010111@b. Two Plane Bitmap (D) 0011101@c. Sixs Fred (2 Plane MC BM) (D) 0011111@d. 8bpp Pixel Cell (D) 0111011@e. Chunky 8bpp Bitmap (D) 1111011@----------------------------------------@ (V) vicII (H) vicII+hicol (D) c64dtv@@" +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_CHARROM +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte) $31 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte) VIC_BMM +(const byte) VIC_BMM#0 VIC_BMM = (byte) $20 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte*) VIC_CONTROL2 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = (byte*) 53270 +(byte) VIC_CSEL +(const byte) VIC_CSEL#0 VIC_CSEL = (byte) 8 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_ECM +(const byte) VIC_ECM#0 VIC_ECM = (byte) $40 +(byte) VIC_MCM +(const byte) VIC_MCM#0 VIC_MCM = (byte) $10 +(byte*) VIC_MEMORY +(const byte*) VIC_MEMORY#0 VIC_MEMORY = (byte*) 53272 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(void()) bitmap_clear() +(label) bitmap_clear::@1 +(label) bitmap_clear::@2 +(label) bitmap_clear::@3 +(label) bitmap_clear::@return +(byte*) bitmap_clear::bitmap +(word) bitmap_clear::bitmap#0 bitmap zp ZP_WORD:84 2.0 +(byte*) bitmap_clear::bitmap#1 bitmap zp ZP_WORD:84 420.59999999999997 +(byte*) bitmap_clear::bitmap#2 bitmap zp ZP_WORD:84 1552.0 +(byte*) bitmap_clear::bitmap#3 bitmap zp ZP_WORD:84 204.0 +(byte*~) bitmap_clear::bitmap#5 bitmap zp ZP_WORD:84 4.0 +(byte) bitmap_clear::x +(byte) bitmap_clear::x#1 reg byte x 1501.5 +(byte) bitmap_clear::x#2 reg byte x 667.3333333333334 +(byte) bitmap_clear::y +(byte) bitmap_clear::y#1 y zp ZP_BYTE:83 151.5 +(byte) bitmap_clear::y#4 y zp ZP_BYTE:83 33.666666666666664 +(void()) bitmap_init((byte*) bitmap_init::bitmap) +(byte~) bitmap_init::$0 reg byte a 202.0 +(byte~) bitmap_init::$10 $10 zp ZP_BYTE:125 50.5 +(byte~) bitmap_init::$7 reg byte a 202.0 +(byte~) bitmap_init::$8 reg byte a 202.0 +(byte~) bitmap_init::$9 reg byte a 202.0 +(label) bitmap_init::@1 +(label) bitmap_init::@2 +(label) bitmap_init::@3 +(label) bitmap_init::@4 +(label) bitmap_init::@5 +(label) bitmap_init::@6 +(label) bitmap_init::@return +(byte*) bitmap_init::bitmap +(byte) bitmap_init::bits +(byte) bitmap_init::bits#1 reg byte y 101.0 +(byte) bitmap_init::bits#3 reg byte y 60.599999999999994 +(byte) bitmap_init::bits#4 reg byte y 67.33333333333333 +(byte) bitmap_init::x +(byte) bitmap_init::x#1 reg byte x 151.5 +(byte) bitmap_init::x#2 reg byte x 67.33333333333333 +(byte) bitmap_init::y +(byte) bitmap_init::y#1 reg byte x 151.5 +(byte) bitmap_init::y#2 reg byte x 50.5 +(byte*) bitmap_init::yoffs +(byte*) bitmap_init::yoffs#1 yoffs zp ZP_WORD:86 202.0 +(byte*) bitmap_init::yoffs#2 yoffs zp ZP_WORD:86 63.125 +(byte*) bitmap_init::yoffs#4 yoffs zp ZP_WORD:86 101.0 +(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1) +(label) bitmap_line::@1 +(label) bitmap_line::@10 +(label) bitmap_line::@11 +(label) bitmap_line::@12 +(label) bitmap_line::@13 +(label) bitmap_line::@14 +(label) bitmap_line::@2 +(label) bitmap_line::@3 +(label) bitmap_line::@4 +(label) bitmap_line::@5 +(label) bitmap_line::@6 +(label) bitmap_line::@7 +(label) bitmap_line::@8 +(label) bitmap_line::@9 +(label) bitmap_line::@return +(byte) bitmap_line::x0 +(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:69 5.173913043478264 +(byte) bitmap_line::x1 +(byte) bitmap_line::x1#0 reg byte x 5.409090909090908 +(byte) bitmap_line::xd +(byte) bitmap_line::xd#1 xd zp ZP_BYTE:68 0.7 +(byte) bitmap_line::xd#2 xd zp ZP_BYTE:68 0.7 +(byte) bitmap_line::y0 +(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:71 5.952380952380948 +(byte) bitmap_line::y1 +(byte) bitmap_line::y1#0 y1 zp ZP_BYTE:74 6.249999999999996 +(byte) bitmap_line::yd +(byte) bitmap_line::yd#1 reg byte y 0.8888888888888888 +(byte) bitmap_line::yd#10 reg byte y 0.8888888888888888 +(byte) bitmap_line::yd#11 reg byte y 0.8888888888888888 +(byte) bitmap_line::yd#2 reg byte y 0.8888888888888888 +(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd) +(byte~) bitmap_line_xdyd::$6 reg byte x 2002.0 +(label) bitmap_line_xdyd::@1 +(label) bitmap_line_xdyd::@2 +(label) bitmap_line_xdyd::@3 +(label) bitmap_line_xdyd::@4 +(label) bitmap_line_xdyd::@return +(byte) bitmap_line_xdyd::e +(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:79 4.0 +(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:79 1334.6666666666667 +(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:79 2002.0 +(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:79 400.79999999999995 +(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:79 1001.0 +(byte) bitmap_line_xdyd::x +(byte) bitmap_line_xdyd::x#0 x zp ZP_BYTE:78 0.8 +(byte) bitmap_line_xdyd::x#1 x zp ZP_BYTE:78 0.8 +(byte) bitmap_line_xdyd::x#2 x zp ZP_BYTE:78 375.375 +(byte) bitmap_line_xdyd::x#3 x zp ZP_BYTE:78 751.25 +(byte) bitmap_line_xdyd::x#6 x zp ZP_BYTE:78 3.0 +(byte) bitmap_line_xdyd::x1 +(byte) bitmap_line_xdyd::x1#0 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyd::x1#6 x1 zp ZP_BYTE:69 71.78571428571429 +(byte) bitmap_line_xdyd::xd +(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:68 143.28571428571428 +(byte) bitmap_line_xdyd::y +(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:71 1001.0 +(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:71 572.2857142857142 +(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:71 3.0 +(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:71 1001.0 +(byte) bitmap_line_xdyd::yd +(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:77 4.0 +(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:77 4.0 +(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:77 71.92857142857143 +(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd) +(byte~) bitmap_line_xdyi::$6 reg byte x 2002.0 +(label) bitmap_line_xdyi::@1 +(label) bitmap_line_xdyi::@2 +(label) bitmap_line_xdyi::@3 +(label) bitmap_line_xdyi::@4 +(label) bitmap_line_xdyi::@return +(byte) bitmap_line_xdyi::e +(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:72 4.0 +(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:72 1334.6666666666667 +(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:72 2002.0 +(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:72 400.79999999999995 +(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:72 1001.0 +(byte) bitmap_line_xdyi::x +(byte) bitmap_line_xdyi::x#0 x zp ZP_BYTE:70 0.8 +(byte) bitmap_line_xdyi::x#1 x zp ZP_BYTE:70 0.8 +(byte) bitmap_line_xdyi::x#2 x zp ZP_BYTE:70 375.375 +(byte) bitmap_line_xdyi::x#3 x zp ZP_BYTE:70 751.25 +(byte) bitmap_line_xdyi::x#6 x zp ZP_BYTE:70 3.0 +(byte) bitmap_line_xdyi::x1 +(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:69 1.3333333333333333 +(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:69 71.78571428571429 +(byte) bitmap_line_xdyi::xd +(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:68 2.0 +(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:68 143.28571428571428 +(byte) bitmap_line_xdyi::y +(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:71 1.0 +(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:71 1001.0 +(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:71 572.2857142857142 +(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:71 3.0 +(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:71 1001.0 +(byte) bitmap_line_xdyi::yd +(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:67 4.0 +(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:67 4.0 +(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:67 71.92857142857143 +(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd) +(byte~) bitmap_line_ydxd::$6 reg byte a 2002.0 +(label) bitmap_line_ydxd::@1 +(label) bitmap_line_ydxd::@2 +(label) bitmap_line_ydxd::@3 +(label) bitmap_line_ydxd::@4 +(label) bitmap_line_ydxd::@return +(byte) bitmap_line_ydxd::e +(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:82 4.0 +(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:82 1334.6666666666667 +(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:82 2002.0 +(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:82 400.79999999999995 +(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:82 1001.0 +(byte) bitmap_line_ydxd::x +(byte) bitmap_line_ydxd::x#0 reg byte x 1.0 +(byte) bitmap_line_ydxd::x#1 reg byte x 1.0 +(byte) bitmap_line_ydxd::x#2 reg byte x 1001.0 +(byte) bitmap_line_ydxd::x#3 reg byte x 572.2857142857142 +(byte) bitmap_line_ydxd::x#5 reg byte x 3.0 +(byte) bitmap_line_ydxd::x#6 reg byte x 1001.0 +(byte) bitmap_line_ydxd::xd +(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:68 71.92857142857143 +(byte) bitmap_line_ydxd::y +(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:81 0.8 +(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:81 0.8 +(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:81 751.25 +(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:81 375.375 +(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:81 3.0 +(byte) bitmap_line_ydxd::y1 +(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:71 1.3333333333333333 +(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:71 1.3333333333333333 +(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:71 71.78571428571429 +(byte) bitmap_line_ydxd::yd +(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:80 2.0 +(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:80 2.0 +(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:80 143.28571428571428 +(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd) +(byte~) bitmap_line_ydxi::$6 reg byte a 2002.0 +(label) bitmap_line_ydxi::@1 +(label) bitmap_line_ydxi::@2 +(label) bitmap_line_ydxi::@3 +(label) bitmap_line_ydxi::@4 +(label) bitmap_line_ydxi::@return +(byte) bitmap_line_ydxi::e +(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:76 4.0 +(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:76 1334.6666666666667 +(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:76 2002.0 +(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:76 400.79999999999995 +(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:76 1001.0 +(byte) bitmap_line_ydxi::x +(byte) bitmap_line_ydxi::x#0 reg byte x 1.0 +(byte) bitmap_line_ydxi::x#1 reg byte x 1.0 +(byte) bitmap_line_ydxi::x#2 reg byte x 1001.0 +(byte) bitmap_line_ydxi::x#3 reg byte x 572.2857142857142 +(byte) bitmap_line_ydxi::x#5 reg byte x 3.0 +(byte) bitmap_line_ydxi::x#6 reg byte x 1001.0 +(byte) bitmap_line_ydxi::xd +(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:68 4.0 +(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:68 71.92857142857143 +(byte) bitmap_line_ydxi::y +(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:75 0.8 +(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:75 0.8 +(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:75 375.375 +(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:75 751.25 +(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:75 3.0 +(byte) bitmap_line_ydxi::y1 +(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:74 1.3333333333333333 +(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:74 1.3333333333333333 +(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:74 71.78571428571429 +(byte) bitmap_line_ydxi::yd +(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:73 2.0 +(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:73 2.0 +(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:73 143.28571428571428 +(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y) +(byte~) bitmap_plot::$1 reg byte a 4.0 +(label) bitmap_plot::@return +(byte*) bitmap_plot::plotter +(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:121 1.0 +(word) bitmap_plot::plotter_x +(word) bitmap_plot::plotter_x#0 plotter_x zp ZP_WORD:121 2.0 +(word) bitmap_plot::plotter_y +(word) bitmap_plot::plotter_y#0 plotter_y zp ZP_WORD:123 4.0 +(byte) bitmap_plot::x +(byte) bitmap_plot::x#0 reg byte x 1001.0 +(byte) bitmap_plot::x#1 reg byte x 1001.0 +(byte) bitmap_plot::x#2 reg byte x 1001.0 +(byte) bitmap_plot::x#3 reg byte x 1001.0 +(byte) bitmap_plot::x#4 reg byte x 1002.5 +(byte) bitmap_plot::y +(byte) bitmap_plot::y#0 reg byte y 2002.0 +(byte) bitmap_plot::y#1 reg byte y 2002.0 +(byte) bitmap_plot::y#2 reg byte y 2002.0 +(byte) bitmap_plot::y#3 reg byte y 2002.0 +(byte) bitmap_plot::y#4 reg byte y 2004.0 +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } +(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) +(label) dtvSetCpuBankSegment1::@return +(byte*) dtvSetCpuBankSegment1::cpuBank +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = (byte*) 255 +(byte) dtvSetCpuBankSegment1::cpuBankIdx +(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 2002.0 +(byte) dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 1003.0 +(byte) dtv_control +(byte) dtv_control#114 dtv_control zp ZP_BYTE:9 42.099999999999994 +(byte) dtv_control#144 dtv_control zp ZP_BYTE:9 2.0 +(byte) dtv_control#17 dtv_control zp ZP_BYTE:9 67.33333333333333 +(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) +(byte~) keyboard_key_pressed::$2 reg byte a 4.0 +(label) keyboard_key_pressed::@1 +(label) keyboard_key_pressed::@return +(byte) keyboard_key_pressed::colidx +(byte) keyboard_key_pressed::colidx#0 colidx zp ZP_BYTE:113 0.6666666666666666 +(byte) keyboard_key_pressed::key +(byte) keyboard_key_pressed::key#20 reg byte y 2.0 +(byte) keyboard_key_pressed::return +(byte) keyboard_key_pressed::return#0 reg byte a 419.1818181818182 +(byte) keyboard_key_pressed::return#10 reg byte a 202.0 +(byte) keyboard_key_pressed::return#11 reg byte a 202.0 +(byte) keyboard_key_pressed::return#12 reg byte a 202.0 +(byte) keyboard_key_pressed::return#13 reg byte a 202.0 +(byte) keyboard_key_pressed::return#14 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#15 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#16 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#17 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#18 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#19 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#2 reg byte a 202.0 +(byte) keyboard_key_pressed::return#20 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#21 reg byte a 2002.0 +(byte) keyboard_key_pressed::return#24 reg byte a 202.0 +(byte) keyboard_key_pressed::return#25 reg byte a 202.0 +(byte) keyboard_key_pressed::return#26 reg byte a 202.0 +(byte) keyboard_key_pressed::return#27 reg byte a 202.0 +(byte) keyboard_key_pressed::return#28 reg byte a 202.0 +(byte) keyboard_key_pressed::return#29 reg byte a 202.0 +(byte) keyboard_key_pressed::return#30 reg byte a 202.0 +(byte) keyboard_key_pressed::rowidx +(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333 +(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte y 4.0 +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(void()) main() +(label) main::@1 +(void()) menu() +(byte~) menu::$29 reg byte a 202.0 +(byte~) menu::$33 reg byte a 202.0 +(byte~) menu::$37 reg byte a 202.0 +(byte~) menu::$41 reg byte a 202.0 +(byte~) menu::$45 reg byte a 202.0 +(byte~) menu::$49 reg byte a 202.0 +(byte~) menu::$53 reg byte a 202.0 +(byte~) menu::$57 reg byte a 202.0 +(byte~) menu::$61 reg byte a 202.0 +(byte~) menu::$65 reg byte a 202.0 +(byte~) menu::$69 reg byte a 202.0 +(byte~) menu::$73 reg byte a 202.0 +(label) menu::@1 +(label) menu::@10 +(label) menu::@11 +(label) menu::@12 +(label) menu::@13 +(label) menu::@14 +(label) menu::@15 +(label) menu::@16 +(label) menu::@17 +(label) menu::@18 +(label) menu::@19 +(label) menu::@2 +(label) menu::@20 +(label) menu::@21 +(label) menu::@22 +(label) menu::@23 +(label) menu::@24 +(label) menu::@25 +(label) menu::@26 +(label) menu::@27 +(label) menu::@28 +(label) menu::@29 +(label) menu::@3 +(label) menu::@30 +(label) menu::@31 +(label) menu::@32 +(label) menu::@33 +(label) menu::@34 +(label) menu::@35 +(label) menu::@36 +(label) menu::@37 +(label) menu::@38 +(label) menu::@39 +(label) menu::@4 +(label) menu::@40 +(label) menu::@41 +(label) menu::@5 +(label) menu::@6 +(label) menu::@7 +(label) menu::@8 +(label) menu::@9 +(label) menu::@return +(byte*) menu::CHARSET +(const byte*) menu::CHARSET#0 CHARSET = (byte*) 38912 +(byte*) menu::SCREEN +(const byte*) menu::SCREEN#0 SCREEN = (byte*) 32768 +(byte*) menu::c +(byte*) menu::c#1 c zp ZP_WORD:2 151.5 +(byte*) menu::c#2 c zp ZP_WORD:2 151.5 +(byte) menu::i +(byte) menu::i#1 reg byte x 151.5 +(byte) menu::i#2 reg byte x 202.0 +(void()) mode_8bppchunkybmm() +(word~) mode_8bppchunkybmm::$27 $27 zp ZP_WORD:111 1001.0 +(label) mode_8bppchunkybmm::@1 +(label) mode_8bppchunkybmm::@10 +(label) mode_8bppchunkybmm::@2 +(label) mode_8bppchunkybmm::@3 +(label) mode_8bppchunkybmm::@4 +(label) mode_8bppchunkybmm::@5 +(label) mode_8bppchunkybmm::@6 +(label) mode_8bppchunkybmm::@7 +(label) mode_8bppchunkybmm::@8 +(label) mode_8bppchunkybmm::@9 +(label) mode_8bppchunkybmm::@return +(dword) mode_8bppchunkybmm::PLANEB +(const dword) mode_8bppchunkybmm::PLANEB#0 PLANEB = (dword) $20000 +(byte) mode_8bppchunkybmm::c +(byte) mode_8bppchunkybmm::c#0 reg byte a 2002.0 +(byte*) mode_8bppchunkybmm::gfxb +(byte*) mode_8bppchunkybmm::gfxb#1 gfxb zp ZP_WORD:7 420.59999999999997 +(byte*) mode_8bppchunkybmm::gfxb#3 gfxb zp ZP_WORD:7 1552.0 +(byte*) mode_8bppchunkybmm::gfxb#4 gfxb zp ZP_WORD:7 750.75 +(byte*) mode_8bppchunkybmm::gfxb#5 gfxb zp ZP_WORD:7 202.0 +(byte) mode_8bppchunkybmm::gfxbCpuBank +(byte) mode_8bppchunkybmm::gfxbCpuBank#2 reg byte x 2002.0 +(byte) mode_8bppchunkybmm::gfxbCpuBank#4 reg byte x 1026.25 +(byte) mode_8bppchunkybmm::gfxbCpuBank#7 reg byte x 202.0 +(byte) mode_8bppchunkybmm::gfxbCpuBank#8 reg byte x 344.8888888888889 +(byte) mode_8bppchunkybmm::i +(byte) mode_8bppchunkybmm::i#1 reg byte x 151.5 +(byte) mode_8bppchunkybmm::i#2 reg byte x 202.0 +(word) mode_8bppchunkybmm::x +(word) mode_8bppchunkybmm::x#1 x zp ZP_WORD:5 1501.5 +(word) mode_8bppchunkybmm::x#2 x zp ZP_WORD:5 300.29999999999995 +(byte) mode_8bppchunkybmm::y +(byte) mode_8bppchunkybmm::y#1 y zp ZP_BYTE:4 151.5 +(byte) mode_8bppchunkybmm::y#6 y zp ZP_BYTE:4 92.53846153846155 +(void()) mode_8bpppixelcell() +(byte~) mode_8bpppixelcell::$14 reg byte a 2002.0 +(byte~) mode_8bpppixelcell::$15 $15 zp ZP_BYTE:114 1001.0 +(byte~) mode_8bpppixelcell::$16 reg byte a 2002.0 +(byte~) mode_8bpppixelcell::$17 reg byte a 2002.0 +(byte~) mode_8bpppixelcell::$20 reg byte a 20002.0 +(label) mode_8bpppixelcell::@1 +(label) mode_8bpppixelcell::@10 +(label) mode_8bpppixelcell::@11 +(label) mode_8bpppixelcell::@12 +(label) mode_8bpppixelcell::@13 +(label) mode_8bpppixelcell::@2 +(label) mode_8bpppixelcell::@3 +(label) mode_8bpppixelcell::@4 +(label) mode_8bpppixelcell::@5 +(label) mode_8bpppixelcell::@6 +(label) mode_8bpppixelcell::@7 +(label) mode_8bpppixelcell::@8 +(label) mode_8bpppixelcell::@9 +(label) mode_8bpppixelcell::@return +(byte*) mode_8bpppixelcell::CHARGEN +(const byte*) mode_8bpppixelcell::CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) mode_8bpppixelcell::PLANEA +(const byte*) mode_8bpppixelcell::PLANEA#0 PLANEA = (byte*) 15360 +(byte*) mode_8bpppixelcell::PLANEB +(const byte*) mode_8bpppixelcell::PLANEB#0 PLANEB = (byte*) 16384 +(byte) mode_8bpppixelcell::ax +(byte) mode_8bpppixelcell::ax#1 reg byte x 1501.5 +(byte) mode_8bpppixelcell::ax#2 reg byte x 429.0 +(byte) mode_8bpppixelcell::ay +(byte) mode_8bpppixelcell::ay#1 ay zp ZP_BYTE:10 151.5 +(byte) mode_8bpppixelcell::ay#4 ay zp ZP_BYTE:10 120.29999999999998 +(byte) mode_8bpppixelcell::bits +(byte) mode_8bpppixelcell::bits#0 bits zp ZP_BYTE:17 1001.0 +(byte) mode_8bpppixelcell::bits#1 bits zp ZP_BYTE:17 5000.5 +(byte) mode_8bpppixelcell::bits#2 bits zp ZP_BYTE:17 4429.142857142857 +(byte) mode_8bpppixelcell::c +(byte) mode_8bpppixelcell::c#2 reg byte a 20002.0 +(byte~) mode_8bpppixelcell::c#3 reg byte a 20002.0 +(byte) mode_8bpppixelcell::ch +(byte) mode_8bpppixelcell::ch#1 ch zp ZP_BYTE:13 151.5 +(byte) mode_8bpppixelcell::ch#8 ch zp ZP_BYTE:13 11.882352941176471 +(byte*) mode_8bpppixelcell::chargen +(byte*) mode_8bpppixelcell::chargen#1 chargen zp ZP_WORD:14 131.4375 +(byte*) mode_8bpppixelcell::chargen#2 chargen zp ZP_WORD:14 1552.0 +(byte*) mode_8bpppixelcell::chargen#4 chargen zp ZP_WORD:14 202.0 +(byte) mode_8bpppixelcell::col +(byte) mode_8bpppixelcell::col#1 col zp ZP_BYTE:20 3014.857142857143 +(byte) mode_8bpppixelcell::col#2 col zp ZP_BYTE:20 3875.5 +(byte) mode_8bpppixelcell::col#5 col zp ZP_BYTE:20 701.0 +(byte) mode_8bpppixelcell::col#7 col zp ZP_BYTE:20 202.0 +(byte) mode_8bpppixelcell::cp +(byte) mode_8bpppixelcell::cp#1 reg byte x 15001.5 +(byte) mode_8bpppixelcell::cp#2 reg byte x 2222.4444444444443 +(byte) mode_8bpppixelcell::cr +(byte) mode_8bpppixelcell::cr#1 cr zp ZP_BYTE:16 1501.5 +(byte) mode_8bpppixelcell::cr#6 cr zp ZP_BYTE:16 143.0 +(byte*) mode_8bpppixelcell::gfxa +(byte*) mode_8bpppixelcell::gfxa#1 gfxa zp ZP_WORD:11 420.59999999999997 +(byte*) mode_8bpppixelcell::gfxa#2 gfxa zp ZP_WORD:11 517.3333333333334 +(byte*) mode_8bpppixelcell::gfxa#3 gfxa zp ZP_WORD:11 202.0 +(byte*) mode_8bpppixelcell::gfxb +(byte*) mode_8bpppixelcell::gfxb#1 gfxb zp ZP_WORD:18 2344.8888888888887 +(byte*) mode_8bpppixelcell::gfxb#2 gfxb zp ZP_WORD:18 5167.333333333333 +(byte*) mode_8bpppixelcell::gfxb#5 gfxb zp ZP_WORD:18 701.0 +(byte*) mode_8bpppixelcell::gfxb#7 gfxb zp ZP_WORD:18 202.0 +(byte) mode_8bpppixelcell::i +(byte) mode_8bpppixelcell::i#1 reg byte x 151.5 +(byte) mode_8bpppixelcell::i#2 reg byte x 202.0 +(void()) mode_ctrl() +(byte~) mode_ctrl::$1 reg byte a 2002.0 +(byte~) mode_ctrl::$12 reg byte a 2002.0 +(byte~) mode_ctrl::$16 reg byte a 2002.0 +(byte~) mode_ctrl::$20 reg byte a 2002.0 +(byte~) mode_ctrl::$24 reg byte a 2002.0 +(byte~) mode_ctrl::$28 reg byte a 2002.0 +(byte~) mode_ctrl::$4 reg byte a 2002.0 +(byte~) mode_ctrl::$8 reg byte a 2002.0 +(label) mode_ctrl::@1 +(label) mode_ctrl::@10 +(label) mode_ctrl::@11 +(label) mode_ctrl::@12 +(label) mode_ctrl::@13 +(label) mode_ctrl::@14 +(label) mode_ctrl::@15 +(label) mode_ctrl::@16 +(label) mode_ctrl::@17 +(label) mode_ctrl::@18 +(label) mode_ctrl::@19 +(label) mode_ctrl::@2 +(label) mode_ctrl::@20 +(label) mode_ctrl::@21 +(label) mode_ctrl::@22 +(label) mode_ctrl::@23 +(label) mode_ctrl::@24 +(label) mode_ctrl::@25 +(label) mode_ctrl::@26 +(label) mode_ctrl::@27 +(label) mode_ctrl::@3 +(label) mode_ctrl::@4 +(label) mode_ctrl::@5 +(label) mode_ctrl::@6 +(label) mode_ctrl::@7 +(label) mode_ctrl::@8 +(label) mode_ctrl::@9 +(label) mode_ctrl::@return +(byte) mode_ctrl::ctrl +(byte) mode_ctrl::ctrl#0 reg byte x 600.5999999999999 +(byte) mode_ctrl::ctrl#1 reg byte x 2002.0 +(byte) mode_ctrl::ctrl#10 reg byte x 800.8 +(byte) mode_ctrl::ctrl#11 reg byte x 800.8 +(byte) mode_ctrl::ctrl#12 reg byte x 800.8 +(byte) mode_ctrl::ctrl#13 reg byte x 800.8 +(byte) mode_ctrl::ctrl#14 reg byte x 576.25 +(byte) mode_ctrl::ctrl#17 reg byte x 800.8 +(byte) mode_ctrl::ctrl#2 reg byte x 2002.0 +(byte) mode_ctrl::ctrl#22 reg byte x 500.5 +(byte) mode_ctrl::ctrl#3 reg byte x 2002.0 +(byte) mode_ctrl::ctrl#4 reg byte x 2002.0 +(byte) mode_ctrl::ctrl#5 reg byte x 2002.0 +(byte) mode_ctrl::ctrl#6 reg byte x 2002.0 +(void()) mode_ecmchar() +(byte~) mode_ecmchar::$26 reg byte a 2002.0 +(byte~) mode_ecmchar::$27 reg byte a 2002.0 +(byte~) mode_ecmchar::$28 reg byte a 2002.0 +(byte~) mode_ecmchar::$29 $29 zp ZP_BYTE:127 1001.0 +(byte~) mode_ecmchar::$30 reg byte a 2002.0 +(byte~) mode_ecmchar::$31 reg byte a 2002.0 +(label) mode_ecmchar::@1 +(label) mode_ecmchar::@2 +(label) mode_ecmchar::@3 +(label) mode_ecmchar::@4 +(label) mode_ecmchar::@5 +(label) mode_ecmchar::@6 +(label) mode_ecmchar::@return +(byte*) mode_ecmchar::CHARSET +(const byte*) mode_ecmchar::CHARSET#0 CHARSET = (byte*) 36864 +(byte*) mode_ecmchar::COLORS +(const byte*) mode_ecmchar::COLORS#0 COLORS = (byte*) 55296 +(byte*) mode_ecmchar::SCREEN +(const byte*) mode_ecmchar::SCREEN#0 SCREEN = (byte*) 32768 +(byte*) mode_ecmchar::ch +(byte*) mode_ecmchar::ch#1 ch zp ZP_WORD:96 420.59999999999997 +(byte*) mode_ecmchar::ch#2 ch zp ZP_WORD:96 310.4 +(byte*) mode_ecmchar::ch#3 ch zp ZP_WORD:96 202.0 +(byte*) mode_ecmchar::col +(byte*) mode_ecmchar::col#1 col zp ZP_WORD:94 191.1818181818182 +(byte*) mode_ecmchar::col#2 col zp ZP_WORD:94 776.0 +(byte*) mode_ecmchar::col#3 col zp ZP_WORD:94 202.0 +(byte) mode_ecmchar::cx +(byte) mode_ecmchar::cx#1 reg byte x 1501.5 +(byte) mode_ecmchar::cx#2 reg byte x 364.0 +(byte) mode_ecmchar::cy +(byte) mode_ecmchar::cy#1 cy zp ZP_BYTE:93 151.5 +(byte) mode_ecmchar::cy#4 cy zp ZP_BYTE:93 157.42857142857144 +(byte) mode_ecmchar::i +(byte) mode_ecmchar::i#1 reg byte x 151.5 +(byte) mode_ecmchar::i#2 reg byte x 202.0 +(void()) mode_hicolecmchar() +(byte~) mode_hicolecmchar::$26 reg byte a 2002.0 +(byte~) mode_hicolecmchar::$27 $27 zp ZP_BYTE:118 1001.0 +(byte~) mode_hicolecmchar::$28 reg byte a 2002.0 +(label) mode_hicolecmchar::@1 +(label) mode_hicolecmchar::@2 +(label) mode_hicolecmchar::@3 +(label) mode_hicolecmchar::@4 +(label) mode_hicolecmchar::@5 +(label) mode_hicolecmchar::@6 +(label) mode_hicolecmchar::@return +(byte*) mode_hicolecmchar::CHARSET +(const byte*) mode_hicolecmchar::CHARSET#0 CHARSET = (byte*) 36864 +(byte*) mode_hicolecmchar::COLORS +(const byte*) mode_hicolecmchar::COLORS#0 COLORS = (byte*) 33792 +(byte*) mode_hicolecmchar::SCREEN +(const byte*) mode_hicolecmchar::SCREEN#0 SCREEN = (byte*) 32768 +(byte*) mode_hicolecmchar::ch +(byte*) mode_hicolecmchar::ch#1 ch zp ZP_WORD:56 420.59999999999997 +(byte*) mode_hicolecmchar::ch#2 ch zp ZP_WORD:56 388.0 +(byte*) mode_hicolecmchar::ch#3 ch zp ZP_WORD:56 202.0 +(byte*) mode_hicolecmchar::col +(byte*) mode_hicolecmchar::col#1 col zp ZP_WORD:54 300.42857142857144 +(byte*) mode_hicolecmchar::col#2 col zp ZP_WORD:54 517.3333333333334 +(byte*) mode_hicolecmchar::col#3 col zp ZP_WORD:54 202.0 +(byte) mode_hicolecmchar::cx +(byte) mode_hicolecmchar::cx#1 reg byte x 1501.5 +(byte) mode_hicolecmchar::cx#2 reg byte x 333.6666666666667 +(byte) mode_hicolecmchar::cy +(byte) mode_hicolecmchar::cy#1 cy zp ZP_BYTE:53 151.5 +(byte) mode_hicolecmchar::cy#4 cy zp ZP_BYTE:53 100.25000000000001 +(byte) mode_hicolecmchar::i +(byte) mode_hicolecmchar::i#1 reg byte x 151.5 +(byte) mode_hicolecmchar::i#2 reg byte x 202.0 +(byte) mode_hicolecmchar::v +(byte) mode_hicolecmchar::v#0 reg byte a 1001.0 +(void()) mode_hicolmcchar() +(byte~) mode_hicolmcchar::$26 reg byte a 2002.0 +(byte~) mode_hicolmcchar::$27 $27 zp ZP_BYTE:117 1001.0 +(byte~) mode_hicolmcchar::$28 reg byte a 2002.0 +(label) mode_hicolmcchar::@1 +(label) mode_hicolmcchar::@2 +(label) mode_hicolmcchar::@3 +(label) mode_hicolmcchar::@4 +(label) mode_hicolmcchar::@5 +(label) mode_hicolmcchar::@6 +(label) mode_hicolmcchar::@return +(byte*) mode_hicolmcchar::CHARSET +(const byte*) mode_hicolmcchar::CHARSET#0 CHARSET = (byte*) 36864 +(byte*) mode_hicolmcchar::COLORS +(const byte*) mode_hicolmcchar::COLORS#0 COLORS = (byte*) 33792 +(byte*) mode_hicolmcchar::SCREEN +(const byte*) mode_hicolmcchar::SCREEN#0 SCREEN = (byte*) 32768 +(byte*) mode_hicolmcchar::ch +(byte*) mode_hicolmcchar::ch#1 ch zp ZP_WORD:51 420.59999999999997 +(byte*) mode_hicolmcchar::ch#2 ch zp ZP_WORD:51 388.0 +(byte*) mode_hicolmcchar::ch#3 ch zp ZP_WORD:51 202.0 +(byte*) mode_hicolmcchar::col +(byte*) mode_hicolmcchar::col#1 col zp ZP_WORD:49 300.42857142857144 +(byte*) mode_hicolmcchar::col#2 col zp ZP_WORD:49 517.3333333333334 +(byte*) mode_hicolmcchar::col#3 col zp ZP_WORD:49 202.0 +(byte) mode_hicolmcchar::cx +(byte) mode_hicolmcchar::cx#1 reg byte x 1501.5 +(byte) mode_hicolmcchar::cx#2 reg byte x 333.6666666666667 +(byte) mode_hicolmcchar::cy +(byte) mode_hicolmcchar::cy#1 cy zp ZP_BYTE:48 151.5 +(byte) mode_hicolmcchar::cy#4 cy zp ZP_BYTE:48 100.25000000000001 +(byte) mode_hicolmcchar::i +(byte) mode_hicolmcchar::i#1 reg byte x 151.5 +(byte) mode_hicolmcchar::i#2 reg byte x 202.0 +(byte) mode_hicolmcchar::v +(byte) mode_hicolmcchar::v#0 reg byte a 1001.0 +(void()) mode_hicolstdchar() +(byte~) mode_hicolstdchar::$25 reg byte a 2002.0 +(byte~) mode_hicolstdchar::$26 $26 zp ZP_BYTE:119 1001.0 +(byte~) mode_hicolstdchar::$27 reg byte a 2002.0 +(label) mode_hicolstdchar::@1 +(label) mode_hicolstdchar::@2 +(label) mode_hicolstdchar::@3 +(label) mode_hicolstdchar::@4 +(label) mode_hicolstdchar::@5 +(label) mode_hicolstdchar::@6 +(label) mode_hicolstdchar::@return +(byte*) mode_hicolstdchar::CHARSET +(const byte*) mode_hicolstdchar::CHARSET#0 CHARSET = (byte*) 36864 +(byte*) mode_hicolstdchar::COLORS +(const byte*) mode_hicolstdchar::COLORS#0 COLORS = (byte*) 33792 +(byte*) mode_hicolstdchar::SCREEN +(const byte*) mode_hicolstdchar::SCREEN#0 SCREEN = (byte*) 32768 +(byte*) mode_hicolstdchar::ch +(byte*) mode_hicolstdchar::ch#1 ch zp ZP_WORD:61 420.59999999999997 +(byte*) mode_hicolstdchar::ch#2 ch zp ZP_WORD:61 388.0 +(byte*) mode_hicolstdchar::ch#3 ch zp ZP_WORD:61 202.0 +(byte*) mode_hicolstdchar::col +(byte*) mode_hicolstdchar::col#1 col zp ZP_WORD:59 300.42857142857144 +(byte*) mode_hicolstdchar::col#2 col zp ZP_WORD:59 517.3333333333334 +(byte*) mode_hicolstdchar::col#3 col zp ZP_WORD:59 202.0 +(byte) mode_hicolstdchar::cx +(byte) mode_hicolstdchar::cx#1 reg byte x 1501.5 +(byte) mode_hicolstdchar::cx#2 reg byte x 333.6666666666667 +(byte) mode_hicolstdchar::cy +(byte) mode_hicolstdchar::cy#1 cy zp ZP_BYTE:58 151.5 +(byte) mode_hicolstdchar::cy#4 cy zp ZP_BYTE:58 100.25000000000001 +(byte) mode_hicolstdchar::i +(byte) mode_hicolstdchar::i#1 reg byte x 151.5 +(byte) mode_hicolstdchar::i#2 reg byte x 202.0 +(byte) mode_hicolstdchar::v +(byte) mode_hicolstdchar::v#0 reg byte a 1001.0 +(void()) mode_mcchar() +(byte~) mode_mcchar::$26 reg byte a 2002.0 +(byte~) mode_mcchar::$27 reg byte a 2002.0 +(byte~) mode_mcchar::$28 reg byte a 2002.0 +(byte~) mode_mcchar::$29 $29 zp ZP_BYTE:126 1001.0 +(byte~) mode_mcchar::$30 reg byte a 2002.0 +(byte~) mode_mcchar::$31 reg byte a 2002.0 +(label) mode_mcchar::@1 +(label) mode_mcchar::@2 +(label) mode_mcchar::@3 +(label) mode_mcchar::@4 +(label) mode_mcchar::@5 +(label) mode_mcchar::@6 +(label) mode_mcchar::@return +(byte*) mode_mcchar::CHARSET +(const byte*) mode_mcchar::CHARSET#0 CHARSET = (byte*) 36864 +(byte*) mode_mcchar::COLORS +(const byte*) mode_mcchar::COLORS#0 COLORS = (byte*) 55296 +(byte*) mode_mcchar::SCREEN +(const byte*) mode_mcchar::SCREEN#0 SCREEN = (byte*) 32768 +(byte*) mode_mcchar::ch +(byte*) mode_mcchar::ch#1 ch zp ZP_WORD:91 420.59999999999997 +(byte*) mode_mcchar::ch#2 ch zp ZP_WORD:91 310.4 +(byte*) mode_mcchar::ch#3 ch zp ZP_WORD:91 202.0 +(byte*) mode_mcchar::col +(byte*) mode_mcchar::col#1 col zp ZP_WORD:89 191.1818181818182 +(byte*) mode_mcchar::col#2 col zp ZP_WORD:89 776.0 +(byte*) mode_mcchar::col#3 col zp ZP_WORD:89 202.0 +(byte) mode_mcchar::cx +(byte) mode_mcchar::cx#1 reg byte x 1501.5 +(byte) mode_mcchar::cx#2 reg byte x 364.0 +(byte) mode_mcchar::cy +(byte) mode_mcchar::cy#1 cy zp ZP_BYTE:88 151.5 +(byte) mode_mcchar::cy#4 cy zp ZP_BYTE:88 157.42857142857144 +(byte) mode_mcchar::i +(byte) mode_mcchar::i#1 reg byte x 151.5 +(byte) mode_mcchar::i#2 reg byte x 202.0 +(void()) mode_sixsfred() +(byte~) mode_sixsfred::$17 reg byte a 2002.0 +(byte~) mode_sixsfred::$18 reg byte a 2002.0 +(byte~) mode_sixsfred::$21 reg byte a 2002.0 +(label) mode_sixsfred::@1 +(label) mode_sixsfred::@10 +(label) mode_sixsfred::@11 +(label) mode_sixsfred::@12 +(label) mode_sixsfred::@2 +(label) mode_sixsfred::@3 +(label) mode_sixsfred::@4 +(label) mode_sixsfred::@5 +(label) mode_sixsfred::@6 +(label) mode_sixsfred::@7 +(label) mode_sixsfred::@8 +(label) mode_sixsfred::@9 +(label) mode_sixsfred::@return +(byte*) mode_sixsfred::COLORS +(const byte*) mode_sixsfred::COLORS#0 COLORS = (byte*) 32768 +(byte*) mode_sixsfred::PLANEA +(const byte*) mode_sixsfred::PLANEA#0 PLANEA = (byte*) 16384 +(byte*) mode_sixsfred::PLANEB +(const byte*) mode_sixsfred::PLANEB#0 PLANEB = (byte*) 24576 +(byte) mode_sixsfred::ax +(byte) mode_sixsfred::ax#1 reg byte x 1501.5 +(byte) mode_sixsfred::ax#2 reg byte x 400.4 +(byte) mode_sixsfred::ay +(byte) mode_sixsfred::ay#1 ay zp ZP_BYTE:24 151.5 +(byte) mode_sixsfred::ay#4 ay zp ZP_BYTE:24 150.375 +(byte) mode_sixsfred::bx +(byte) mode_sixsfred::bx#1 reg byte x 1501.5 +(byte) mode_sixsfred::bx#2 reg byte x 667.3333333333334 +(byte) mode_sixsfred::by +(byte) mode_sixsfred::by#1 by zp ZP_BYTE:27 151.5 +(byte) mode_sixsfred::by#4 by zp ZP_BYTE:27 33.666666666666664 +(byte*) mode_sixsfred::col +(byte*) mode_sixsfred::col#1 col zp ZP_WORD:22 420.59999999999997 +(byte*) mode_sixsfred::col#2 col zp ZP_WORD:22 776.0 +(byte*) mode_sixsfred::col#3 col zp ZP_WORD:22 202.0 +(byte) mode_sixsfred::cx +(byte) mode_sixsfred::cx#1 reg byte x 1501.5 +(byte) mode_sixsfred::cx#2 reg byte x 600.5999999999999 +(byte) mode_sixsfred::cy +(byte) mode_sixsfred::cy#1 cy zp ZP_BYTE:21 151.5 +(byte) mode_sixsfred::cy#4 cy zp ZP_BYTE:21 150.375 +(byte*) mode_sixsfred::gfxa +(byte*) mode_sixsfred::gfxa#1 gfxa zp ZP_WORD:25 420.59999999999997 +(byte*) mode_sixsfred::gfxa#2 gfxa zp ZP_WORD:25 776.0 +(byte*) mode_sixsfred::gfxa#3 gfxa zp ZP_WORD:25 202.0 +(byte*) mode_sixsfred::gfxb +(byte*) mode_sixsfred::gfxb#1 gfxb zp ZP_WORD:28 420.59999999999997 +(byte*) mode_sixsfred::gfxb#2 gfxb zp ZP_WORD:28 1552.0 +(byte*) mode_sixsfred::gfxb#3 gfxb zp ZP_WORD:28 202.0 +(byte) mode_sixsfred::i +(byte) mode_sixsfred::i#1 reg byte x 151.5 +(byte) mode_sixsfred::i#2 reg byte x 202.0 +(byte) mode_sixsfred::row +(byte) mode_sixsfred::row#0 reg byte a 2002.0 +(byte[]) mode_sixsfred::row_bitmask +(const byte[]) mode_sixsfred::row_bitmask#0 row_bitmask = { (byte) 0, (byte) $55, (byte) $aa, (byte) $ff } +(void()) mode_sixsfred2() +(byte~) mode_sixsfred2::$15 reg byte a 2002.0 +(byte~) mode_sixsfred2::$16 $16 zp ZP_BYTE:116 1001.0 +(byte~) mode_sixsfred2::$17 reg byte a 2002.0 +(byte~) mode_sixsfred2::$18 reg byte a 2002.0 +(byte~) mode_sixsfred2::$21 reg byte a 2002.0 +(label) mode_sixsfred2::@1 +(label) mode_sixsfred2::@10 +(label) mode_sixsfred2::@11 +(label) mode_sixsfred2::@12 +(label) mode_sixsfred2::@2 +(label) mode_sixsfred2::@3 +(label) mode_sixsfred2::@4 +(label) mode_sixsfred2::@5 +(label) mode_sixsfred2::@6 +(label) mode_sixsfred2::@7 +(label) mode_sixsfred2::@8 +(label) mode_sixsfred2::@9 +(label) mode_sixsfred2::@return +(byte*) mode_sixsfred2::COLORS +(const byte*) mode_sixsfred2::COLORS#0 COLORS = (byte*) 32768 +(byte*) mode_sixsfred2::PLANEA +(const byte*) mode_sixsfred2::PLANEA#0 PLANEA = (byte*) 16384 +(byte*) mode_sixsfred2::PLANEB +(const byte*) mode_sixsfred2::PLANEB#0 PLANEB = (byte*) 24576 +(byte) mode_sixsfred2::ax +(byte) mode_sixsfred2::ax#1 reg byte x 1501.5 +(byte) mode_sixsfred2::ax#2 reg byte x 400.4 +(byte) mode_sixsfred2::ay +(byte) mode_sixsfred2::ay#1 ay zp ZP_BYTE:42 151.5 +(byte) mode_sixsfred2::ay#4 ay zp ZP_BYTE:42 150.375 +(byte) mode_sixsfred2::bx +(byte) mode_sixsfred2::bx#1 reg byte x 1501.5 +(byte) mode_sixsfred2::bx#2 reg byte x 667.3333333333334 +(byte) mode_sixsfred2::by +(byte) mode_sixsfred2::by#1 by zp ZP_BYTE:45 151.5 +(byte) mode_sixsfred2::by#4 by zp ZP_BYTE:45 33.666666666666664 +(byte*) mode_sixsfred2::col +(byte*) mode_sixsfred2::col#1 col zp ZP_WORD:40 420.59999999999997 +(byte*) mode_sixsfred2::col#2 col zp ZP_WORD:40 517.3333333333334 +(byte*) mode_sixsfred2::col#3 col zp ZP_WORD:40 202.0 +(byte) mode_sixsfred2::cx +(byte) mode_sixsfred2::cx#1 reg byte x 1501.5 +(byte) mode_sixsfred2::cx#2 reg byte x 429.0 +(byte) mode_sixsfred2::cy +(byte) mode_sixsfred2::cy#1 cy zp ZP_BYTE:39 151.5 +(byte) mode_sixsfred2::cy#4 cy zp ZP_BYTE:39 120.29999999999998 +(byte*) mode_sixsfred2::gfxa +(byte*) mode_sixsfred2::gfxa#1 gfxa zp ZP_WORD:43 420.59999999999997 +(byte*) mode_sixsfred2::gfxa#2 gfxa zp ZP_WORD:43 776.0 +(byte*) mode_sixsfred2::gfxa#3 gfxa zp ZP_WORD:43 202.0 +(byte*) mode_sixsfred2::gfxb +(byte*) mode_sixsfred2::gfxb#1 gfxb zp ZP_WORD:46 420.59999999999997 +(byte*) mode_sixsfred2::gfxb#2 gfxb zp ZP_WORD:46 1552.0 +(byte*) mode_sixsfred2::gfxb#3 gfxb zp ZP_WORD:46 202.0 +(byte) mode_sixsfred2::i +(byte) mode_sixsfred2::i#1 reg byte x 151.5 +(byte) mode_sixsfred2::i#2 reg byte x 202.0 +(byte) mode_sixsfred2::row +(byte) mode_sixsfred2::row#0 reg byte a 2002.0 +(byte[]) mode_sixsfred2::row_bitmask +(const byte[]) mode_sixsfred2::row_bitmask#0 row_bitmask = { (byte) 0, (byte) $55, (byte) $aa, (byte) $ff } +(void()) mode_stdbitmap() +(byte~) mode_stdbitmap::$22 reg byte a 2002.0 +(byte~) mode_stdbitmap::$25 reg byte a 2002.0 +(byte~) mode_stdbitmap::$26 reg byte a 2002.0 +(label) mode_stdbitmap::@1 +(label) mode_stdbitmap::@10 +(label) mode_stdbitmap::@2 +(label) mode_stdbitmap::@3 +(label) mode_stdbitmap::@4 +(label) mode_stdbitmap::@5 +(label) mode_stdbitmap::@6 +(label) mode_stdbitmap::@7 +(label) mode_stdbitmap::@8 +(label) mode_stdbitmap::@9 +(label) mode_stdbitmap::@return +(byte*) mode_stdbitmap::BITMAP +(const byte*) mode_stdbitmap::BITMAP#0 BITMAP = (byte*) 24576 +(byte*) mode_stdbitmap::SCREEN +(const byte*) mode_stdbitmap::SCREEN#0 SCREEN = (byte*) 16384 +(byte*) mode_stdbitmap::ch +(byte*) mode_stdbitmap::ch#1 ch zp ZP_WORD:64 420.59999999999997 +(byte*) mode_stdbitmap::ch#2 ch zp ZP_WORD:64 443.42857142857144 +(byte*) mode_stdbitmap::ch#3 ch zp ZP_WORD:64 202.0 +(byte) mode_stdbitmap::col +(byte) mode_stdbitmap::col#0 reg byte y 1501.5 +(byte) mode_stdbitmap::col2 +(byte) mode_stdbitmap::col2#0 col2 zp ZP_BYTE:120 1001.0 +(byte) mode_stdbitmap::cx +(byte) mode_stdbitmap::cx#1 reg byte x 1501.5 +(byte) mode_stdbitmap::cx#2 reg byte x 375.375 +(byte) mode_stdbitmap::cy +(byte) mode_stdbitmap::cy#1 cy zp ZP_BYTE:63 151.5 +(byte) mode_stdbitmap::cy#4 cy zp ZP_BYTE:63 109.36363636363637 +(byte) mode_stdbitmap::i +(byte) mode_stdbitmap::i#1 reg byte x 151.5 +(byte) mode_stdbitmap::i#2 reg byte x 202.0 +(byte) mode_stdbitmap::l +(byte) mode_stdbitmap::l#1 l zp ZP_BYTE:66 151.5 +(byte) mode_stdbitmap::l#2 l zp ZP_BYTE:66 100.99999999999999 +(byte) mode_stdbitmap::lines_cnt +(const byte) mode_stdbitmap::lines_cnt#0 lines_cnt = (byte) 9 +(byte[]) mode_stdbitmap::lines_x +(const byte[]) mode_stdbitmap::lines_x#0 lines_x = { (byte) 0, (byte) $ff, (byte) $ff, (byte) 0, (byte) 0, (byte) $80, (byte) $ff, (byte) $80, (byte) 0, (byte) $80 } +(byte[]) mode_stdbitmap::lines_y +(const byte[]) mode_stdbitmap::lines_y#0 lines_y = { (byte) 0, (byte) 0, (byte) $c7, (byte) $c7, (byte) 0, (byte) 0, (byte) $64, (byte) $c7, (byte) $64, (byte) 0 } +(void()) mode_stdchar() +(byte~) mode_stdchar::$25 reg byte a 2002.0 +(byte~) mode_stdchar::$26 reg byte a 2002.0 +(byte~) mode_stdchar::$27 reg byte a 2002.0 +(byte~) mode_stdchar::$28 $28 zp ZP_BYTE:128 1001.0 +(byte~) mode_stdchar::$29 reg byte a 2002.0 +(byte~) mode_stdchar::$30 reg byte a 2002.0 +(label) mode_stdchar::@1 +(label) mode_stdchar::@2 +(label) mode_stdchar::@3 +(label) mode_stdchar::@4 +(label) mode_stdchar::@5 +(label) mode_stdchar::@6 +(label) mode_stdchar::@return +(byte*) mode_stdchar::CHARSET +(const byte*) mode_stdchar::CHARSET#0 CHARSET = (byte*) 36864 +(byte*) mode_stdchar::COLORS +(const byte*) mode_stdchar::COLORS#0 COLORS = (byte*) 55296 +(byte*) mode_stdchar::SCREEN +(const byte*) mode_stdchar::SCREEN#0 SCREEN = (byte*) 32768 +(byte*) mode_stdchar::ch +(byte*) mode_stdchar::ch#1 ch zp ZP_WORD:101 420.59999999999997 +(byte*) mode_stdchar::ch#2 ch zp ZP_WORD:101 310.4 +(byte*) mode_stdchar::ch#3 ch zp ZP_WORD:101 202.0 +(byte*) mode_stdchar::col +(byte*) mode_stdchar::col#1 col zp ZP_WORD:99 191.1818181818182 +(byte*) mode_stdchar::col#2 col zp ZP_WORD:99 776.0 +(byte*) mode_stdchar::col#3 col zp ZP_WORD:99 202.0 +(byte) mode_stdchar::cx +(byte) mode_stdchar::cx#1 reg byte x 1501.5 +(byte) mode_stdchar::cx#2 reg byte x 364.0 +(byte) mode_stdchar::cy +(byte) mode_stdchar::cy#1 cy zp ZP_BYTE:98 151.5 +(byte) mode_stdchar::cy#4 cy zp ZP_BYTE:98 157.42857142857144 +(byte) mode_stdchar::i +(byte) mode_stdchar::i#1 reg byte x 151.5 +(byte) mode_stdchar::i#2 reg byte x 202.0 +(void()) mode_twoplanebitmap() +(byte~) mode_twoplanebitmap::$16 reg byte a 2002.0 +(byte~) mode_twoplanebitmap::$17 $17 zp ZP_BYTE:115 1001.0 +(byte~) mode_twoplanebitmap::$18 reg byte a 2002.0 +(byte~) mode_twoplanebitmap::$19 reg byte a 2002.0 +(byte~) mode_twoplanebitmap::$22 reg byte a 2002.0 +(label) mode_twoplanebitmap::@1 +(label) mode_twoplanebitmap::@10 +(label) mode_twoplanebitmap::@11 +(label) mode_twoplanebitmap::@12 +(label) mode_twoplanebitmap::@13 +(label) mode_twoplanebitmap::@14 +(label) mode_twoplanebitmap::@15 +(label) mode_twoplanebitmap::@2 +(label) mode_twoplanebitmap::@3 +(label) mode_twoplanebitmap::@4 +(label) mode_twoplanebitmap::@5 +(label) mode_twoplanebitmap::@6 +(label) mode_twoplanebitmap::@7 +(label) mode_twoplanebitmap::@8 +(label) mode_twoplanebitmap::@9 +(label) mode_twoplanebitmap::@return +(byte*) mode_twoplanebitmap::COLORS +(const byte*) mode_twoplanebitmap::COLORS#0 COLORS = (byte*) 32768 +(byte*) mode_twoplanebitmap::PLANEA +(const byte*) mode_twoplanebitmap::PLANEA#0 PLANEA = (byte*) 16384 +(byte*) mode_twoplanebitmap::PLANEB +(const byte*) mode_twoplanebitmap::PLANEB#0 PLANEB = (byte*) 24576 +(byte) mode_twoplanebitmap::ax +(byte) mode_twoplanebitmap::ax#1 reg byte x 1501.5 +(byte) mode_twoplanebitmap::ax#2 reg byte x 250.25 +(byte) mode_twoplanebitmap::ay +(byte) mode_twoplanebitmap::ay#1 ay zp ZP_BYTE:33 151.5 +(byte) mode_twoplanebitmap::ay#5 ay zp ZP_BYTE:33 109.36363636363637 +(byte) mode_twoplanebitmap::bx +(byte) mode_twoplanebitmap::bx#1 reg byte x 1501.5 +(byte) mode_twoplanebitmap::bx#2 reg byte x 667.3333333333334 +(byte) mode_twoplanebitmap::by +(byte) mode_twoplanebitmap::by#1 by zp ZP_BYTE:36 151.5 +(byte) mode_twoplanebitmap::by#4 by zp ZP_BYTE:36 33.666666666666664 +(byte*) mode_twoplanebitmap::col +(byte*) mode_twoplanebitmap::col#1 col zp ZP_WORD:31 420.59999999999997 +(byte*) mode_twoplanebitmap::col#2 col zp ZP_WORD:31 517.3333333333334 +(byte*) mode_twoplanebitmap::col#3 col zp ZP_WORD:31 202.0 +(byte) mode_twoplanebitmap::cx +(byte) mode_twoplanebitmap::cx#1 reg byte x 1501.5 +(byte) mode_twoplanebitmap::cx#2 reg byte x 429.0 +(byte) mode_twoplanebitmap::cy +(byte) mode_twoplanebitmap::cy#1 cy zp ZP_BYTE:30 151.5 +(byte) mode_twoplanebitmap::cy#4 cy zp ZP_BYTE:30 120.29999999999998 +(byte*) mode_twoplanebitmap::gfxa +(byte*) mode_twoplanebitmap::gfxa#1 gfxa zp ZP_WORD:34 2002.0 +(byte*) mode_twoplanebitmap::gfxa#2 gfxa zp ZP_WORD:34 2002.0 +(byte*) mode_twoplanebitmap::gfxa#3 gfxa zp ZP_WORD:34 1021.2 +(byte*) mode_twoplanebitmap::gfxa#6 gfxa zp ZP_WORD:34 620.8 +(byte*) mode_twoplanebitmap::gfxa#7 gfxa zp ZP_WORD:34 202.0 +(byte*) mode_twoplanebitmap::gfxb +(byte*) mode_twoplanebitmap::gfxb#1 gfxb zp ZP_WORD:37 420.59999999999997 +(byte*) mode_twoplanebitmap::gfxb#2 gfxb zp ZP_WORD:37 1552.0 +(byte*) mode_twoplanebitmap::gfxb#3 gfxb zp ZP_WORD:37 202.0 +(byte) mode_twoplanebitmap::i +(byte) mode_twoplanebitmap::i#1 reg byte x 151.5 +(byte) mode_twoplanebitmap::i#2 reg byte x 202.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:105 2002.0 +(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:105 821.0 +(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:105 101.0 +(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:105 572.0 +(byte*~) print_char_cursor#99 print_char_cursor zp ZP_WORD:105 202.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:109 151.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:109 151.5 +(byte*) print_line_cursor +(byte*) print_line_cursor#17 print_line_cursor zp ZP_WORD:107 8.583333333333332 +(byte*) print_line_cursor#18 print_line_cursor zp ZP_WORD:107 2004.0 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:107 641.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_set_screen((byte*) print_set_screen::screen) +(label) print_set_screen::@return +(byte*) print_set_screen::screen +(void()) print_str_lines((byte*) print_str_lines::str) +(label) print_str_lines::@1 +(label) print_str_lines::@2 +(label) print_str_lines::@3 +(label) print_str_lines::@4 +(label) print_str_lines::@5 +(label) print_str_lines::@6 +(label) print_str_lines::@return +(byte) print_str_lines::ch +(byte) print_str_lines::ch#0 reg byte a 667.3333333333334 +(byte*) print_str_lines::str +(byte*) print_str_lines::str#0 str zp ZP_WORD:103 233.66666666666669 +(byte*) print_str_lines::str#2 str zp ZP_WORD:103 151.5 +(byte*) print_str_lines::str#3 str zp ZP_WORD:103 1552.0 + +reg byte x [ menu::i#2 menu::i#1 ] +zp ZP_WORD:2 [ menu::c#2 menu::c#1 ] +reg byte x [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] +zp ZP_BYTE:4 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] +zp ZP_WORD:5 [ mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::x#1 ] +reg byte x [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] +zp ZP_WORD:7 [ mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 ] +zp ZP_BYTE:9 [ dtv_control#114 dtv_control#144 dtv_control#17 ] +reg byte x [ mode_ctrl::ctrl#14 mode_ctrl::ctrl#22 mode_ctrl::ctrl#6 mode_ctrl::ctrl#13 mode_ctrl::ctrl#5 mode_ctrl::ctrl#12 mode_ctrl::ctrl#4 mode_ctrl::ctrl#11 mode_ctrl::ctrl#3 mode_ctrl::ctrl#10 mode_ctrl::ctrl#2 mode_ctrl::ctrl#17 mode_ctrl::ctrl#1 mode_ctrl::ctrl#0 ] +reg byte y [ keyboard_key_pressed::key#20 ] +reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ] +reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] +zp ZP_BYTE:10 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] +reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] +zp ZP_WORD:11 [ mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::gfxa#1 ] +zp ZP_BYTE:13 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ] +zp ZP_WORD:14 [ mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 ] +zp ZP_BYTE:16 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] +zp ZP_BYTE:17 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#1 mode_8bpppixelcell::bits#0 ] +zp ZP_WORD:18 [ mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::gfxb#7 mode_8bpppixelcell::gfxb#1 ] +zp ZP_BYTE:20 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] +reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] +reg byte a [ mode_8bpppixelcell::c#2 mode_8bpppixelcell::c#3 ] +reg byte x [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] +zp ZP_BYTE:21 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] +reg byte x [ mode_sixsfred::cx#2 mode_sixsfred::cx#1 ] +zp ZP_WORD:22 [ mode_sixsfred::col#2 mode_sixsfred::col#3 mode_sixsfred::col#1 ] +zp ZP_BYTE:24 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] +zp ZP_WORD:25 [ mode_sixsfred::gfxa#2 mode_sixsfred::gfxa#3 mode_sixsfred::gfxa#1 ] +reg byte x [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] +zp ZP_BYTE:27 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] +zp ZP_WORD:28 [ mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 ] +reg byte x [ mode_sixsfred::bx#2 mode_sixsfred::bx#1 ] +reg byte x [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] +zp ZP_BYTE:30 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] +reg byte x [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] +zp ZP_WORD:31 [ mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 ] +zp ZP_BYTE:33 [ mode_twoplanebitmap::ay#5 mode_twoplanebitmap::ay#1 ] +zp ZP_WORD:34 [ mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 ] +reg byte x [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] +zp ZP_BYTE:36 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] +zp ZP_WORD:37 [ mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 ] +reg byte x [ mode_twoplanebitmap::bx#2 mode_twoplanebitmap::bx#1 ] +reg byte x [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] +zp ZP_BYTE:39 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] +reg byte x [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] +zp ZP_WORD:40 [ mode_sixsfred2::col#2 mode_sixsfred2::col#3 mode_sixsfred2::col#1 ] +zp ZP_BYTE:42 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] +zp ZP_WORD:43 [ mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 ] +reg byte x [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] +zp ZP_BYTE:45 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] +zp ZP_WORD:46 [ mode_sixsfred2::gfxb#2 mode_sixsfred2::gfxb#3 mode_sixsfred2::gfxb#1 ] +reg byte x [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] +reg byte x [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] +zp ZP_BYTE:48 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] +reg byte x [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] +zp ZP_WORD:49 [ mode_hicolmcchar::col#2 mode_hicolmcchar::col#3 mode_hicolmcchar::col#1 ] +zp ZP_WORD:51 [ mode_hicolmcchar::ch#2 mode_hicolmcchar::ch#3 mode_hicolmcchar::ch#1 ] +reg byte x [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] +zp ZP_BYTE:53 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] +reg byte x [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] +zp ZP_WORD:54 [ mode_hicolecmchar::col#2 mode_hicolecmchar::col#3 mode_hicolecmchar::col#1 ] +zp ZP_WORD:56 [ mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 ] +reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] +zp ZP_BYTE:58 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] +reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] +zp ZP_WORD:59 [ mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 ] +zp ZP_WORD:61 [ mode_hicolstdchar::ch#2 mode_hicolstdchar::ch#3 mode_hicolstdchar::ch#1 ] +reg byte x [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] +zp ZP_BYTE:63 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] +reg byte x [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] +zp ZP_WORD:64 [ mode_stdbitmap::ch#2 mode_stdbitmap::ch#3 mode_stdbitmap::ch#1 ] +zp ZP_BYTE:66 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ] +zp ZP_BYTE:67 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 ] +zp ZP_BYTE:68 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line::xd#2 bitmap_line::xd#1 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] +zp ZP_BYTE:69 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 ] +zp ZP_BYTE:70 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 ] +zp ZP_BYTE:71 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +zp ZP_BYTE:72 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] +reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] +reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] +zp ZP_BYTE:73 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 ] +zp ZP_BYTE:74 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line::y1#0 ] +reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] +zp ZP_BYTE:75 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 ] +zp ZP_BYTE:76 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] +zp ZP_BYTE:77 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 ] +zp ZP_BYTE:78 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 ] +zp ZP_BYTE:79 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] +zp ZP_BYTE:80 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] +reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] +zp ZP_BYTE:81 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] +zp ZP_BYTE:82 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] +zp ZP_BYTE:83 [ bitmap_clear::y#4 bitmap_clear::y#1 ] +zp ZP_WORD:84 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 ] +reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] +reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] +reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] +reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +zp ZP_WORD:86 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] +reg byte x [ mode_mcchar::i#2 mode_mcchar::i#1 ] +zp ZP_BYTE:88 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] +reg byte x [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] +zp ZP_WORD:89 [ mode_mcchar::col#2 mode_mcchar::col#3 mode_mcchar::col#1 ] +zp ZP_WORD:91 [ mode_mcchar::ch#2 mode_mcchar::ch#3 mode_mcchar::ch#1 ] +reg byte x [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] +zp ZP_BYTE:93 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] +reg byte x [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] +zp ZP_WORD:94 [ mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 ] +zp ZP_WORD:96 [ mode_ecmchar::ch#2 mode_ecmchar::ch#3 mode_ecmchar::ch#1 ] +reg byte x [ mode_stdchar::i#2 mode_stdchar::i#1 ] +zp ZP_BYTE:98 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] +reg byte x [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] +zp ZP_WORD:99 [ mode_stdchar::col#2 mode_stdchar::col#3 mode_stdchar::col#1 ] +zp ZP_WORD:101 [ mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 ] +zp ZP_WORD:103 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] +zp ZP_WORD:105 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#99 print_char_cursor#32 print_char_cursor#1 ] +zp ZP_WORD:107 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] +zp ZP_WORD:109 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ keyboard_key_pressed::return#2 ] +reg byte a [ menu::$29 ] +reg byte a [ keyboard_key_pressed::return#24 ] +reg byte a [ menu::$33 ] +reg byte a [ keyboard_key_pressed::return#25 ] +reg byte a [ menu::$37 ] +reg byte a [ keyboard_key_pressed::return#26 ] +reg byte a [ menu::$41 ] +reg byte a [ keyboard_key_pressed::return#27 ] +reg byte a [ menu::$45 ] +reg byte a [ keyboard_key_pressed::return#28 ] +reg byte a [ menu::$49 ] +reg byte a [ keyboard_key_pressed::return#29 ] +reg byte a [ menu::$53 ] +reg byte a [ keyboard_key_pressed::return#30 ] +reg byte a [ menu::$57 ] +reg byte a [ keyboard_key_pressed::return#10 ] +reg byte a [ menu::$61 ] +reg byte a [ keyboard_key_pressed::return#11 ] +reg byte a [ menu::$65 ] +reg byte a [ keyboard_key_pressed::return#12 ] +reg byte a [ menu::$69 ] +reg byte a [ keyboard_key_pressed::return#13 ] +reg byte a [ menu::$73 ] +zp ZP_WORD:111 [ mode_8bppchunkybmm::$27 ] +reg byte a [ mode_8bppchunkybmm::c#0 ] +reg byte a [ keyboard_key_pressed::return#14 ] +reg byte a [ mode_ctrl::$1 ] +reg byte a [ keyboard_key_pressed::return#15 ] +reg byte a [ mode_ctrl::$4 ] +reg byte a [ keyboard_key_pressed::return#16 ] +reg byte a [ mode_ctrl::$8 ] +reg byte a [ keyboard_key_pressed::return#17 ] +reg byte a [ mode_ctrl::$12 ] +reg byte a [ keyboard_key_pressed::return#18 ] +reg byte a [ mode_ctrl::$16 ] +reg byte a [ keyboard_key_pressed::return#19 ] +reg byte a [ mode_ctrl::$20 ] +reg byte a [ keyboard_key_pressed::return#20 ] +reg byte a [ mode_ctrl::$24 ] +reg byte a [ keyboard_key_pressed::return#21 ] +reg byte a [ mode_ctrl::$28 ] +zp ZP_BYTE:113 [ keyboard_key_pressed::colidx#0 ] +reg byte a [ keyboard_key_pressed::rowidx#0 ] +reg byte y [ keyboard_matrix_read::rowid#0 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_key_pressed::$2 ] +reg byte a [ keyboard_key_pressed::return#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ mode_8bpppixelcell::$14 ] +zp ZP_BYTE:114 [ mode_8bpppixelcell::$15 ] +reg byte a [ mode_8bpppixelcell::$16 ] +reg byte a [ mode_8bpppixelcell::$17 ] +reg byte a [ mode_8bpppixelcell::$20 ] +reg byte a [ mode_sixsfred::$17 ] +reg byte a [ mode_sixsfred::$18 ] +reg byte a [ mode_sixsfred::$21 ] +reg byte a [ mode_sixsfred::row#0 ] +reg byte a [ mode_twoplanebitmap::$16 ] +zp ZP_BYTE:115 [ mode_twoplanebitmap::$17 ] +reg byte a [ mode_twoplanebitmap::$18 ] +reg byte a [ mode_twoplanebitmap::$19 ] +reg byte a [ mode_twoplanebitmap::$22 ] +reg byte a [ mode_sixsfred2::$15 ] +zp ZP_BYTE:116 [ mode_sixsfred2::$16 ] +reg byte a [ mode_sixsfred2::$17 ] +reg byte a [ mode_sixsfred2::$18 ] +reg byte a [ mode_sixsfred2::$21 ] +reg byte a [ mode_sixsfred2::row#0 ] +reg byte a [ mode_hicolmcchar::$26 ] +zp ZP_BYTE:117 [ mode_hicolmcchar::$27 ] +reg byte a [ mode_hicolmcchar::$28 ] +reg byte a [ mode_hicolmcchar::v#0 ] +reg byte a [ mode_hicolecmchar::$26 ] +zp ZP_BYTE:118 [ mode_hicolecmchar::$27 ] +reg byte a [ mode_hicolecmchar::$28 ] +reg byte a [ mode_hicolecmchar::v#0 ] +reg byte a [ mode_hicolstdchar::$25 ] +zp ZP_BYTE:119 [ mode_hicolstdchar::$26 ] +reg byte a [ mode_hicolstdchar::$27 ] +reg byte a [ mode_hicolstdchar::v#0 ] +reg byte a [ mode_stdbitmap::$22 ] +reg byte y [ mode_stdbitmap::col#0 ] +zp ZP_BYTE:120 [ mode_stdbitmap::col2#0 ] +reg byte a [ mode_stdbitmap::$25 ] +reg byte a [ mode_stdbitmap::$26 ] +reg byte x [ bitmap_line::x1#0 ] +reg byte y [ bitmap_line::yd#2 ] +reg byte y [ bitmap_line::yd#1 ] +reg byte y [ bitmap_line::yd#10 ] +reg byte y [ bitmap_line::yd#11 ] +reg byte x [ bitmap_line_xdyi::$6 ] +zp ZP_WORD:121 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 ] +zp ZP_WORD:123 [ bitmap_plot::plotter_y#0 ] +reg byte a [ bitmap_plot::$1 ] +reg byte a [ bitmap_line_ydxi::$6 ] +reg byte x [ bitmap_line_xdyd::$6 ] +reg byte a [ bitmap_line_ydxd::$6 ] +reg byte a [ bitmap_init::$0 ] +zp ZP_BYTE:125 [ bitmap_init::$10 ] +reg byte a [ bitmap_init::$7 ] +reg byte a [ bitmap_init::$8 ] +reg byte a [ bitmap_init::$9 ] +reg byte a [ mode_mcchar::$26 ] +reg byte a [ mode_mcchar::$27 ] +reg byte a [ mode_mcchar::$28 ] +zp ZP_BYTE:126 [ mode_mcchar::$29 ] +reg byte a [ mode_mcchar::$30 ] +reg byte a [ mode_mcchar::$31 ] +reg byte a [ mode_ecmchar::$26 ] +reg byte a [ mode_ecmchar::$27 ] +reg byte a [ mode_ecmchar::$28 ] +zp ZP_BYTE:127 [ mode_ecmchar::$29 ] +reg byte a [ mode_ecmchar::$30 ] +reg byte a [ mode_ecmchar::$31 ] +reg byte a [ mode_stdchar::$25 ] +reg byte a [ mode_stdchar::$26 ] +reg byte a [ mode_stdchar::$27 ] +zp ZP_BYTE:128 [ mode_stdchar::$28 ] +reg byte a [ mode_stdchar::$29 ] +reg byte a [ mode_stdchar::$30 ] +reg byte a [ print_str_lines::ch#0 ] diff --git a/src/test/ref/callconstparam.sym b/src/test/ref/callconstparam.sym index 1daabbadc..00e91669e 100644 --- a/src/test/ref/callconstparam.sym +++ b/src/test/ref/callconstparam.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) line((byte) line::x0 , (byte) line::x1) +(label) line::@1 +(label) line::@return +(byte) line::x +(byte) line::x#0 reg byte x 2.0 +(byte) line::x#1 reg byte x 16.5 +(byte) line::x#2 reg byte x 11.666666666666666 +(byte) line::x0 +(byte) line::x1 +(byte) line::x1#3 x1 zp ZP_BYTE:2 1.8333333333333333 +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) screen +(byte*) screen#10 screen zp ZP_WORD:3 17.5 +(byte*) screen#11 screen zp ZP_WORD:3 4.0 +(byte*) screen#14 screen zp ZP_WORD:3 4.0 + +zp ZP_BYTE:2 [ line::x1#3 ] +reg byte x [ line::x#2 line::x#0 line::x#1 ] +zp ZP_WORD:3 [ screen#10 screen#14 screen#11 ] diff --git a/src/test/ref/cast-deref.sym b/src/test/ref/cast-deref.sym index 1daabbadc..c788bab5d 100644 --- a/src/test/ref/cast-deref.sym +++ b/src/test/ref/cast-deref.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 16.5 +(signed byte[]) main::sbs +(const signed byte[]) main::sbs#0 sbs = { (signed byte) -1, (signed byte) -2, (signed byte) -3, (signed byte) -4 } + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/cast-not-needed-2.sym b/src/test/ref/cast-not-needed-2.sym index 1daabbadc..ced94ab1a 100644 --- a/src/test/ref/cast-not-needed-2.sym +++ b/src/test/ref/cast-not-needed-2.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(label) main::getScreen1 +(byte~) main::getScreen1_$0 +(byte) main::getScreen1_id +(byte*) main::getScreen1_return +(byte*) main::getScreen1_return#0 getScreen1_return zp ZP_WORD:2 4.0 +(byte*) main::screen +(label) main::spritePtr1 +(byte*~) main::spritePtr1_$0 +(byte*~) main::spritePtr1_$1 +(byte*) main::spritePtr1_return +(byte*) main::spritePtr1_return#0 spritePtr1_return zp ZP_WORD:2 4.0 +(byte*) main::spritePtr1_screen +(byte*[]) screens +(const byte*[]) screens#0 screens = { (byte*) 1024, (byte*) 5120 } + +zp ZP_WORD:2 [ main::getScreen1_return#0 main::spritePtr1_return#0 ] diff --git a/src/test/ref/cast-not-needed-3.sym b/src/test/ref/cast-not-needed-3.sym index 1daabbadc..93344d7f6 100644 --- a/src/test/ref/cast-not-needed-3.sym +++ b/src/test/ref/cast-not-needed-3.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::DSP +(const byte*) main::DSP#0 DSP = (byte*) 1024 +(label) main::getScreen1 +(byte~) main::getScreen1_$0 +(byte) main::getScreen1_id +(byte*) main::getScreen1_return +(byte*) main::getScreen1_return#0 getScreen1_return zp ZP_WORD:2 4.0 +(label) main::spritePtr1 +(byte*~) main::spritePtr1_$0 +(byte*~) main::spritePtr1_$0#0 spritePtr1_$0 zp ZP_WORD:2 4.0 +(byte~) main::spritePtr1_$1 +(byte) main::spritePtr1_return +(byte) main::spritePtr1_return#0 reg byte a 4.0 +(byte*) main::spritePtr1_screen +(byte*[]) screens +(const byte*[]) screens#0 screens = { (byte*) 1024, (byte*) 5120 } + +zp ZP_WORD:2 [ main::getScreen1_return#0 main::spritePtr1_$0#0 ] +reg byte a [ main::spritePtr1_return#0 ] diff --git a/src/test/ref/cast-not-needed.sym b/src/test/ref/cast-not-needed.sym index 1daabbadc..a8cae1705 100644 --- a/src/test/ref/cast-not-needed.sym +++ b/src/test/ref/cast-not-needed.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 17408 +(void()) main() +(label) main::@return +(byte*) main::sprite_ptr +(const byte*) main::sprite_ptr#0 sprite_ptr = (const byte*) SCREEN#0+(word) $378 +(byte*) sprite +(const byte*) sprite#0 sprite = (byte*) 20480 + diff --git a/src/test/ref/cast-precedence-problem.sym b/src/test/ref/cast-precedence-problem.sym index 1daabbadc..ef3bc6594 100644 --- a/src/test/ref/cast-precedence-problem.sym +++ b/src/test/ref/cast-precedence-problem.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::BGCOL +(const byte*) main::BGCOL#0 BGCOL = (byte*) 53281 +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::max +(const byte) main::max#0 max = (byte) $c8 +(byte) main::midb +(const byte) main::midb#0 midb = (const byte) main::sumb#0>>(byte) 1+(byte) 1 +(byte) main::midw +(const byte) main::midw#0 midw = (byte)(const word) main::sumw#0>>(byte) 1+(byte) 1 +(byte) main::min +(const byte) main::min#0 min = (byte) $a +(byte) main::sumb +(const byte) main::sumb#0 sumb = (const byte) main::min#0+(const byte) main::max#0 +(word) main::sumw +(const word) main::sumw#0 sumw = (const byte) main::min#0+(const byte) main::max#0 + diff --git a/src/test/ref/casting.sym b/src/test/ref/casting.sym index 1daabbadc..92ae08e49 100644 --- a/src/test/ref/casting.sym +++ b/src/test/ref/casting.sym @@ -1 +1,42 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SCREEN2 +(const byte*) SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(byte)(number) $28*(number) 3 +(byte*) SCREEN3 +(const byte*) SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(byte)(number) $28*(number) 6 +(byte*) SCREEN4 +(const byte*) SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(word)(number) $28*(number) 9 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::b +(byte) main::b#1 reg byte x 16.5 +(byte) main::b#2 reg byte x 11.0 +(byte) main::b2 +(byte) main::b2#0 reg byte a 22.0 +(signed byte) main::sb +(signed byte) main::sb#0 reg byte a 11.0 +(void()) w() +(label) w::@1 +(label) w::@return +(byte) w::b +(const byte) w::b#0 b = (byte)(const word) w::w1#0-(const word) w::w2#0 +(byte) w::b2 +(byte) w::b2#0 reg byte x 11.0 +(byte) w::i +(byte) w::i#1 reg byte y 16.5 +(byte) w::i#2 reg byte y 13.75 +(word) w::w1 +(const word) w::w1#0 w1 = (word) $514 +(word) w::w2 +(const word) w::w2#0 w2 = (word) $4e2 + +reg byte x [ main::b#2 main::b#1 ] +reg byte y [ w::i#2 w::i#1 ] +reg byte a [ main::b2#0 ] +reg byte a [ main::sb#0 ] +reg byte x [ w::b2#0 ] diff --git a/src/test/ref/chargen.sym b/src/test/ref/chargen.sym index 1daabbadc..872bb521d 100644 --- a/src/test/ref/chargen.sym +++ b/src/test/ref/chargen.sym @@ -1 +1,44 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) CHARGEN +(const byte*) CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(byte~) main::$1 reg byte a 202.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte*) main::CHAR_A +(const byte*) main::CHAR_A#0 CHAR_A = (const byte*) CHARGEN#0+(byte) 8 +(byte) main::bits +(byte) main::bits#0 bits zp ZP_BYTE:3 22.0 +(byte) main::bits#1 bits zp ZP_BYTE:3 67.33333333333333 +(byte) main::bits#2 bits zp ZP_BYTE:3 44.85714285714286 +(byte) main::c +(byte) main::c#2 reg byte a 101.0 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:4 53.25 +(byte*) main::sc#2 sc zp ZP_WORD:4 7.333333333333333 +(byte*) main::sc#3 sc zp ZP_WORD:4 52.33333333333333 +(byte*) main::sc#7 sc zp ZP_WORD:4 11.0 +(byte) main::x +(byte) main::x#1 reg byte x 151.5 +(byte) main::x#2 reg byte x 25.25 +(byte) main::y +(byte) main::y#1 y zp ZP_BYTE:2 16.5 +(byte) main::y#2 y zp ZP_BYTE:2 2.5384615384615383 + +zp ZP_BYTE:2 [ main::y#2 main::y#1 ] +zp ZP_BYTE:3 [ main::bits#2 main::bits#0 main::bits#1 ] +zp ZP_WORD:4 [ main::sc#3 main::sc#7 main::sc#2 main::sc#1 ] +reg byte x [ main::x#2 main::x#1 ] +reg byte a [ main::c#2 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/chessboard.sym b/src/test/ref/chessboard.sym index 1daabbadc..529568ad7 100644 --- a/src/test/ref/chessboard.sym +++ b/src/test/ref/chessboard.sym @@ -1 +1,31 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::color +(byte) main::color#1 reg byte x 71.0 +(byte) main::color#2 reg byte x 4.4 +(byte) main::color#3 reg byte x 104.66666666666666 +(byte) main::color#5 reg byte x 22.0 +(byte*) main::colors +(byte*) main::colors#1 colors zp ZP_WORD:4 7.333333333333333 +(byte*) main::colors#4 colors zp ZP_WORD:4 13.666666666666664 +(byte) main::column +(byte) main::column#1 reg byte y 151.5 +(byte) main::column#2 reg byte y 101.0 +(byte) main::row +(byte) main::row#1 row zp ZP_BYTE:6 16.5 +(byte) main::row#4 row zp ZP_BYTE:6 2.2 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 5.5 +(byte*) main::screen#4 screen zp ZP_WORD:2 15.375 + +zp ZP_WORD:2 [ main::screen#4 main::screen#1 ] +zp ZP_WORD:4 [ main::colors#4 main::colors#1 ] +zp ZP_BYTE:6 [ main::row#4 main::row#1 ] +reg byte y [ main::column#2 main::column#1 ] +reg byte x [ main::color#3 main::color#5 main::color#2 main::color#1 ] diff --git a/src/test/ref/clobber-a-problem.sym b/src/test/ref/clobber-a-problem.sym index 1daabbadc..ef75b7ec5 100644 --- a/src/test/ref/clobber-a-problem.sym +++ b/src/test/ref/clobber-a-problem.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte) DARK_GREY +(const byte) DARK_GREY#0 DARK_GREY = (byte) $b +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +interrupt(HARDWARE_CLOBBER)(void()) irq() +(byte~) irq::$0 reg byte a 4.0 +(label) irq::@1 +(label) irq::@2 +(label) irq::@return +(byte) irq::raster_next +(byte) irq::raster_next#0 reg byte x 2.6666666666666665 +(byte) irq::raster_next#1 reg byte x 4.0 +(byte) irq::raster_next#2 reg byte x 6.0 +(byte) irq_raster_next +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:2 4.0 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:2 4.0 +(void()) main() +(label) main::@return + +reg byte x [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ] +zp ZP_BYTE:2 [ irq_raster_next#0 irq_raster_next#1 ] +reg byte a [ irq::$0 ] diff --git a/src/test/ref/comma-decl-for.sym b/src/test/ref/comma-decl-for.sym index 1daabbadc..9ed28253a 100644 --- a/src/test/ref/comma-decl-for.sym +++ b/src/test/ref/comma-decl-for.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 16.5 +(byte) main::j +(byte) main::j#1 reg byte a 11.0 +(byte) main::j#2 reg byte a 11.0 + +reg byte a [ main::j#2 main::j#1 ] +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/comma-decl.sym b/src/test/ref/comma-decl.sym index 1daabbadc..9020debd0 100644 --- a/src/test/ref/comma-decl.sym +++ b/src/test/ref/comma-decl.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b +(const byte) main::b#0 b = (byte) 'c' +(byte) main::c +(const byte) main::c#0 c = (const byte) main::b#0+(byte) 1 +(byte) main::d +(const byte) main::d#0 d = (const byte) main::c#0+(byte) 1 + diff --git a/src/test/ref/comma-expr-1.sym b/src/test/ref/comma-expr-1.sym index 1daabbadc..ed21c3aed 100644 --- a/src/test/ref/comma-expr-1.sym +++ b/src/test/ref/comma-expr-1.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b +(const byte) main::b#0 b = (byte) 3 +(byte) main::c +(const byte) main::c#0 c = (const byte) main::b#0+(byte) 1 + diff --git a/src/test/ref/comma-expr-2.sym b/src/test/ref/comma-expr-2.sym index 1daabbadc..5231e475a 100644 --- a/src/test/ref/comma-expr-2.sym +++ b/src/test/ref/comma-expr-2.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::c +(const byte) main::c#1 c = (number) 1+(number) 3 + diff --git a/src/test/ref/comma-expr-for.sym b/src/test/ref/comma-expr-for.sym index 1daabbadc..9ed28253a 100644 --- a/src/test/ref/comma-expr-for.sym +++ b/src/test/ref/comma-expr-for.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 16.5 +(byte) main::j +(byte) main::j#1 reg byte a 11.0 +(byte) main::j#2 reg byte a 11.0 + +reg byte a [ main::j#2 main::j#1 ] +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/comparison-rewriting-pointer.sym b/src/test/ref/comparison-rewriting-pointer.sym index 1daabbadc..9a37986e3 100644 --- a/src/test/ref/comparison-rewriting-pointer.sym +++ b/src/test/ref/comparison-rewriting-pointer.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::cc +(byte*) main::cc#1 cc zp ZP_WORD:4 16.5 +(byte*) main::cc#2 cc zp ZP_WORD:4 16.5 +(byte*) main::cols +(const byte*) main::cols#0 cols = (byte*) 55296 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) main::sc#2 sc zp ZP_WORD:2 16.5 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] +zp ZP_WORD:4 [ main::cc#2 main::cc#1 ] diff --git a/src/test/ref/comparison-rewriting.sym b/src/test/ref/comparison-rewriting.sym index 1daabbadc..345b5665b 100644 --- a/src/test/ref/comparison-rewriting.sym +++ b/src/test/ref/comparison-rewriting.sym @@ -1 +1,39 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$3 reg byte a 22.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte[]) main::header +(const byte[]) main::header#0 header = (string) " < <= == >= >@" +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte) main::i1 +(byte) main::i1#1 reg byte x 16.5 +(byte) main::i1#10 reg byte x 6.285714285714286 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) main::sc#2 sc zp ZP_WORD:2 16.5 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:4 5.866666666666666 +(byte*) main::screen#4 screen zp ZP_WORD:4 22.0 + +zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:4 [ main::screen#4 main::screen#1 ] +reg byte x [ main::i1#10 main::i1#1 ] +reg byte a [ main::$3 ] diff --git a/src/test/ref/complex-conditional-problem.sym b/src/test/ref/complex-conditional-problem.sym index 1daabbadc..265be5c41 100644 --- a/src/test/ref/complex-conditional-problem.sym +++ b/src/test/ref/complex-conditional-problem.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(byte) main::key +(byte) main::key#0 reg byte a 11.0 +(byte) main::key#2 reg byte a 22.0 + +reg byte a [ main::key#2 main::key#0 ] diff --git a/src/test/ref/complex/tetris/test-sprites.sym b/src/test/ref/complex/tetris/test-sprites.sym index 1daabbadc..98c09dd91 100644 --- a/src/test/ref/complex/tetris/test-sprites.sym +++ b/src/test/ref/complex/tetris/test-sprites.sym @@ -1 +1,244 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @3 +(label) @4 +(label) @5 +(label) @begin +(label) @end +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(void()**) HARDWARE_IRQ +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = (void()**) 65534 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte) IRQ_RASTER_FIRST +(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte) $13 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(byte*) PLAYFIELD_CHARSET +(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = (byte*) 10240 +(byte*) PLAYFIELD_SCREEN_1 +(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = (byte*) 1024 +(byte*) PLAYFIELD_SCREEN_2 +(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = (byte*) 11264 +(byte*) PLAYFIELD_SPRITES +(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = (byte*) 8192 +(byte*) PLAYFIELD_SPRITE_PTRS_1 +(const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0 +(byte*) PLAYFIELD_SPRITE_PTRS_2 +(const byte*) PLAYFIELD_SPRITE_PTRS_2#0 PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) SPRITE_PTRS#0 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SIN +(const byte*) SIN#0 SIN = (byte*) 5120 +(byte*) SIN_SPRITE +(const byte*) SIN_SPRITE#0 SIN_SPRITE = (byte*) 10240 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_EXPAND_X +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = (byte*) 53277 +(byte*) SPRITES_EXPAND_Y +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = (byte*) 53271 +(byte) SPRITES_FIRST_YPOS +(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte) $31 +(byte*) SPRITES_MC +(const byte*) SPRITES_MC#0 SPRITES_MC = (byte*) 53276 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(word) SPRITE_PTRS +(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word) $3f8 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) irq_cnt +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:12 0.17391304347826086 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:12 3.0 +(byte) irq_cnt#2 irq_cnt zp ZP_BYTE:12 20.0 +(byte) irq_raster_next +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:9 0.3076923076923077 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:9 1.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:9 1.3333333333333333 +(byte) irq_raster_next#3 irq_raster_next zp ZP_BYTE:9 1.3333333333333333 +(byte) irq_raster_next#4 irq_raster_next zp ZP_BYTE:9 8.0 +(byte) irq_sprite_ptr +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:11 0.25806451612903225 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:11 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:11 20.0 +(byte) irq_sprite_ptr#3 irq_sprite_ptr zp ZP_BYTE:11 20.0 +(byte) irq_sprite_ypos +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:10 0.27586206896551724 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:10 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:10 20.0 +(byte) irq_sprite_ypos#3 irq_sprite_ypos zp ZP_BYTE:10 20.0 +(void()) loop() +(byte~) loop::$1 reg byte a 202.0 +(label) loop::@1 +(label) loop::@2 +(label) loop::@3 +(label) loop::@4 +(label) loop::@5 +(byte) loop::idx +(byte) loop::idx#0 reg byte x 22.0 +(byte) loop::idx#1 reg byte x 67.33333333333333 +(byte) loop::idx#2 reg byte x 104.66666666666666 +(byte) loop::s +(byte) loop::s#1 s zp ZP_BYTE:5 151.5 +(byte) loop::s#2 s zp ZP_BYTE:5 75.75 +(void()) main() +(byte~) main::$6 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::s +(byte) main::s#1 reg byte y 16.5 +(byte) main::s#2 reg byte y 6.6 +(byte) main::s2 +(byte) main::s2#0 reg byte x 16.5 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) PLAYFIELD_SCREEN_1#0&(word) $3fff*(byte) 4|>(word)(const byte*) PLAYFIELD_CHARSET#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen +(label) main::toSpritePtr2 +(word~) main::toSpritePtr2_$0 +(number~) main::toSpritePtr2_$1 +(byte~) main::toSpritePtr2_$2 +(byte) main::toSpritePtr2_return +(const byte) main::toSpritePtr2_return#0 toSpritePtr2_return = (byte)(word)(const byte*) SIN_SPRITE#0/(byte) $40 +(byte*) main::toSpritePtr2_sprite +(label) main::vicSelectGfxBank1 +(byte~) main::vicSelectGfxBank1_$0 +(label) main::vicSelectGfxBank1_@1 +(byte*) main::vicSelectGfxBank1_gfx +(label) main::vicSelectGfxBank1_toDd001 +(word~) main::vicSelectGfxBank1_toDd001_$0 +(byte~) main::vicSelectGfxBank1_toDd001_$1 +(number~) main::vicSelectGfxBank1_toDd001_$2 +(number~) main::vicSelectGfxBank1_toDd001_$3 +(byte*) main::vicSelectGfxBank1_toDd001_gfx +(byte) main::vicSelectGfxBank1_toDd001_return +(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3 +(byte) main::xpos +(byte) main::xpos#1 xpos zp ZP_BYTE:2 5.5 +(byte) main::xpos#2 xpos zp ZP_BYTE:2 4.125 +(byte) main::ypos +(byte) main::ypos#1 ypos zp ZP_BYTE:3 7.333333333333333 +(byte) main::ypos#2 ypos zp ZP_BYTE:3 3.666666666666667 +(byte) render_screen_showing +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:8 0.4 +(byte) sin_idx +(byte) sin_idx#10 sin_idx zp ZP_BYTE:4 3.666666666666667 +(byte) sin_idx#3 sin_idx zp ZP_BYTE:4 22.0 +(void()) sprites_init() +(label) sprites_init::@1 +(label) sprites_init::@return +(byte) sprites_init::s +(byte) sprites_init::s#1 reg byte y 16.5 +(byte) sprites_init::s#2 reg byte y 8.8 +(byte) sprites_init::s2 +(byte) sprites_init::s2#0 reg byte x 22.0 +(byte) sprites_init::xpos +(byte) sprites_init::xpos#1 xpos zp ZP_BYTE:6 7.333333333333333 +(byte) sprites_init::xpos#2 xpos zp ZP_BYTE:6 8.25 +interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() +(byte~) sprites_irq::$0 reg byte x 4.0 +(label) sprites_irq::@1 +(label) sprites_irq::@10 +(label) sprites_irq::@11 +(label) sprites_irq::@2 +(label) sprites_irq::@3 +(label) sprites_irq::@4 +(label) sprites_irq::@5 +(label) sprites_irq::@6 +(label) sprites_irq::@7 +(label) sprites_irq::@8 +(label) sprites_irq::@9 +(label) sprites_irq::@return +(byte) sprites_irq::ptr +(byte) sprites_irq::ptr#0 reg byte x 2.5 +(byte) sprites_irq::ptr#1 reg byte x 2.6666666666666665 +(byte) sprites_irq::ptr#2 reg byte a 4.0 +(byte) sprites_irq::ptr#3 reg byte a 2.6666666666666665 +(byte) sprites_irq::ptr#4 reg byte a 4.0 +(byte) sprites_irq::raster_sprite_gfx_modify +(byte) sprites_irq::raster_sprite_gfx_modify#0 raster_sprite_gfx_modify zp ZP_BYTE:7 6.5 +(label) sprites_irq::toSpritePtr2 +(word~) sprites_irq::toSpritePtr2_$0 +(number~) sprites_irq::toSpritePtr2_$1 +(byte~) sprites_irq::toSpritePtr2_$2 +(byte) sprites_irq::toSpritePtr2_return +(const byte) sprites_irq::toSpritePtr2_return#0 toSpritePtr2_return = (byte)(word)(const byte*) PLAYFIELD_SPRITES#0/(byte) $40 +(byte*) sprites_irq::toSpritePtr2_sprite +(byte) sprites_irq::ypos +(byte) sprites_irq::ypos#0 reg byte a 2.5 +(void()) sprites_irq_init() +(label) sprites_irq_init::@return +(label) toSpritePtr1 +(word~) toSpritePtr1_$0 +(number~) toSpritePtr1_$1 +(byte~) toSpritePtr1_$2 +(byte) toSpritePtr1_return +(const byte) toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)(const byte*) PLAYFIELD_SPRITES#0/(byte) $40 +(byte*) toSpritePtr1_sprite + +reg byte y [ main::s#2 main::s#1 ] +zp ZP_BYTE:2 [ main::xpos#2 main::xpos#1 ] +zp ZP_BYTE:3 [ main::ypos#2 main::ypos#1 ] +zp ZP_BYTE:4 [ sin_idx#10 sin_idx#3 ] +zp ZP_BYTE:5 [ loop::s#2 loop::s#1 ] +reg byte x [ loop::idx#2 loop::idx#0 loop::idx#1 ] +reg byte y [ sprites_init::s#2 sprites_init::s#1 ] +zp ZP_BYTE:6 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +zp ZP_BYTE:7 [ sprites_irq::raster_sprite_gfx_modify#0 ] +zp ZP_BYTE:8 [ render_screen_showing#0 ] +zp ZP_BYTE:9 [ irq_raster_next#0 irq_raster_next#4 irq_raster_next#1 irq_raster_next#2 irq_raster_next#3 ] +zp ZP_BYTE:10 [ irq_sprite_ypos#0 irq_sprite_ypos#1 irq_sprite_ypos#2 irq_sprite_ypos#3 ] +zp ZP_BYTE:11 [ irq_sprite_ptr#0 irq_sprite_ptr#1 irq_sprite_ptr#2 irq_sprite_ptr#3 ] +zp ZP_BYTE:12 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] +reg byte x [ main::s2#0 ] +reg byte a [ main::$6 ] +reg byte a [ loop::$1 ] +reg byte x [ sprites_init::s2#0 ] +reg byte a [ sprites_irq::ypos#0 ] +reg byte x [ sprites_irq::$0 ] +reg byte x [ sprites_irq::ptr#0 ] +reg byte a [ sprites_irq::ptr#3 ] +reg byte a [ sprites_irq::ptr#4 ] +reg byte x [ sprites_irq::ptr#1 ] +reg byte a [ sprites_irq::ptr#2 ] diff --git a/src/test/ref/complex/tetris/tetris.sym b/src/test/ref/complex/tetris/tetris.sym index 1daabbadc..8e7e93298 100644 --- a/src/test/ref/complex/tetris/tetris.sym +++ b/src/test/ref/complex/tetris/tetris.sym @@ -1 +1,1263 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @3 +(label) @4 +(label) @5 +(label) @begin +(label) @end +(byte*) BGCOL1 +(const byte*) BGCOL1#0 BGCOL1 = (byte*) 53281 +(byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = (byte*) 53282 +(byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = (byte*) 53283 +(byte*) BGCOL4 +(const byte*) BGCOL4#0 BGCOL4 = (byte*) 53284 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte) BLUE +(const byte) BLUE#0 BLUE = (byte) 6 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte) COLLISION_BOTTOM +(const byte) COLLISION_BOTTOM#0 COLLISION_BOTTOM = (byte) 2 +(byte) COLLISION_LEFT +(const byte) COLLISION_LEFT#0 COLLISION_LEFT = (byte) 4 +(byte) COLLISION_NONE +(const byte) COLLISION_NONE#0 COLLISION_NONE = (byte) 0 +(byte) COLLISION_PLAYFIELD +(const byte) COLLISION_PLAYFIELD#0 COLLISION_PLAYFIELD = (byte) 1 +(byte) COLLISION_RIGHT +(const byte) COLLISION_RIGHT#0 COLLISION_RIGHT = (byte) 8 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte) CYAN +(const byte) CYAN#0 CYAN = (byte) 3 +(byte*) D011 +(const byte*) D011#0 D011 = (byte*) 53265 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte) DARK_GREY +(const byte) DARK_GREY#0 DARK_GREY = (byte) $b +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) GREY +(const byte) GREY#0 GREY = (byte) $c +(void()**) HARDWARE_IRQ +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = (void()**) 65534 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte) IRQ_RASTER_FIRST +(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte) $13 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(byte) KEY_COMMA +(const byte) KEY_COMMA#0 KEY_COMMA = (byte) $2f +(byte) KEY_COMMODORE +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte) $3d +(byte) KEY_CTRL +(const byte) KEY_CTRL#0 KEY_CTRL = (byte) $3a +(byte) KEY_DOT +(const byte) KEY_DOT#0 KEY_DOT = (byte) $2c +(byte) KEY_LSHIFT +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte) $f +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_RSHIFT +(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte) $34 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(byte) KEY_X +(const byte) KEY_X#0 KEY_X = (byte) $17 +(byte) KEY_Z +(const byte) KEY_Z#0 KEY_Z = (byte) $c +(byte) LIGHT_BLUE +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte) $e +(byte) LIGHT_GREEN +(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte) $d +(byte[]) MOVEDOWN_SLOW_SPEEDS +(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte) $30, (byte) $2b, (byte) $26, (byte) $21, (byte) $1c, (byte) $17, (byte) $12, (byte) $d, (byte) 8, (byte) 6, (byte) 5, (byte) 5, (byte) 5, (byte) 4, (byte) 4, (byte) 4, (byte) 3, (byte) 3, (byte) 3, (byte) 2, (byte) 2, (byte) 2, (byte) 2, (byte) 2, (byte) 2, (byte) 2, (byte) 2, (byte) 2, (byte) 2, (byte) 1 } +(byte) ORANGE +(const byte) ORANGE#0 ORANGE = (byte) 8 +(word[]) PIECES +(const word[]) PIECES#0 PIECES = { (word)(const byte[4*4*4]) PIECE_T#0, (word)(const byte[4*4*4]) PIECE_S#0, (word)(const byte[4*4*4]) PIECE_Z#0, (word)(const byte[4*4*4]) PIECE_J#0, (word)(const byte[4*4*4]) PIECE_O#0, (word)(const byte[4*4*4]) PIECE_I#0, (word)(const byte[4*4*4]) PIECE_L#0 } +(byte[]) PIECES_CHARS +(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte) $65, (byte) $66, (byte) $a6, (byte) $66, (byte) $65, (byte) $65, (byte) $a6 } +(byte[]) PIECES_COLORS_1 +(const byte[]) PIECES_COLORS_1#0 PIECES_COLORS_1 = { (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0 } +(byte[]) PIECES_COLORS_2 +(const byte[]) PIECES_COLORS_2#0 PIECES_COLORS_2 = { (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0 } +(byte[]) PIECES_NEXT_CHARS +(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte) $63, (byte) $64, (byte) $a4, (byte) $64, (byte) $63, (byte) $63, (byte) $a4 } +(byte[]) PIECES_START_X +(const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte) 4, (byte) 4, (byte) 4, (byte) 4, (byte) 4, (byte) 4, (byte) 4 } +(byte[]) PIECES_START_Y +(const byte[]) PIECES_START_Y#0 PIECES_START_Y = { (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 1 } +(byte[4*4*4]) PIECE_I +(const byte[4*4*4]) PIECE_I#0 PIECE_I = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0 } +(byte[4*4*4]) PIECE_J +(const byte[4*4*4]) PIECE_J#0 PIECE_J = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[4*4*4]) PIECE_L +(const byte[4*4*4]) PIECE_L#0 PIECE_L = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[4*4*4]) PIECE_O +(const byte[4*4*4]) PIECE_O#0 PIECE_O = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[4*4*4]) PIECE_S +(const byte[4*4*4]) PIECE_S#0 PIECE_S = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[4*4*4]) PIECE_T +(const byte[4*4*4]) PIECE_T#0 PIECE_T = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[4*4*4]) PIECE_Z +(const byte[4*4*4]) PIECE_Z#0 PIECE_Z = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte) PINK +(const byte) PINK#0 PINK = (byte) $a +(byte*) PLAYFIELD_CHARSET +(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = (byte*) 10240 +(byte*) PLAYFIELD_COLORS_ORIGINAL +(const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = (byte*) 7168 +(byte) PLAYFIELD_COLS +(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte) $a +(byte) PLAYFIELD_LINES +(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte) $16 +(byte*) PLAYFIELD_SCREEN_1 +(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = (byte*) 1024 +(byte*) PLAYFIELD_SCREEN_2 +(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = (byte*) 11264 +(byte*) PLAYFIELD_SCREEN_ORIGINAL +(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = (byte*) 6144 +(byte*) PLAYFIELD_SPRITES +(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = (byte*) 8192 +(byte*) PLAYFIELD_SPRITE_PTRS_1 +(const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0 +(byte*) PLAYFIELD_SPRITE_PTRS_2 +(const byte*) PLAYFIELD_SPRITE_PTRS_2#0 PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) SPRITE_PTRS#0 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte) PURPLE +(const byte) PURPLE#0 PURPLE = (byte) 4 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(dword[]) SCORE_BASE_BCD +(const dword[]) SCORE_BASE_BCD#0 SCORE_BASE_BCD = { (dword) 0, (dword) $40, (dword) $100, (dword) $300, (dword) $1200 } +(byte) SID_CONTROL_NOISE +(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte) $80 +(byte*) SID_VOICE3_CONTROL +(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = (byte*) 54290 +(word*) SID_VOICE3_FREQ +(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = (word*) 54286 +(byte*) SID_VOICE3_OSC +(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = (byte*) 54299 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_EXPAND_X +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = (byte*) 53277 +(byte*) SPRITES_EXPAND_Y +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = (byte*) 53271 +(byte) SPRITES_FIRST_YPOS +(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte) $31 +(byte*) SPRITES_MC +(const byte*) SPRITES_MC#0 SPRITES_MC = (byte*) 53276 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(word) SPRITE_PTRS +(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word) $3f8 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_ECM +(const byte) VIC_ECM#0 VIC_ECM = (byte) $40 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(byte) current_movedown_counter +(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:4 0.5333333333333333 +(byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:4 3.081081081081081 +(byte) current_movedown_counter#16 current_movedown_counter zp ZP_BYTE:4 8.769230769230768 +(byte) current_movedown_fast +(const byte) current_movedown_fast#0 current_movedown_fast = (byte) $a +(byte) current_movedown_slow +(byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:45 0.17391304347826086 +(byte) current_movedown_slow#10 current_movedown_slow zp ZP_BYTE:45 4.0 +(byte) current_movedown_slow#14 current_movedown_slow zp ZP_BYTE:45 2.214285714285714 +(byte) current_movedown_slow#21 current_movedown_slow zp ZP_BYTE:45 3.135135135135135 +(byte) current_movedown_slow#23 current_movedown_slow zp ZP_BYTE:45 1.1428571428571428 +(byte) current_movedown_slow#37 current_movedown_slow zp ZP_BYTE:45 6.0 +(byte) current_movedown_slow#66 current_movedown_slow zp ZP_BYTE:45 0.26666666666666666 +(byte) current_orientation +(byte) current_orientation#13 current_orientation zp ZP_BYTE:50 3.189189189189189 +(byte) current_orientation#17 current_orientation zp ZP_BYTE:50 5.523809523809523 +(byte) current_orientation#20 current_orientation zp ZP_BYTE:50 0.36734693877551017 +(byte) current_orientation#25 current_orientation zp ZP_BYTE:50 1.3333333333333333 +(byte) current_orientation#37 current_orientation zp ZP_BYTE:50 4.0 +(byte) current_orientation#7 current_orientation zp ZP_BYTE:50 3.0 +(byte*) current_piece +(byte*) current_piece#10 current_piece zp ZP_WORD:47 3.243243243243243 +(byte*~) current_piece#100 current_piece#100 zp ZP_WORD:30 4.0 +(byte*~) current_piece#102 current_piece zp ZP_WORD:47 2.0 +(byte*) current_piece#15 current_piece zp ZP_WORD:47 1.5897435897435892 +(byte*) current_piece#17 current_piece#17 zp ZP_WORD:30 12.0 +(byte*) current_piece#28 current_piece zp ZP_WORD:47 6.0 +(byte*~) current_piece#93 current_piece zp ZP_WORD:47 2.0 +(byte*~) current_piece#96 current_piece#96 zp ZP_WORD:30 4.0 +(byte*~) current_piece#97 current_piece#97 zp ZP_WORD:30 4.0 +(byte*~) current_piece#98 current_piece#98 zp ZP_WORD:30 4.0 +(byte*~) current_piece#99 current_piece#99 zp ZP_WORD:30 4.0 +(byte) current_piece_char +(byte) current_piece_char#10 current_piece_char zp ZP_BYTE:49 183.9818181818182 +(byte~) current_piece_char#100 current_piece_char#100 zp ZP_BYTE:18 4.0 +(byte~) current_piece_char#101 current_piece_char#101 zp ZP_BYTE:18 22.0 +(byte) current_piece_char#16 current_piece_char zp ZP_BYTE:49 3.4324324324324325 +(byte) current_piece_char#29 current_piece_char zp ZP_BYTE:49 6.0 +(byte) current_piece_char#5 current_piece_char zp ZP_BYTE:49 0.25 +(byte) current_piece_char#68 current_piece_char#68 zp ZP_BYTE:18 48.285714285714285 +(byte*) current_piece_gfx +(byte*~) current_piece_gfx#112 current_piece_gfx#112 zp ZP_WORD:16 2.0 +(byte*~) current_piece_gfx#113 current_piece_gfx#113 zp ZP_WORD:16 11.0 +(byte*~) current_piece_gfx#117 current_piece_gfx zp ZP_WORD:51 4.0 +(byte*~) current_piece_gfx#124 current_piece_gfx zp ZP_WORD:51 4.0 +(byte*) current_piece_gfx#13 current_piece_gfx zp ZP_WORD:51 183.9818181818182 +(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:51 6.047619047619047 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:51 0.37037037037037035 +(byte*) current_piece_gfx#21 current_piece_gfx zp ZP_WORD:51 1.3333333333333333 +(byte*) current_piece_gfx#35 current_piece_gfx zp ZP_WORD:51 6.0 +(byte*) current_piece_gfx#64 current_piece_gfx#64 zp ZP_WORD:16 48.285714285714285 +(byte*) current_piece_gfx#7 current_piece_gfx zp ZP_WORD:51 4.0 +(byte) current_xpos +(byte) current_xpos#100 current_xpos zp ZP_BYTE:53 0.3225806451612903 +(byte~) current_xpos#119 current_xpos#119 zp ZP_BYTE:15 1.3333333333333333 +(byte~) current_xpos#120 current_xpos#120 zp ZP_BYTE:15 7.333333333333333 +(byte) current_xpos#14 current_xpos zp ZP_BYTE:53 20.38181818181818 +(byte) current_xpos#19 current_xpos zp ZP_BYTE:53 6.047619047619047 +(byte) current_xpos#22 current_xpos zp ZP_BYTE:53 0.7999999999999999 +(byte) current_xpos#26 current_xpos zp ZP_BYTE:53 0.4666666666666666 +(byte) current_xpos#43 current_xpos zp ZP_BYTE:53 6.0 +(byte) current_xpos#59 current_xpos#59 zp ZP_BYTE:15 5.428571428571429 +(byte) current_xpos#6 current_xpos zp ZP_BYTE:53 4.0 +(byte) current_xpos#8 current_xpos zp ZP_BYTE:53 4.0 +(byte) current_ypos +(byte) current_ypos#11 current_ypos zp ZP_BYTE:37 3.297297297297297 +(byte) current_ypos#13 reg byte x 15.0 +(byte) current_ypos#19 current_ypos zp ZP_BYTE:37 1.7051282051282046 +(byte) current_ypos#3 current_ypos zp ZP_BYTE:37 4.0 +(byte) current_ypos#38 current_ypos zp ZP_BYTE:37 6.0 +(byte) current_ypos#6 current_ypos zp ZP_BYTE:37 0.3333333333333333 +(byte~) current_ypos#98 reg byte x 1.0 +(byte~) current_ypos#99 reg byte x 4.4 +(byte) game_over +(byte) game_over#10 game_over zp ZP_BYTE:55 4.804347826086958 +(byte) game_over#15 game_over zp ZP_BYTE:55 3.189189189189189 +(byte) game_over#27 game_over zp ZP_BYTE:55 6.0 +(byte) game_over#52 game_over zp ZP_BYTE:55 0.34782608695652173 +(byte) game_over#65 game_over zp ZP_BYTE:55 0.42857142857142855 +(byte) irq_cnt +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:89 0.17391304347826086 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:89 3.0 +(byte) irq_cnt#2 irq_cnt zp ZP_BYTE:89 20.0 +(byte) irq_raster_next +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:86 0.3076923076923077 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:86 1.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:86 1.3333333333333333 +(byte) irq_raster_next#3 irq_raster_next zp ZP_BYTE:86 1.3333333333333333 +(byte) irq_raster_next#4 irq_raster_next zp ZP_BYTE:86 8.0 +(byte) irq_sprite_ptr +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:88 0.25806451612903225 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:88 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:88 20.0 +(byte) irq_sprite_ptr#3 irq_sprite_ptr zp ZP_BYTE:88 20.0 +(byte) irq_sprite_ypos +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:87 0.27586206896551724 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:87 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:87 20.0 +(byte) irq_sprite_ypos#3 irq_sprite_ypos zp ZP_BYTE:87 20.0 +(byte()) keyboard_event_get() +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte) keyboard_event_get::return#1 reg byte x 4.0 +(byte) keyboard_event_get::return#2 reg byte x 34.33333333333333 +(byte) keyboard_event_get::return#3 reg byte x 202.0 +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 reg byte a 4.0 +(byte~) keyboard_event_pressed::$1 reg byte a 4.0 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:63 1.3333333333333333 +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::return#0 reg byte a 4.0 +(byte) keyboard_event_pressed::return#1 reg byte a 4.0 +(byte) keyboard_event_pressed::return#10 reg byte a 4.0 +(byte) keyboard_event_pressed::return#11 reg byte a 1.714285714285714 +(byte) keyboard_event_pressed::return#12 reg byte a 4.0 +(byte) keyboard_event_pressed::return#2 reg byte a 4.0 +(byte) keyboard_event_pressed::row_bits +(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:107 2.0 +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 reg byte a 4.0 +(byte~) keyboard_event_scan::$15 reg byte a 20002.0 +(byte~) keyboard_event_scan::$16 reg byte a 20002.0 +(byte~) keyboard_event_scan::$23 reg byte a 20002.0 +(byte~) keyboard_event_scan::$3 reg byte a 4.0 +(byte~) keyboard_event_scan::$6 reg byte a 4.0 +(byte~) keyboard_event_scan::$9 reg byte a 4.0 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@13 +(label) keyboard_event_scan::@14 +(label) keyboard_event_scan::@15 +(label) keyboard_event_scan::@16 +(label) keyboard_event_scan::@17 +(label) keyboard_event_scan::@18 +(label) keyboard_event_scan::@19 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@20 +(label) keyboard_event_scan::@21 +(label) keyboard_event_scan::@22 +(label) keyboard_event_scan::@23 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::col#1 reg byte x 15001.5 +(byte) keyboard_event_scan::col#2 reg byte x 2857.4285714285716 +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::event_type#0 reg byte a 20002.0 +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:65 2002.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:65 3154.230769230769 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:65 500.5 +(byte) keyboard_event_scan::keycode#13 keycode zp ZP_BYTE:65 1001.0 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:65 5250.75 +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:64 1501.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:64 600.24 +(byte) keyboard_event_scan::row_scan +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:108 1278.0555555555554 +(byte[8]) keyboard_events +(const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } +(byte) keyboard_events_size +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:66 20002.0 +(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:66 8100.9000000000015 +(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:66 97.06451612903226 +(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:66 4.461538461538461 +(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:66 18.999999999999996 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:66 20002.0 +(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:66 10201.2 +(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:66 429.2857142857143 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:66 3.0 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 334.33333333333337 +(byte) keyboard_matrix_read::return#2 reg byte a 2002.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte x 1003.0 +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(byte) keyboard_modifiers +(byte[8]) keyboard_scan_values +(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } +(byte) level +(byte) level#10 level zp ZP_BYTE:44 1.909090909090909 +(byte) level#17 level zp ZP_BYTE:44 3.135135135135135 +(byte) level#19 level zp ZP_BYTE:44 1.1428571428571428 +(byte) level#21 level zp ZP_BYTE:44 0.4444444444444444 +(byte) level#33 level zp ZP_BYTE:44 6.0 +(byte) level_bcd +(byte) level_bcd#11 level_bcd zp ZP_BYTE:46 2.0 +(byte) level_bcd#17 level_bcd zp ZP_BYTE:46 1.9999999999999998 +(byte) level_bcd#19 level_bcd zp ZP_BYTE:46 1.1428571428571428 +(byte) level_bcd#21 level_bcd zp ZP_BYTE:46 2.6666666666666665 +(byte) level_bcd#31 level_bcd zp ZP_BYTE:46 6.0 +(byte) level_bcd#62 level_bcd zp ZP_BYTE:46 0.6000000000000001 +(byte) level_bcd#8 level_bcd zp ZP_BYTE:46 4.0 +(word) lines_bcd +(word) lines_bcd#15 lines_bcd zp ZP_WORD:38 2.0338983050847457 +(word) lines_bcd#17 lines_bcd zp ZP_WORD:38 1.1428571428571428 +(word) lines_bcd#19 lines_bcd zp ZP_WORD:38 2.4400000000000004 +(word) lines_bcd#26 lines_bcd zp ZP_WORD:38 6.0 +(word) lines_bcd#29 lines_bcd zp ZP_WORD:38 1.0 +(void()) main() +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@18 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@22 +(label) main::@23 +(label) main::@24 +(label) main::@25 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::key_event +(byte) main::key_event#0 reg byte x 101.0 +(byte) main::render +(byte) main::render#1 reg byte a 202.0 +(byte) next_piece_idx +(byte) next_piece_idx#10 next_piece_idx zp ZP_BYTE:54 2.608695652173914 +(byte) next_piece_idx#12 reg byte x 3.4 +(byte) next_piece_idx#16 next_piece_idx zp ZP_BYTE:54 3.4324324324324325 +(byte) next_piece_idx#17 next_piece_idx zp ZP_BYTE:54 6.0 +(byte) next_piece_idx#30 next_piece_idx zp ZP_BYTE:54 6.0 +(byte~) next_piece_idx#77 reg byte x 4.0 +(byte~) next_piece_idx#78 reg byte x 22.0 +(byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) +(byte~) play_collision::$14 reg byte a 2002.0 +(byte~) play_collision::$5 reg byte a 20002.0 +(label) play_collision::@1 +(label) play_collision::@10 +(label) play_collision::@2 +(label) play_collision::@3 +(label) play_collision::@4 +(label) play_collision::@5 +(label) play_collision::@6 +(label) play_collision::@7 +(label) play_collision::@8 +(label) play_collision::@9 +(label) play_collision::@return +(byte) play_collision::c +(byte) play_collision::c#1 reg byte x 10001.0 +(byte) play_collision::c#2 reg byte x 2222.4444444444443 +(byte) play_collision::i +(byte) play_collision::i#1 i zp ZP_BYTE:96 1615.6153846153845 +(byte~) play_collision::i#10 i#10 zp ZP_BYTE:35 2002.0 +(byte~) play_collision::i#12 i#12 zp ZP_BYTE:35 20002.0 +(byte) play_collision::i#2 i#2 zp ZP_BYTE:35 15502.0 +(byte) play_collision::i#3 i#3 zp ZP_BYTE:35 500.5 +(byte) play_collision::l +(byte) play_collision::l#1 l zp ZP_BYTE:34 1001.0 +(byte) play_collision::l#6 l zp ZP_BYTE:34 117.76470588235294 +(byte) play_collision::orientation +(byte) play_collision::orientation#0 reg byte x 2.0 +(byte) play_collision::orientation#1 reg byte x 2.0 +(byte) play_collision::orientation#2 reg byte x 2.0 +(byte) play_collision::orientation#3 reg byte x 2.0 +(byte) play_collision::orientation#5 reg byte x 10.0 +(byte*) play_collision::piece_gfx +(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:30 476.3333333333333 +(byte*) play_collision::playfield_line +(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:94 785.8571428571429 +(byte) play_collision::return +(byte) play_collision::return#0 reg byte a 4.0 +(byte) play_collision::return#1 reg byte a 4.0 +(byte) play_collision::return#10 reg byte a 4.0 +(byte) play_collision::return#13 reg byte a 4.0 +(byte) play_collision::return#14 reg byte a 4.0 +(byte) play_collision::return#15 reg byte a 1.4285714285714284 +(byte) play_collision::xp +(byte) play_collision::xp#1 xp zp ZP_BYTE:36 5000.5 +(byte) play_collision::xp#2 xp zp ZP_BYTE:36 6375.75 +(byte~) play_collision::xp#8 xp zp ZP_BYTE:36 2002.0 +(byte) play_collision::xpos +(byte) play_collision::xpos#0 xpos zp ZP_BYTE:32 1.3333333333333333 +(byte) play_collision::xpos#1 xpos zp ZP_BYTE:32 1.0 +(byte) play_collision::xpos#2 xpos zp ZP_BYTE:32 1.0 +(byte) play_collision::xpos#3 xpos zp ZP_BYTE:32 1.0 +(byte) play_collision::xpos#4 xpos zp ZP_BYTE:32 1.3333333333333333 +(byte) play_collision::xpos#6 xpos zp ZP_BYTE:32 45.95454545454545 +(byte) play_collision::yp +(byte) play_collision::yp#0 yp zp ZP_BYTE:33 6.0 +(byte) play_collision::yp#1 yp zp ZP_BYTE:33 500.5 +(byte) play_collision::yp#2 yp zp ZP_BYTE:33 812.875 +(byte) play_collision::ypos +(byte) play_collision::ypos#0 ypos zp ZP_BYTE:33 1.0 +(byte) play_collision::ypos#1 ypos zp ZP_BYTE:33 1.3333333333333333 +(byte) play_collision::ypos#2 ypos zp ZP_BYTE:33 1.3333333333333333 +(byte) play_collision::ypos#3 ypos zp ZP_BYTE:33 1.3333333333333333 +(byte) play_collision::ypos#4 ypos zp ZP_BYTE:33 2.0 +(void()) play_increase_level() +(byte~) play_increase_level::$1 reg byte a 4.0 +(byte~) play_increase_level::$5 reg byte a 4004.0 +(label) play_increase_level::@1 +(label) play_increase_level::@2 +(label) play_increase_level::@3 +(label) play_increase_level::@4 +(label) play_increase_level::@5 +(label) play_increase_level::@6 +(label) play_increase_level::@return +(byte) play_increase_level::b +(byte) play_increase_level::b#1 reg byte x 1501.5 +(byte) play_increase_level::b#2 reg byte x 1001.0 +(void()) play_init() +(byte~) play_init::$4 reg byte x 22.0 +(byte~) play_init::$5 reg byte a 33.0 +(label) play_init::@1 +(label) play_init::@2 +(label) play_init::@3 +(label) play_init::@return +(byte) play_init::b +(byte) play_init::b#1 reg byte x 16.5 +(byte) play_init::b#2 reg byte x 11.0 +(byte) play_init::idx +(byte) play_init::idx#1 idx zp ZP_BYTE:69 7.333333333333333 +(byte) play_init::idx#2 idx zp ZP_BYTE:69 6.6000000000000005 +(byte) play_init::j +(byte) play_init::j#1 reg byte y 16.5 +(byte) play_init::j#2 reg byte y 7.333333333333333 +(byte*) play_init::pli +(byte*) play_init::pli#1 pli zp ZP_WORD:67 5.5 +(byte*) play_init::pli#2 pli zp ZP_WORD:67 8.25 +(void()) play_lock_current() +(byte~) play_lock_current::$4 reg byte a 2002.0 +(label) play_lock_current::@1 +(label) play_lock_current::@2 +(label) play_lock_current::@3 +(label) play_lock_current::@4 +(label) play_lock_current::@5 +(label) play_lock_current::@6 +(label) play_lock_current::@7 +(label) play_lock_current::@return +(byte) play_lock_current::c +(byte) play_lock_current::c#1 reg byte x 10001.0 +(byte) play_lock_current::c#2 reg byte x 4000.4 +(byte) play_lock_current::i +(byte) play_lock_current::i#1 i zp ZP_BYTE:106 2333.6666666666665 +(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:61 15502.0 +(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:61 500.5 +(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:61 2002.0 +(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:61 20002.0 +(byte) play_lock_current::l +(byte) play_lock_current::l#1 l zp ZP_BYTE:60 1001.0 +(byte) play_lock_current::l#6 l zp ZP_BYTE:60 154.0 +(byte*) play_lock_current::playfield_line +(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:104 1100.2 +(byte) play_lock_current::xp +(byte) play_lock_current::xp#0 xp zp ZP_BYTE:62 2002.0 +(byte) play_lock_current::xp#1 xp zp ZP_BYTE:62 5000.5 +(byte) play_lock_current::xp#2 xp zp ZP_BYTE:62 7751.0 +(byte) play_lock_current::yp +(byte) play_lock_current::yp#0 yp zp ZP_BYTE:37 4.0 +(byte) play_lock_current::yp#1 yp zp ZP_BYTE:37 500.5 +(byte) play_lock_current::yp#2 yp zp ZP_BYTE:37 250.41666666666669 +(byte()) play_move_down((byte) play_move_down::key_event) +(byte~) play_move_down::$12 reg byte a 4.0 +(byte~) play_move_down::$2 reg byte a 4.0 +(label) play_move_down::@1 +(label) play_move_down::@10 +(label) play_move_down::@11 +(label) play_move_down::@12 +(label) play_move_down::@13 +(label) play_move_down::@14 +(label) play_move_down::@15 +(label) play_move_down::@16 +(label) play_move_down::@17 +(label) play_move_down::@2 +(label) play_move_down::@3 +(label) play_move_down::@4 +(label) play_move_down::@5 +(label) play_move_down::@6 +(label) play_move_down::@7 +(label) play_move_down::@8 +(label) play_move_down::@9 +(label) play_move_down::@return +(byte) play_move_down::key_event +(byte) play_move_down::key_event#0 reg byte a 2.0 +(byte) play_move_down::movedown +(byte) play_move_down::movedown#10 reg byte x 1.0 +(byte) play_move_down::movedown#2 reg byte x 4.0 +(byte) play_move_down::movedown#3 reg byte x 4.0 +(byte) play_move_down::movedown#6 reg byte x 6.0 +(byte) play_move_down::movedown#7 reg byte x 5.0 +(byte) play_move_down::removed +(byte) play_move_down::removed#0 reg byte a 4.0 +(byte) play_move_down::return +(byte) play_move_down::return#0 reg byte a 4.0 +(byte) play_move_down::return#3 reg byte x 0.6666666666666666 +(byte()) play_move_leftright((byte) play_move_leftright::key_event) +(byte~) play_move_leftright::$4 reg byte a 4.0 +(byte~) play_move_leftright::$8 reg byte a 4.0 +(label) play_move_leftright::@1 +(label) play_move_leftright::@2 +(label) play_move_leftright::@3 +(label) play_move_leftright::@4 +(label) play_move_leftright::@5 +(label) play_move_leftright::@6 +(label) play_move_leftright::@7 +(label) play_move_leftright::@return +(byte) play_move_leftright::key_event +(byte) play_move_leftright::key_event#0 reg byte a 3.0 +(byte) play_move_leftright::return +(byte) play_move_leftright::return#0 reg byte a 4.0 +(byte) play_move_leftright::return#2 reg byte a 0.6666666666666666 +(byte()) play_move_rotate((byte) play_move_rotate::key_event) +(byte~) play_move_rotate::$2 reg byte a 4.0 +(byte~) play_move_rotate::$5 reg byte x 4.0 +(byte~) play_move_rotate::$7 reg byte x 4.0 +(label) play_move_rotate::@1 +(label) play_move_rotate::@2 +(label) play_move_rotate::@3 +(label) play_move_rotate::@4 +(label) play_move_rotate::@5 +(label) play_move_rotate::@6 +(label) play_move_rotate::@return +(byte) play_move_rotate::key_event +(byte) play_move_rotate::key_event#0 reg byte a 3.0 +(byte) play_move_rotate::orientation +(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:29 4.0 +(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:29 4.0 +(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:29 0.8888888888888888 +(byte) play_move_rotate::return +(byte) play_move_rotate::return#0 reg byte a 4.0 +(byte) play_move_rotate::return#2 reg byte a 0.6666666666666666 +(byte()) play_movement((byte) play_movement::key_event) +(byte~) play_movement::$3 reg byte a 4.0 +(byte~) play_movement::$4 reg byte a 4.0 +(label) play_movement::@1 +(label) play_movement::@2 +(label) play_movement::@3 +(label) play_movement::@4 +(label) play_movement::@return +(byte) play_movement::key_event +(byte) play_movement::key_event#0 key_event zp ZP_BYTE:90 9.727272727272727 +(byte) play_movement::render +(byte) play_movement::render#1 render zp ZP_BYTE:28 1.0 +(byte) play_movement::render#2 render zp ZP_BYTE:28 0.8 +(byte) play_movement::return +(byte) play_movement::return#0 return zp ZP_BYTE:28 4.0 +(byte) play_movement::return#2 return zp ZP_BYTE:28 34.99999999999999 +(byte) play_movement::return#3 reg byte a 202.0 +(byte()) play_remove_lines() +(label) play_remove_lines::@1 +(label) play_remove_lines::@2 +(label) play_remove_lines::@3 +(label) play_remove_lines::@4 +(label) play_remove_lines::@5 +(label) play_remove_lines::@6 +(label) play_remove_lines::@7 +(label) play_remove_lines::@8 +(label) play_remove_lines::@9 +(label) play_remove_lines::@return +(byte) play_remove_lines::c +(byte) play_remove_lines::c#0 c zp ZP_BYTE:103 6000.6 +(byte) play_remove_lines::full +(byte) play_remove_lines::full#2 full zp ZP_BYTE:59 4200.6 +(byte) play_remove_lines::full#4 full zp ZP_BYTE:59 4000.4 +(byte) play_remove_lines::r +(byte) play_remove_lines::r#1 reg byte y 1500.2142857142858 +(byte) play_remove_lines::r#2 reg byte y 15502.0 +(byte) play_remove_lines::r#3 reg byte y 2002.0 +(byte) play_remove_lines::removed +(byte) play_remove_lines::removed#1 removed zp ZP_BYTE:57 2002.0 +(byte) play_remove_lines::removed#11 removed zp ZP_BYTE:57 231.0 +(byte) play_remove_lines::removed#8 removed zp ZP_BYTE:57 333.8888888888889 +(byte) play_remove_lines::return +(byte) play_remove_lines::return#0 reg byte a 4.0 +(byte) play_remove_lines::w +(byte) play_remove_lines::w#1 reg byte x 5501.0 +(byte) play_remove_lines::w#11 reg byte x 1334.6666666666667 +(byte) play_remove_lines::w#12 reg byte x 2002.0 +(byte) play_remove_lines::w#2 reg byte x 1001.0 +(byte) play_remove_lines::w#3 reg byte x 2002.0 +(byte) play_remove_lines::w#4 reg byte x 4429.142857142857 +(byte) play_remove_lines::w#6 reg byte x 1668.3333333333335 +(byte) play_remove_lines::x +(byte) play_remove_lines::x#1 x zp ZP_BYTE:58 15001.5 +(byte) play_remove_lines::x#2 x zp ZP_BYTE:58 2500.25 +(byte) play_remove_lines::y +(byte) play_remove_lines::y#1 y zp ZP_BYTE:56 1501.5 +(byte) play_remove_lines::y#8 y zp ZP_BYTE:56 133.46666666666667 +(void()) play_spawn_current() +(byte~) play_spawn_current::$1 reg byte a 4.0 +(byte~) play_spawn_current::$7 $7 zp ZP_BYTE:97 0.06451612903225806 +(label) play_spawn_current::@1 +(label) play_spawn_current::@2 +(label) play_spawn_current::@3 +(label) play_spawn_current::@4 +(label) play_spawn_current::@5 +(label) play_spawn_current::@return +(byte) play_spawn_current::current_piece_idx +(byte) play_spawn_current::current_piece_idx#0 reg byte x 2.5 +(byte) play_spawn_current::piece_idx +(byte) play_spawn_current::piece_idx#1 piece_idx zp ZP_BYTE:54 2002.0 +(byte) play_spawn_current::piece_idx#2 piece_idx zp ZP_BYTE:54 100.5 +(label) play_spawn_current::sid_rnd1 +(byte) play_spawn_current::sid_rnd1_return +(byte) play_spawn_current::sid_rnd1_return#0 reg byte a 2002.0 +(void()) play_update_score((byte) play_update_score::removed) +(byte~) play_update_score::$2 reg byte a 4.0 +(byte~) play_update_score::$4 reg byte a 4.0 +(byte~) play_update_score::$9 reg byte a 4.0 +(label) play_update_score::@1 +(label) play_update_score::@2 +(label) play_update_score::@return +(dword) play_update_score::add_bcd +(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:99 1.3333333333333333 +(byte) play_update_score::lines_after +(byte) play_update_score::lines_after#0 reg byte a 4.0 +(byte) play_update_score::lines_before +(byte) play_update_score::lines_before#0 lines_before zp ZP_BYTE:98 0.4444444444444444 +(byte) play_update_score::removed +(byte) play_update_score::removed#0 reg byte x 1.1428571428571428 +(byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield +(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) } +(byte*[PLAYFIELD_LINES#0]) playfield_lines +(const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 playfield_lines = { fill( PLAYFIELD_LINES#0, 0) } +(byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx +(const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 playfield_lines_idx = { fill( PLAYFIELD_LINES#0+1, 0) } +(void()) render_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low) +(byte~) render_bcd::$3 reg byte a 4.0 +(byte~) render_bcd::$4 reg byte a 4.0 +(byte~) render_bcd::$5 reg byte a 4.0 +(byte~) render_bcd::$6 reg byte a 4.0 +(label) render_bcd::@1 +(label) render_bcd::@2 +(label) render_bcd::@return +(byte) render_bcd::ZERO_CHAR +(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte) $35 +(byte) render_bcd::bcd +(byte) render_bcd::bcd#0 reg byte x 4.0 +(byte) render_bcd::bcd#1 reg byte x 4.0 +(byte) render_bcd::bcd#2 reg byte x 4.0 +(byte) render_bcd::bcd#3 reg byte x 2.0 +(byte) render_bcd::bcd#4 reg byte x 2.0 +(byte) render_bcd::bcd#5 reg byte x 4.0 +(byte) render_bcd::bcd#6 reg byte x 2.0 +(word) render_bcd::offset +(word) render_bcd::offset#6 offset zp ZP_WORD:7 2.0 +(byte) render_bcd::only_low +(byte) render_bcd::only_low#6 reg byte y 1.0 +(byte*) render_bcd::screen +(byte*) render_bcd::screen#0 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#1 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#2 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#3 screen zp ZP_WORD:5 4.0 +(byte*) render_bcd::screen#4 screen zp ZP_WORD:5 4.0 +(byte*) render_bcd::screen#5 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#6 screen zp ZP_WORD:5 14.0 +(byte*) render_bcd::screen_pos +(byte*) render_bcd::screen_pos#0 screen_pos zp ZP_WORD:7 1.6 +(byte*) render_bcd::screen_pos#2 screen_pos zp ZP_WORD:7 4.0 +(byte*) render_bcd::screen_pos#3 screen_pos zp ZP_WORD:7 2.0 +(void()) render_init() +(byte~) render_init::$15 reg byte x 16.5 +(label) render_init::@1 +(label) render_init::@2 +(label) render_init::@3 +(label) render_init::@return +(byte) render_init::i +(byte) render_init::i#1 reg byte y 16.5 +(byte) render_init::i#2 reg byte y 5.5 +(byte*) render_init::li_1 +(byte*) render_init::li_1#1 li_1 zp ZP_WORD:71 5.5 +(byte*) render_init::li_1#2 li_1 zp ZP_WORD:71 8.25 +(byte*) render_init::li_2 +(byte*) render_init::li_2#1 li_2 zp ZP_WORD:73 7.333333333333333 +(byte*) render_init::li_2#2 li_2 zp ZP_WORD:73 6.6000000000000005 +(label) render_init::vicSelectGfxBank1 +(byte~) render_init::vicSelectGfxBank1_$0 +(label) render_init::vicSelectGfxBank1_@1 +(byte*) render_init::vicSelectGfxBank1_gfx +(label) render_init::vicSelectGfxBank1_toDd001 +(word~) render_init::vicSelectGfxBank1_toDd001_$0 +(byte~) render_init::vicSelectGfxBank1_toDd001_$1 +(number~) render_init::vicSelectGfxBank1_toDd001_$2 +(number~) render_init::vicSelectGfxBank1_toDd001_$3 +(byte*) render_init::vicSelectGfxBank1_toDd001_gfx +(byte) render_init::vicSelectGfxBank1_toDd001_return +(const byte) render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3 +(void()) render_moving() +(byte~) render_moving::$1 reg byte a 202.0 +(byte~) render_moving::$6 reg byte a 202.0 +(label) render_moving::@1 +(label) render_moving::@2 +(label) render_moving::@3 +(label) render_moving::@4 +(label) render_moving::@5 +(label) render_moving::@6 +(label) render_moving::@7 +(label) render_moving::@return +(byte) render_moving::c +(byte) render_moving::c#1 reg byte x 1501.5 +(byte) render_moving::c#2 reg byte x 333.6666666666667 +(byte) render_moving::current_cell +(byte) render_moving::current_cell#0 reg byte a 1001.0 +(byte) render_moving::i +(byte) render_moving::i#1 i zp ZP_BYTE:21 202.0 +(byte) render_moving::i#2 i zp ZP_BYTE:21 500.5 +(byte) render_moving::i#3 i zp ZP_BYTE:21 50.5 +(byte) render_moving::i#4 i zp ZP_BYTE:21 1552.0 +(byte) render_moving::i#8 i zp ZP_BYTE:21 300.75 +(byte) render_moving::l +(byte) render_moving::l#1 l zp ZP_BYTE:20 151.5 +(byte) render_moving::l#4 l zp ZP_BYTE:20 11.882352941176471 +(byte*) render_moving::screen_line +(byte*) render_moving::screen_line#0 screen_line zp ZP_WORD:92 110.19999999999999 +(byte) render_moving::xpos +(byte) render_moving::xpos#0 xpos zp ZP_BYTE:22 202.0 +(byte) render_moving::xpos#1 xpos zp ZP_BYTE:22 667.3333333333334 +(byte) render_moving::xpos#2 xpos zp ZP_BYTE:22 620.8 +(byte) render_moving::ypos +(byte) render_moving::ypos#0 ypos zp ZP_BYTE:19 4.0 +(byte) render_moving::ypos#1 ypos zp ZP_BYTE:19 67.33333333333333 +(byte) render_moving::ypos#2 ypos zp ZP_BYTE:19 25.375 +(void()) render_next() +(byte~) render_next::$9 reg byte y 1.0 +(label) render_next::@1 +(label) render_next::@2 +(label) render_next::@3 +(label) render_next::@4 +(label) render_next::@5 +(label) render_next::@6 +(label) render_next::@7 +(label) render_next::@8 +(label) render_next::@return +(byte) render_next::c +(byte) render_next::c#1 reg byte x 1501.5 +(byte) render_next::c#2 reg byte x 286.0 +(byte) render_next::cell +(byte) render_next::cell#0 reg byte a 1001.0 +(byte) render_next::l +(byte) render_next::l#1 l zp ZP_BYTE:9 151.5 +(byte) render_next::l#7 l zp ZP_BYTE:9 18.363636363636363 +(word) render_next::next_area_offset +(const word) render_next::next_area_offset#0 next_area_offset = (number) $28*(number) $c+(number) $18+(number) 4 +(byte) render_next::next_piece_char +(byte) render_next::next_piece_char#0 next_piece_char zp ZP_BYTE:91 66.86666666666667 +(byte*) render_next::next_piece_gfx +(byte*) render_next::next_piece_gfx#1 next_piece_gfx zp ZP_WORD:10 210.29999999999998 +(byte*) render_next::next_piece_gfx#2 next_piece_gfx zp ZP_WORD:10 1552.0 +(byte*) render_next::next_piece_gfx#3 next_piece_gfx zp ZP_WORD:10 204.0 +(byte*~) render_next::next_piece_gfx#9 next_piece_gfx zp ZP_WORD:10 4.0 +(byte*) render_next::screen_next_area +(byte*) render_next::screen_next_area#10 screen_next_area zp ZP_WORD:12 204.0 +(byte*) render_next::screen_next_area#11 screen_next_area zp ZP_WORD:12 0.5 +(byte*) render_next::screen_next_area#3 screen_next_area zp ZP_WORD:12 701.0 +(byte*) render_next::screen_next_area#4 screen_next_area zp ZP_WORD:12 67.33333333333333 +(byte*) render_next::screen_next_area#5 screen_next_area zp ZP_WORD:12 684.1666666666667 +(void()) render_playfield() +(byte~) render_playfield::$2 reg byte a 202.0 +(byte~) render_playfield::$6 reg byte a 202.0 +(label) render_playfield::@1 +(label) render_playfield::@2 +(label) render_playfield::@3 +(label) render_playfield::@return +(byte) render_playfield::c +(byte) render_playfield::c#1 c zp ZP_BYTE:27 1501.5 +(byte) render_playfield::c#2 c zp ZP_BYTE:27 500.5 +(byte) render_playfield::i +(byte) render_playfield::i#1 i zp ZP_BYTE:24 420.59999999999997 +(byte) render_playfield::i#2 i zp ZP_BYTE:24 1034.6666666666667 +(byte) render_playfield::i#3 i zp ZP_BYTE:24 50.5 +(byte) render_playfield::l +(byte) render_playfield::l#1 l zp ZP_BYTE:23 151.5 +(byte) render_playfield::l#2 l zp ZP_BYTE:23 30.299999999999997 +(byte*) render_playfield::screen_line +(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:25 202.0 +(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:25 500.5 +(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:25 1552.0 +(void()) render_score() +(label) render_score::@1 +(label) render_score::@2 +(label) render_score::@3 +(label) render_score::@4 +(label) render_score::@5 +(label) render_score::@6 +(label) render_score::@7 +(label) render_score::@return +(word) render_score::level_offset +(const word) render_score::level_offset#0 level_offset = (number) $28*(number) $13+(number) $1f +(word) render_score::lines_offset +(const word) render_score::lines_offset#0 lines_offset = (number) $28*(number) 1+(number) $16 +(byte*) render_score::score_bytes +(const byte*) render_score::score_bytes#0 score_bytes = (byte*)&(dword) score_bcd#14 +(word) render_score::score_offset +(const word) render_score::score_offset#0 score_offset = (number) $28*(number) 5+(number) $1c +(byte*) render_score::screen +(byte*) render_score::screen#3 screen zp ZP_WORD:5 0.75 +(void()) render_screen_original((byte*) render_screen_original::screen) +(label) render_screen_original::@1 +(label) render_screen_original::@2 +(label) render_screen_original::@3 +(label) render_screen_original::@4 +(label) render_screen_original::@5 +(label) render_screen_original::@return +(byte) render_screen_original::SPACE +(const byte) render_screen_original::SPACE#0 SPACE = (byte) 0 +(byte*) render_screen_original::cols +(byte*) render_screen_original::cols#1 cols zp ZP_WORD:82 101.0 +(byte*) render_screen_original::cols#2 cols zp ZP_WORD:82 75.75 +(byte*) render_screen_original::cols#3 cols zp ZP_WORD:82 42.599999999999994 +(byte*) render_screen_original::cols#4 cols zp ZP_WORD:82 78.5 +(byte*) render_screen_original::cols#5 cols zp ZP_WORD:82 80.8 +(byte*) render_screen_original::cols#6 cols zp ZP_WORD:82 101.0 +(byte*) render_screen_original::cols#7 cols zp ZP_WORD:82 22.0 +(byte*) render_screen_original::ocols +(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:78 17.75 +(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:78 67.33333333333333 +(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:78 14.0 +(byte*) render_screen_original::oscr +(byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:76 14.2 +(byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:76 134.66666666666666 +(byte*) render_screen_original::oscr#4 oscr zp ZP_WORD:76 14.0 +(byte*) render_screen_original::screen +(byte*) render_screen_original::screen#10 screen zp ZP_WORD:80 30.42857142857143 +(byte*) render_screen_original::screen#2 screen zp ZP_WORD:80 60.599999999999994 +(byte*) render_screen_original::screen#3 screen zp ZP_WORD:80 43.285714285714285 +(byte*) render_screen_original::screen#5 screen zp ZP_WORD:80 157.0 +(byte*) render_screen_original::screen#6 screen zp ZP_WORD:80 202.0 +(byte*) render_screen_original::screen#7 screen zp ZP_WORD:80 202.0 +(byte*) render_screen_original::screen#8 screen zp ZP_WORD:80 24.0 +(byte*) render_screen_original::screen#9 screen zp ZP_WORD:80 2.0 +(byte) render_screen_original::x +(byte) render_screen_original::x#1 reg byte x 202.0 +(byte) render_screen_original::x#2 reg byte x 202.0 +(byte) render_screen_original::x#3 reg byte x 151.5 +(byte) render_screen_original::x#4 reg byte x 40.4 +(byte) render_screen_original::x#5 reg byte x 43.285714285714285 +(byte) render_screen_original::x#6 reg byte x 60.599999999999994 +(byte) render_screen_original::y +(byte) render_screen_original::y#1 y zp ZP_BYTE:75 16.5 +(byte) render_screen_original::y#6 y zp ZP_BYTE:75 0.9166666666666666 +(byte) render_screen_render +(byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25 +(byte) render_screen_render#15 reg byte a 13.0 +(byte) render_screen_render#18 render_screen_render zp ZP_BYTE:3 0.923076923076923 +(byte) render_screen_render#22 reg byte x 8.615384615384615 +(byte) render_screen_render#33 render_screen_render#33 zp ZP_BYTE:14 5.333333333333333 +(byte~) render_screen_render#64 reg byte x 22.0 +(byte~) render_screen_render#65 render_screen_render#65 zp ZP_BYTE:14 5.5 +(byte~) render_screen_render#66 reg byte a 11.0 +(byte) render_screen_show +(byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 +(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.425 +(byte) render_screen_showing +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:85 0.4 +(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:85 20.0 +(void()) render_screen_swap() +(label) render_screen_swap::@return +(void()) render_show() +(label) render_show::@1 +(label) render_show::@return +(byte) render_show::d018val +(byte) render_show::d018val#3 reg byte a 2.0 +(label) render_show::toD0181 +(word~) render_show::toD0181_$0 +(number~) render_show::toD0181_$1 +(number~) render_show::toD0181_$2 +(number~) render_show::toD0181_$3 +(word~) render_show::toD0181_$4 +(byte~) render_show::toD0181_$5 +(number~) render_show::toD0181_$6 +(number~) render_show::toD0181_$7 +(number~) render_show::toD0181_$8 +(byte*) render_show::toD0181_gfx +(byte) render_show::toD0181_return +(const byte) render_show::toD0181_return#0 toD0181_return = >(word)(const byte*) PLAYFIELD_SCREEN_1#0&(word) $3fff*(byte) 4|>(word)(const byte*) PLAYFIELD_CHARSET#0/(byte) 4&(byte) $f +(byte*) render_show::toD0181_screen +(label) render_show::toD0182 +(word~) render_show::toD0182_$0 +(number~) render_show::toD0182_$1 +(number~) render_show::toD0182_$2 +(number~) render_show::toD0182_$3 +(word~) render_show::toD0182_$4 +(byte~) render_show::toD0182_$5 +(number~) render_show::toD0182_$6 +(number~) render_show::toD0182_$7 +(number~) render_show::toD0182_$8 +(byte*) render_show::toD0182_gfx +(byte) render_show::toD0182_return +(const byte) render_show::toD0182_return#0 toD0182_return = >(word)(const byte*) PLAYFIELD_SCREEN_2#0&(word) $3fff*(byte) 4|>(word)(const byte*) PLAYFIELD_CHARSET#0/(byte) 4&(byte) $f +(byte*) render_show::toD0182_screen +(dword[5]) score_add_bcd +(const dword[5]) score_add_bcd#0 score_add_bcd = { fill( 5, 0) } +(dword) score_bcd +(dword) score_bcd#14 score_bcd zp ZP_DWORD:40 3.135135135135135 +(dword) score_bcd#16 score_bcd zp ZP_DWORD:40 1.1428571428571428 +(dword) score_bcd#18 score_bcd zp ZP_DWORD:40 2.352941176470588 +(dword) score_bcd#26 score_bcd zp ZP_DWORD:40 6.0 +(dword) score_bcd#29 score_bcd zp ZP_DWORD:40 0.8571428571428571 +(byte*[PLAYFIELD_LINES#0]) screen_lines_1 +(const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 screen_lines_1 = { fill( PLAYFIELD_LINES#0, 0) } +(byte*[PLAYFIELD_LINES#0]) screen_lines_2 +(const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 screen_lines_2 = { fill( PLAYFIELD_LINES#0, 0) } +(void()) sid_rnd_init() +(label) sid_rnd_init::@return +(void()) sprites_init() +(label) sprites_init::@1 +(label) sprites_init::@return +(byte) sprites_init::s +(byte) sprites_init::s#1 reg byte y 16.5 +(byte) sprites_init::s#2 reg byte y 8.8 +(byte) sprites_init::s2 +(byte) sprites_init::s2#0 reg byte x 22.0 +(byte) sprites_init::xpos +(byte) sprites_init::xpos#1 xpos zp ZP_BYTE:70 7.333333333333333 +(byte) sprites_init::xpos#2 xpos zp ZP_BYTE:70 8.25 +interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() +(byte~) sprites_irq::$0 reg byte x 4.0 +(label) sprites_irq::@1 +(label) sprites_irq::@10 +(label) sprites_irq::@11 +(label) sprites_irq::@2 +(label) sprites_irq::@3 +(label) sprites_irq::@4 +(label) sprites_irq::@5 +(label) sprites_irq::@6 +(label) sprites_irq::@7 +(label) sprites_irq::@8 +(label) sprites_irq::@9 +(label) sprites_irq::@return +(byte) sprites_irq::ptr +(byte) sprites_irq::ptr#0 reg byte x 2.5 +(byte) sprites_irq::ptr#1 reg byte x 2.6666666666666665 +(byte) sprites_irq::ptr#2 reg byte a 4.0 +(byte) sprites_irq::ptr#3 reg byte a 2.6666666666666665 +(byte) sprites_irq::ptr#4 reg byte a 4.0 +(byte) sprites_irq::raster_sprite_gfx_modify +(byte) sprites_irq::raster_sprite_gfx_modify#0 raster_sprite_gfx_modify zp ZP_BYTE:84 6.5 +(label) sprites_irq::toSpritePtr2 +(word~) sprites_irq::toSpritePtr2_$0 +(number~) sprites_irq::toSpritePtr2_$1 +(byte~) sprites_irq::toSpritePtr2_$2 +(byte) sprites_irq::toSpritePtr2_return +(const byte) sprites_irq::toSpritePtr2_return#0 toSpritePtr2_return = (byte)(word)(const byte*) PLAYFIELD_SPRITES#0/(byte) $40 +(byte*) sprites_irq::toSpritePtr2_sprite +(byte) sprites_irq::ypos +(byte) sprites_irq::ypos#0 reg byte a 2.5 +(void()) sprites_irq_init() +(label) sprites_irq_init::@return +(label) toSpritePtr1 +(word~) toSpritePtr1_$0 +(number~) toSpritePtr1_$1 +(byte~) toSpritePtr1_$2 +(byte) toSpritePtr1_return +(const byte) toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)(const byte*) PLAYFIELD_SPRITES#0/(byte) $40 +(byte*) toSpritePtr1_sprite + +zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] +zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] +zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] +zp ZP_WORD:5 [ render_score::screen#3 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] +zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] +reg byte y [ render_bcd::only_low#6 ] +reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] +reg byte a [ render_screen_render#15 render_screen_render#66 ] +reg byte x [ next_piece_idx#12 next_piece_idx#77 next_piece_idx#78 ] +zp ZP_BYTE:9 [ render_next::l#7 render_next::l#1 ] +zp ZP_WORD:10 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] +zp ZP_WORD:12 [ render_next::screen_next_area#5 render_next::screen_next_area#10 render_next::screen_next_area#4 render_next::screen_next_area#11 render_next::screen_next_area#3 ] +reg byte x [ render_next::c#2 render_next::c#1 ] +reg byte x [ current_ypos#13 current_ypos#98 current_ypos#99 ] +zp ZP_BYTE:14 [ render_screen_render#33 render_screen_render#65 ] +zp ZP_BYTE:15 [ current_xpos#59 current_xpos#119 current_xpos#120 ] +zp ZP_WORD:16 [ current_piece_gfx#64 current_piece_gfx#112 current_piece_gfx#113 ] +zp ZP_BYTE:18 [ current_piece_char#68 current_piece_char#100 current_piece_char#101 ] +zp ZP_BYTE:19 [ render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 ] +zp ZP_BYTE:20 [ render_moving::l#4 render_moving::l#1 ] +zp ZP_BYTE:21 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +zp ZP_BYTE:22 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +reg byte x [ render_moving::c#2 render_moving::c#1 ] +reg byte x [ render_screen_render#22 render_screen_render#64 ] +zp ZP_BYTE:23 [ render_playfield::l#2 render_playfield::l#1 ] +zp ZP_BYTE:24 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +zp ZP_WORD:25 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] +zp ZP_BYTE:27 [ render_playfield::c#2 render_playfield::c#1 ] +zp ZP_BYTE:28 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] +reg byte a [ play_move_rotate::return#2 ] +zp ZP_BYTE:29 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +zp ZP_WORD:30 [ current_piece#17 current_piece#96 current_piece#97 current_piece#98 current_piece#99 current_piece#100 play_collision::piece_gfx#0 ] +reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +zp ZP_BYTE:32 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] +zp ZP_BYTE:33 [ play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ] +zp ZP_BYTE:34 [ play_collision::l#6 play_collision::l#1 ] +zp ZP_BYTE:35 [ play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ] +zp ZP_BYTE:36 [ play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 ] +reg byte x [ play_collision::c#2 play_collision::c#1 ] +reg byte a [ play_collision::return#15 ] +reg byte a [ play_move_leftright::return#2 ] +reg byte x [ play_move_down::movedown#6 play_move_down::movedown#7 play_move_down::movedown#10 play_move_down::movedown#2 play_move_down::movedown#3 ] +zp ZP_BYTE:37 [ current_ypos#38 current_ypos#3 current_ypos#11 current_ypos#19 current_ypos#6 play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 ] +zp ZP_WORD:38 [ lines_bcd#26 lines_bcd#19 lines_bcd#15 lines_bcd#17 lines_bcd#29 ] +zp ZP_DWORD:40 [ score_bcd#26 score_bcd#18 score_bcd#14 score_bcd#16 score_bcd#29 ] +zp ZP_BYTE:44 [ level#33 level#10 level#17 level#19 level#21 ] +zp ZP_BYTE:45 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#66 current_movedown_slow#10 ] +zp ZP_BYTE:46 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] +zp ZP_WORD:47 [ current_piece#28 current_piece#10 current_piece#15 current_piece#102 current_piece#93 ] +zp ZP_BYTE:49 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] +zp ZP_BYTE:50 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +zp ZP_WORD:51 [ current_piece_gfx#35 current_piece_gfx#13 current_piece_gfx#18 current_piece_gfx#124 current_piece_gfx#20 current_piece_gfx#21 current_piece_gfx#7 current_piece_gfx#117 ] +zp ZP_BYTE:53 [ current_xpos#43 current_xpos#14 current_xpos#19 current_xpos#100 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ] +reg byte x [ play_move_down::return#3 ] +zp ZP_BYTE:54 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +zp ZP_BYTE:55 [ game_over#65 game_over#27 game_over#10 game_over#15 game_over#52 ] +reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] +zp ZP_BYTE:56 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +zp ZP_BYTE:57 [ play_remove_lines::removed#11 play_remove_lines::removed#8 play_remove_lines::removed#1 ] +reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] +zp ZP_BYTE:58 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +zp ZP_BYTE:59 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +reg byte x [ play_remove_lines::w#6 play_remove_lines::w#3 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 ] +zp ZP_BYTE:60 [ play_lock_current::l#6 play_lock_current::l#1 ] +zp ZP_BYTE:61 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] +zp ZP_BYTE:62 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 ] +reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] +zp ZP_BYTE:63 [ keyboard_event_pressed::keycode#5 ] +reg byte x [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +zp ZP_BYTE:64 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +zp ZP_BYTE:65 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] +zp ZP_BYTE:66 [ keyboard_events_size#10 keyboard_events_size#30 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#29 keyboard_events_size#1 keyboard_events_size#2 ] +reg byte a [ render_show::d018val#3 ] +reg byte y [ play_init::j#2 play_init::j#1 ] +zp ZP_WORD:67 [ play_init::pli#2 play_init::pli#1 ] +zp ZP_BYTE:69 [ play_init::idx#2 play_init::idx#1 ] +reg byte x [ play_init::b#2 play_init::b#1 ] +reg byte y [ sprites_init::s#2 sprites_init::s#1 ] +zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +reg byte y [ render_init::i#2 render_init::i#1 ] +zp ZP_WORD:71 [ render_init::li_1#2 render_init::li_1#1 ] +zp ZP_WORD:73 [ render_init::li_2#2 render_init::li_2#1 ] +zp ZP_BYTE:75 [ render_screen_original::y#6 render_screen_original::y#1 ] +zp ZP_WORD:76 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] +zp ZP_WORD:78 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] +zp ZP_WORD:80 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] +zp ZP_WORD:82 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] +reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] +zp ZP_BYTE:84 [ sprites_irq::raster_sprite_gfx_modify#0 ] +zp ZP_BYTE:85 [ render_screen_showing#0 render_screen_showing#1 ] +zp ZP_BYTE:86 [ irq_raster_next#0 irq_raster_next#4 irq_raster_next#1 irq_raster_next#2 irq_raster_next#3 ] +zp ZP_BYTE:87 [ irq_sprite_ypos#0 irq_sprite_ypos#1 irq_sprite_ypos#2 irq_sprite_ypos#3 ] +zp ZP_BYTE:88 [ irq_sprite_ptr#0 irq_sprite_ptr#1 irq_sprite_ptr#2 irq_sprite_ptr#3 ] +zp ZP_BYTE:89 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] +reg byte x [ keyboard_event_get::return#3 ] +reg byte x [ main::key_event#0 ] +zp ZP_BYTE:90 [ play_movement::key_event#0 ] +reg byte a [ play_movement::return#3 ] +reg byte a [ main::render#1 ] +reg byte a [ render_bcd::$5 ] +reg byte a [ render_bcd::$6 ] +reg byte a [ render_bcd::$3 ] +reg byte a [ render_bcd::$4 ] +reg byte y [ render_next::$9 ] +zp ZP_BYTE:91 [ render_next::next_piece_char#0 ] +reg byte a [ render_next::cell#0 ] +reg byte a [ render_moving::$1 ] +reg byte a [ render_moving::$6 ] +zp ZP_WORD:92 [ render_moving::screen_line#0 ] +reg byte a [ render_moving::current_cell#0 ] +reg byte a [ render_playfield::$2 ] +reg byte a [ render_playfield::$6 ] +reg byte a [ play_move_down::key_event#0 ] +reg byte a [ play_move_down::return#0 ] +reg byte a [ play_move_leftright::key_event#0 ] +reg byte a [ play_move_leftright::return#0 ] +reg byte a [ play_movement::$3 ] +reg byte a [ play_move_rotate::key_event#0 ] +reg byte a [ play_move_rotate::return#0 ] +reg byte a [ play_movement::$4 ] +reg byte x [ play_move_rotate::$5 ] +reg byte a [ play_collision::return#14 ] +reg byte a [ play_move_rotate::$2 ] +reg byte x [ play_move_rotate::$7 ] +reg byte a [ play_collision::$14 ] +zp ZP_WORD:94 [ play_collision::playfield_line#0 ] +zp ZP_BYTE:96 [ play_collision::i#1 ] +reg byte a [ play_collision::$5 ] +reg byte a [ play_collision::return#13 ] +reg byte a [ play_move_leftright::$4 ] +reg byte a [ play_collision::return#1 ] +reg byte a [ play_move_leftright::$8 ] +reg byte a [ keyboard_event_pressed::return#12 ] +reg byte a [ play_move_down::$2 ] +reg byte a [ play_collision::return#0 ] +reg byte a [ play_move_down::$12 ] +reg byte a [ play_remove_lines::return#0 ] +reg byte a [ play_move_down::removed#0 ] +reg byte x [ play_update_score::removed#0 ] +reg byte x [ play_spawn_current::current_piece_idx#0 ] +zp ZP_BYTE:97 [ play_spawn_current::$7 ] +reg byte a [ play_collision::return#10 ] +reg byte a [ play_spawn_current::$1 ] +reg byte a [ play_spawn_current::sid_rnd1_return#0 ] +reg byte a [ play_update_score::$2 ] +zp ZP_BYTE:98 [ play_update_score::lines_before#0 ] +reg byte a [ play_update_score::$9 ] +zp ZP_DWORD:99 [ play_update_score::add_bcd#0 ] +reg byte a [ play_update_score::$4 ] +reg byte a [ play_update_score::lines_after#0 ] +reg byte a [ play_increase_level::$1 ] +reg byte a [ play_increase_level::$5 ] +zp ZP_BYTE:103 [ play_remove_lines::c#0 ] +reg byte a [ play_lock_current::$4 ] +zp ZP_WORD:104 [ play_lock_current::playfield_line#0 ] +zp ZP_BYTE:106 [ play_lock_current::i#1 ] +reg byte a [ keyboard_event_pressed::$0 ] +zp ZP_BYTE:107 [ keyboard_event_pressed::row_bits#0 ] +reg byte a [ keyboard_event_pressed::$1 ] +reg byte a [ keyboard_event_pressed::return#11 ] +reg byte x [ keyboard_matrix_read::rowid#0 ] +reg byte a [ keyboard_matrix_read::return#2 ] +zp ZP_BYTE:108 [ keyboard_event_scan::row_scan#0 ] +reg byte a [ keyboard_event_pressed::return#0 ] +reg byte a [ keyboard_event_scan::$0 ] +reg byte a [ keyboard_event_pressed::return#1 ] +reg byte a [ keyboard_event_scan::$3 ] +reg byte a [ keyboard_event_pressed::return#2 ] +reg byte a [ keyboard_event_scan::$6 ] +reg byte a [ keyboard_event_pressed::return#10 ] +reg byte a [ keyboard_event_scan::$9 ] +reg byte a [ keyboard_event_scan::$15 ] +reg byte a [ keyboard_event_scan::$16 ] +reg byte a [ keyboard_event_scan::event_type#0 ] +reg byte a [ keyboard_event_scan::$23 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte x [ play_init::$4 ] +reg byte a [ play_init::$5 ] +reg byte x [ sprites_init::s2#0 ] +reg byte x [ render_init::$15 ] +reg byte a [ sprites_irq::ypos#0 ] +reg byte x [ sprites_irq::$0 ] +reg byte x [ sprites_irq::ptr#0 ] +reg byte a [ sprites_irq::ptr#3 ] +reg byte a [ sprites_irq::ptr#4 ] +reg byte x [ sprites_irq::ptr#1 ] +reg byte a [ sprites_irq::ptr#2 ] diff --git a/src/test/ref/condition-integer-0.sym b/src/test/ref/condition-integer-0.sym index 1daabbadc..1dd505468 100644 --- a/src/test/ref/condition-integer-0.sym +++ b/src/test/ref/condition-integer-0.sym @@ -1 +1,35 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 6.6000000000000005 +(word) main::i1 +(word) main::i1#1 i1 zp ZP_WORD:2 16.5 +(word) main::i1#2 i1 zp ZP_WORD:2 6.6000000000000005 +(byte) main::idx +(byte) main::idx#10 reg byte y 14.666666666666666 +(byte) main::idx#11 reg byte y 9.25 +(byte) main::idx#12 reg byte y 15.333333333333332 +(byte) main::idx#17 reg byte y 11.0 +(byte) main::idx#4 reg byte y 22.0 +(byte) main::idx#5 reg byte y 4.0 +(byte) main::idx#6 reg byte y 22.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::idx#10 main::idx#11 main::idx#4 ] +zp ZP_WORD:2 [ main::i1#2 main::i1#1 ] +reg byte y [ main::idx#12 main::idx#17 main::idx#5 main::idx#6 ] diff --git a/src/test/ref/condition-integer-1.sym b/src/test/ref/condition-integer-1.sym index 1daabbadc..1dd505468 100644 --- a/src/test/ref/condition-integer-1.sym +++ b/src/test/ref/condition-integer-1.sym @@ -1 +1,35 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 6.6000000000000005 +(word) main::i1 +(word) main::i1#1 i1 zp ZP_WORD:2 16.5 +(word) main::i1#2 i1 zp ZP_WORD:2 6.6000000000000005 +(byte) main::idx +(byte) main::idx#10 reg byte y 14.666666666666666 +(byte) main::idx#11 reg byte y 9.25 +(byte) main::idx#12 reg byte y 15.333333333333332 +(byte) main::idx#17 reg byte y 11.0 +(byte) main::idx#4 reg byte y 22.0 +(byte) main::idx#5 reg byte y 4.0 +(byte) main::idx#6 reg byte y 22.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::idx#10 main::idx#11 main::idx#4 ] +zp ZP_WORD:2 [ main::i1#2 main::i1#1 ] +reg byte y [ main::idx#12 main::idx#17 main::idx#5 main::idx#6 ] diff --git a/src/test/ref/condition-integer-2.sym b/src/test/ref/condition-integer-2.sym index 1daabbadc..0704bb690 100644 --- a/src/test/ref/condition-integer-2.sym +++ b/src/test/ref/condition-integer-2.sym @@ -1 +1,38 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) idx +(byte) idx#1 reg byte y 6.5 +(byte) idx#10 reg byte y 7.8 +(byte) idx#12 reg byte y 17.5 +(byte) idx#13 reg byte y 7.333333333333333 +(byte) idx#2 reg byte y 4.0 +(byte) idx#3 reg byte y 22.0 +(byte) idx#4 reg byte y 4.0 +(byte) idx#8 reg byte y 16.5 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(byte) main::j +(byte) main::j#1 reg byte a 11.0 +(byte) main::j#2 reg byte a 22.0 +(byte) main::k +(byte) main::k#1 reg byte a 16.5 +(byte) main::k#2 reg byte a 11.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ idx#8 idx#1 ] +reg byte a [ main::j#2 main::j#1 ] +reg byte y [ idx#10 idx#2 idx#3 ] +reg byte a [ main::k#2 main::k#1 ] +reg byte y [ idx#12 idx#4 idx#13 ] diff --git a/src/test/ref/condition-integer-3.sym b/src/test/ref/condition-integer-3.sym index 1daabbadc..40fe5248d 100644 --- a/src/test/ref/condition-integer-3.sym +++ b/src/test/ref/condition-integer-3.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(signed byte) main::i +(signed byte) main::i#1 reg byte y 16.5 +(signed byte) main::i#2 reg byte y 5.5 +(byte) main::idx +(byte) main::idx#1 reg byte x 7.333333333333333 +(byte) main::idx#2 reg byte x 6.6000000000000005 +(byte) main::j +(byte) main::j#0 reg byte a 11.0 + +reg byte y [ main::i#2 main::i#1 ] +reg byte x [ main::idx#2 main::idx#1 ] +reg byte a [ main::j#0 ] diff --git a/src/test/ref/condition-integer-4.sym b/src/test/ref/condition-integer-4.sym index 1daabbadc..88e51ffb6 100644 --- a/src/test/ref/condition-integer-4.sym +++ b/src/test/ref/condition-integer-4.sym @@ -1 +1,39 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$14 $14 zp ZP_BYTE:4 11.0 +(byte~) main::$15 $15 zp ZP_BYTE:5 11.0 +(byte~) main::$4 reg byte a 22.0 +(byte~) main::$8 $8 zp ZP_BYTE:2 11.0 +(byte~) main::$9 $9 zp ZP_BYTE:3 11.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#10 reg byte y 4.888888888888889 +(byte) main::idx +(byte) main::idx#1 reg byte x 7.333333333333333 +(byte) main::idx#10 reg byte x 3.8823529411764706 + +reg byte y [ main::i#10 main::i#1 ] +reg byte x [ main::idx#10 main::idx#1 ] +reg byte a [ main::$0 ] +reg byte a [ main::$4 ] +zp ZP_BYTE:2 [ main::$8 ] +zp ZP_BYTE:3 [ main::$9 ] +zp ZP_BYTE:4 [ main::$14 ] +zp ZP_BYTE:5 [ main::$15 ] diff --git a/src/test/ref/condition-type-mismatch.sym b/src/test/ref/condition-type-mismatch.sym index 1daabbadc..bf525af99 100644 --- a/src/test/ref/condition-type-mismatch.sym +++ b/src/test/ref/condition-type-mismatch.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::b +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/consolidate-array-index-problem.sym b/src/test/ref/consolidate-array-index-problem.sym index 1daabbadc..0e020477a 100644 --- a/src/test/ref/consolidate-array-index-problem.sym +++ b/src/test/ref/consolidate-array-index-problem.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::BLACK +(const byte) main::BLACK#0 BLACK = (byte) 0 +(byte*) main::cols +(const byte*) main::cols#0 cols = (byte*) 55296 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 +(byte) main::x +(byte) main::x#1 reg byte y 16.5 +(byte) main::x#2 reg byte y 8.25 +(byte) main::y +(byte) main::y#0 reg byte x 16.5 + +reg byte y [ main::x#2 main::x#1 ] +reg byte x [ main::y#0 ] diff --git a/src/test/ref/consolidate-constant-problem.sym b/src/test/ref/consolidate-constant-problem.sym index 1daabbadc..206bd47d3 100644 --- a/src/test/ref/consolidate-constant-problem.sym +++ b/src/test/ref/consolidate-constant-problem.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@1_1 +(label) main::@return +(byte) main::j +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/const-condition.sym b/src/test/ref/const-condition.sym index 1daabbadc..6651ff455 100644 --- a/src/test/ref/const-condition.sym +++ b/src/test/ref/const-condition.sym @@ -1 +1,9 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 + diff --git a/src/test/ref/const-early-identification.sym b/src/test/ref/const-early-identification.sym index 1daabbadc..d2beadb06 100644 --- a/src/test/ref/const-early-identification.sym +++ b/src/test/ref/const-early-identification.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) A +(byte) A#0 A zp ZP_BYTE:2 1.0 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return +(byte) main::B +(const byte) main::B#0 B = (byte) 'b' +(byte*) main::addrA +(const byte*) main::addrA#0 addrA = &(byte) A#0 +(void()) sub() +(label) sub::@return +(byte) sub::C +(const byte) sub::C#0 C = (byte) 'c' +(byte) sub::D +(byte) sub::D#0 reg byte x 4.0 + +zp ZP_BYTE:2 [ A#0 ] +reg byte x [ sub::D#0 ] diff --git a/src/test/ref/const-identification.sym b/src/test/ref/const-identification.sym index 1daabbadc..a4ec66ec2 100644 --- a/src/test/ref/const-identification.sym +++ b/src/test/ref/const-identification.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) line((byte) line::x0 , (byte) line::x1) +(label) line::@1 +(label) line::@2 +(label) line::@return +(byte) line::x +(byte) line::x#1 reg byte y 151.5 +(byte) line::x#2 reg byte y 101.0 +(byte) line::x0 +(const byte) line::x0#0 x0 = (byte) 0 +(byte) line::x1 +(const byte) line::x1#0 x1 = (byte) $a +(void()) main() +(label) main::@1 +(label) main::@2 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 18.333333333333332 +(void()) plot((byte) plot::x) +(byte~) plot::$0 reg byte a 4.0 +(label) plot::@return +(byte) plot::idx +(byte) plot::idx#0 reg byte x 3.0 +(byte) plot::x +(byte) plot::x#1 reg byte y 103.0 +(byte*) plots +(const byte*) plots#0 plots = (byte*) 4096 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ line::x#2 line::x#1 ] +reg byte y [ plot::x#1 ] +reg byte x [ plot::idx#0 ] +reg byte a [ plot::$0 ] diff --git a/src/test/ref/const-if-problem.sym b/src/test/ref/const-if-problem.sym index 1daabbadc..db98cf08d 100644 --- a/src/test/ref/const-if-problem.sym +++ b/src/test/ref/const-if-problem.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) cc +(void()) main() +(label) main::@1 +(label) main::@return + diff --git a/src/test/ref/const-int-cast-problem.sym b/src/test/ref/const-int-cast-problem.sym index 1daabbadc..694dbaa0d 100644 --- a/src/test/ref/const-int-cast-problem.sym +++ b/src/test/ref/const-int-cast-problem.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 14.666666666666666 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$0 ] diff --git a/src/test/ref/const-mult-div.sym b/src/test/ref/const-mult-div.sym index 1daabbadc..45fd4bdf9 100644 --- a/src/test/ref/const-mult-div.sym +++ b/src/test/ref/const-mult-div.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte) main::b +(const byte) main::b#0 b = (number) 6*(number) $e/(number) 3+(number) $16%(number) 3 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/const-param.sym b/src/test/ref/const-param.sym index 1daabbadc..504db3a10 100644 --- a/src/test/ref/const-param.sym +++ b/src/test/ref/const-param.sym @@ -1 +1,34 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 4.0 +(byte~) main::$1 reg byte a 4.0 +(byte~) main::$2 reg byte a 4.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::reverse +(const byte) main::reverse#0 reverse = (byte) $80 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 +(byte()) sum((byte) sum::a , (byte) sum::b) +(label) sum::@return +(byte) sum::a +(byte) sum::b +(byte) sum::b#3 reg byte a 2.0 +(byte) sum::return +(byte) sum::return#0 reg byte a 4.0 +(byte) sum::return#1 reg byte a 4.0 +(byte) sum::return#2 reg byte a 4.0 +(byte) sum::return#3 reg byte a 1.6 + +reg byte a [ sum::b#3 ] +reg byte a [ sum::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ sum::return#1 ] +reg byte a [ main::$1 ] +reg byte a [ sum::return#2 ] +reg byte a [ main::$2 ] +reg byte a [ sum::return#3 ] diff --git a/src/test/ref/const-pointer.sym b/src/test/ref/const-pointer.sym index 1daabbadc..1627f4ec0 100644 --- a/src/test/ref/const-pointer.sym +++ b/src/test/ref/const-pointer.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::NULL +(byte*) main::rem +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/const-signed-promotion.sym b/src/test/ref/const-signed-promotion.sym index 1daabbadc..d3a9efa1f 100644 --- a/src/test/ref/const-signed-promotion.sym +++ b/src/test/ref/const-signed-promotion.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(signed word*) main::screen +(const signed word*) main::screen#0 screen = (signed word*) 1024 +(signed word[3]) world +(const signed word[3]) world#0 world = { fill( 3, 0) } + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/const-word-pointer.sym b/src/test/ref/const-word-pointer.sym index 1daabbadc..5fdd1c21e 100644 --- a/src/test/ref/const-word-pointer.sym +++ b/src/test/ref/const-word-pointer.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 4.0 +(byte~) main::$2 reg byte a 4.0 +(byte~) main::$3 reg byte a 4.0 +(byte~) main::$4 reg byte a 4.0 +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 +(word) main::w +(word) main::w#0 w zp ZP_WORD:2 20.0 +(word*) main::wp +(const word*) main::wp#0 wp = &(word) main::w#0 + +zp ZP_WORD:2 [ main::w#0 ] +reg byte a [ main::$1 ] +reg byte a [ main::$2 ] +reg byte a [ main::$3 ] +reg byte a [ main::$4 ] diff --git a/src/test/ref/constabsmin.sym b/src/test/ref/constabsmin.sym index 1daabbadc..d0863c4b5 100644 --- a/src/test/ref/constabsmin.sym +++ b/src/test/ref/constabsmin.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/constant-string-concat-0.sym b/src/test/ref/constant-string-concat-0.sym index 1daabbadc..b34f2fc0d 100644 --- a/src/test/ref/constant-string-concat-0.sym +++ b/src/test/ref/constant-string-concat-0.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte[]) main::msg +(const byte[]) main::msg#0 msg = (string) "camelot@" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constant-string-concat.sym b/src/test/ref/constant-string-concat.sym index 1daabbadc..0ca1bd40d 100644 --- a/src/test/ref/constant-string-concat.sym +++ b/src/test/ref/constant-string-concat.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte[]) main::s +(const byte[]) main::s#0 s = (string) "camelot@" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constantmin.sym b/src/test/ref/constantmin.sym index 1daabbadc..569b19fa2 100644 --- a/src/test/ref/constantmin.sym +++ b/src/test/ref/constantmin.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) STAR +(const byte) STAR#0 STAR = (byte) $51 +(byte*) VIC +(const byte*) VIC#0 VIC = (byte*) 53248 +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 16.5 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constants.sym b/src/test/ref/constants.sym index 1daabbadc..69b4df879 100644 --- a/src/test/ref/constants.sym +++ b/src/test/ref/constants.sym @@ -1 +1,116 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(void()) assert_byte((byte*) assert_byte::msg , (byte) assert_byte::b , (byte) assert_byte::c) +(label) assert_byte::@1 +(label) assert_byte::@2 +(label) assert_byte::@3 +(label) assert_byte::@4 +(label) assert_byte::@5 +(label) assert_byte::@return +(byte) assert_byte::b +(byte) assert_byte::b#3 reg byte x 0.4 +(byte) assert_byte::c +(byte) assert_byte::c#3 c zp ZP_BYTE:9 0.4 +(byte*) assert_byte::msg +(byte*) assert_byte::msg#3 msg zp ZP_WORD:2 2.0 +(void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyte::b , (signed byte) assert_sbyte::c) +(label) assert_sbyte::@1 +(label) assert_sbyte::@2 +(label) assert_sbyte::@3 +(label) assert_sbyte::@4 +(label) assert_sbyte::@5 +(label) assert_sbyte::@return +(signed byte) assert_sbyte::b +(signed byte) assert_sbyte::b#5 reg byte x 0.3333333333333333 +(signed byte) assert_sbyte::c +(signed byte) assert_sbyte::c#5 c zp ZP_BYTE:4 0.3333333333333333 +(byte*) assert_sbyte::msg +(byte*) assert_sbyte::msg#5 msg zp ZP_WORD:2 2.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(const string) msg msg = (string) "0=0@" +(const string) msg1 msg1 = (string) "0+2=2@" +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 11.0 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:5 2.230769230769231 +(byte*) print_char_cursor#70 print_char_cursor zp ZP_WORD:5 3.0 +(byte*) print_char_cursor#80 print_char_cursor zp ZP_WORD:5 18.0 +(byte*~) print_char_cursor#86 print_char_cursor zp ZP_WORD:5 4.0 +(byte*~) print_char_cursor#92 print_char_cursor zp ZP_WORD:5 4.0 +(byte*~) print_char_cursor#93 print_char_cursor zp ZP_WORD:5 4.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:10 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:10 16.5 +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:7 1.2500000000000002 +(byte*) print_line_cursor#24 print_line_cursor zp ZP_WORD:7 24.0 +(byte*) print_line_cursor#47 print_line_cursor zp ZP_WORD:7 6.0 +(byte*) print_line_cursor#50 print_line_cursor zp ZP_WORD:7 0.5454545454545454 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:2 22.0 +(byte*) print_str::str#1 str zp ZP_WORD:2 4.0 +(byte*) print_str::str#10 str zp ZP_WORD:2 11.5 +(byte*) print_str::str#11 str zp ZP_WORD:2 6.0 +(byte*) print_str::str#5 str zp ZP_WORD:2 2.0 +(const string) str str = (string) " @" +(const string) str1 str1 = (string) "fail!@" +(const string) str2 str2 = (string) "ok@" +(void()) test_bytes() +(label) test_bytes::@1 +(label) test_bytes::@2 +(label) test_bytes::@return +(byte) test_bytes::bb +(const byte) test_bytes::bb#0 bb = (byte) 0 +(byte) test_bytes::bc +(const byte) test_bytes::bc#0 bc = (byte) 2 +(byte) test_bytes::bd +(const byte) test_bytes::bd#0 bd = (byte)(signed byte)(const byte) test_bytes::bc#0-(signed byte) 4 +(const string) test_bytes::msg2 msg2 = (string) "0+2-4=254@" +(void()) test_sbytes() +(label) test_sbytes::@1 +(label) test_sbytes::@2 +(label) test_sbytes::@3 +(label) test_sbytes::@4 +(label) test_sbytes::@return +(signed byte) test_sbytes::bb +(const signed byte) test_sbytes::bb#0 bb = (signed byte) 0 +(signed byte) test_sbytes::bc +(const signed byte) test_sbytes::bc#0 bc = (signed byte) 2 +(signed byte) test_sbytes::bd +(const signed byte) test_sbytes::bd#0 bd = (const signed byte) test_sbytes::bc#0-(signed byte) 4 +(signed byte) test_sbytes::be +(const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0 +(signed byte) test_sbytes::bf +(const signed byte) test_sbytes::bf#0 bf = (signed byte)(number) -$7f-(number) $7f +(const string) test_sbytes::msg2 msg2 = (string) "0+2-4=-2@" +(const string) test_sbytes::msg3 msg3 = (string) "-(0+2-4)=2@" +(const string) test_sbytes::msg4 msg4 = (string) "-127-127=2@" + +zp ZP_WORD:2 [ assert_sbyte::msg#5 print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 assert_byte::msg#3 ] +reg byte x [ assert_sbyte::b#5 ] +zp ZP_BYTE:4 [ assert_sbyte::c#5 ] +zp ZP_WORD:5 [ print_char_cursor#80 print_char_cursor#70 print_char_cursor#2 print_char_cursor#86 print_char_cursor#1 print_char_cursor#92 print_char_cursor#93 ] +zp ZP_WORD:7 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#50 print_line_cursor#1 ] +reg byte x [ assert_byte::b#3 ] +zp ZP_BYTE:9 [ assert_byte::c#3 ] +zp ZP_WORD:10 [ print_cls::sc#2 print_cls::sc#1 ] diff --git a/src/test/ref/deep-nesting.sym b/src/test/ref/deep-nesting.sym index 1daabbadc..7b2953c43 100644 --- a/src/test/ref/deep-nesting.sym +++ b/src/test/ref/deep-nesting.sym @@ -1 +1,508 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte()) f1((byte) f1::x) +(label) f1::@return +(byte) f1::return +(const byte) f1::return#1 return = (const byte) f2::return#1+(byte) 1 +(byte) f1::x +(byte()) f10((byte) f10::x) +(label) f10::@return +(byte) f10::return +(const byte) f10::return#1 return = (const byte) f11::return#1+(byte) 1 +(byte) f10::x +(byte()) f100((byte) f100::x) +(label) f100::@return +(byte) f100::return +(byte) f100::x +(byte()) f11((byte) f11::x) +(label) f11::@return +(byte) f11::return +(const byte) f11::return#1 return = (const byte) f12::return#1+(byte) 1 +(byte) f11::x +(byte()) f12((byte) f12::x) +(label) f12::@return +(byte) f12::return +(const byte) f12::return#1 return = (const byte) f13::return#1+(byte) 1 +(byte) f12::x +(byte()) f13((byte) f13::x) +(label) f13::@return +(byte) f13::return +(const byte) f13::return#1 return = (const byte) f14::return#1+(byte) 1 +(byte) f13::x +(byte()) f14((byte) f14::x) +(label) f14::@return +(byte) f14::return +(const byte) f14::return#1 return = (const byte) f15::return#1+(byte) 1 +(byte) f14::x +(byte()) f15((byte) f15::x) +(label) f15::@return +(byte) f15::return +(const byte) f15::return#1 return = (const byte) f16::return#1+(byte) 1 +(byte) f15::x +(byte()) f16((byte) f16::x) +(label) f16::@return +(byte) f16::return +(const byte) f16::return#1 return = (const byte) f17::return#1+(byte) 1 +(byte) f16::x +(byte()) f17((byte) f17::x) +(label) f17::@return +(byte) f17::return +(const byte) f17::return#1 return = (const byte) f18::return#1+(byte) 1 +(byte) f17::x +(byte()) f18((byte) f18::x) +(label) f18::@return +(byte) f18::return +(const byte) f18::return#1 return = (const byte) f19::return#1+(byte) 1 +(byte) f18::x +(byte()) f19((byte) f19::x) +(label) f19::@return +(byte) f19::return +(const byte) f19::return#1 return = (const byte) f20::return#1+(byte) 1 +(byte) f19::x +(byte()) f2((byte) f2::x) +(label) f2::@return +(byte) f2::return +(const byte) f2::return#1 return = (const byte) f3::return#1+(byte) 1 +(byte) f2::x +(byte()) f20((byte) f20::x) +(label) f20::@return +(byte) f20::return +(const byte) f20::return#1 return = (const byte) f21::return#1+(byte) 1 +(byte) f20::x +(byte()) f21((byte) f21::x) +(label) f21::@return +(byte) f21::return +(const byte) f21::return#1 return = (const byte) f22::return#1+(byte) 1 +(byte) f21::x +(byte()) f22((byte) f22::x) +(label) f22::@return +(byte) f22::return +(const byte) f22::return#1 return = (const byte) f23::return#1+(byte) 1 +(byte) f22::x +(byte()) f23((byte) f23::x) +(label) f23::@return +(byte) f23::return +(const byte) f23::return#1 return = (const byte) f24::return#1+(byte) 1 +(byte) f23::x +(byte()) f24((byte) f24::x) +(label) f24::@return +(byte) f24::return +(const byte) f24::return#1 return = (const byte) f25::return#1+(byte) 1 +(byte) f24::x +(byte()) f25((byte) f25::x) +(label) f25::@return +(byte) f25::return +(const byte) f25::return#1 return = (const byte) f26::return#1+(byte) 1 +(byte) f25::x +(byte()) f26((byte) f26::x) +(label) f26::@return +(byte) f26::return +(const byte) f26::return#1 return = (const byte) f27::return#1+(byte) 1 +(byte) f26::x +(byte()) f27((byte) f27::x) +(label) f27::@return +(byte) f27::return +(const byte) f27::return#1 return = (const byte) f28::return#1+(byte) 1 +(byte) f27::x +(byte()) f28((byte) f28::x) +(label) f28::@return +(byte) f28::return +(const byte) f28::return#1 return = (const byte) f29::return#1+(byte) 1 +(byte) f28::x +(byte()) f29((byte) f29::x) +(label) f29::@return +(byte) f29::return +(const byte) f29::return#1 return = (const byte) f30::return#1+(byte) 1 +(byte) f29::x +(byte()) f3((byte) f3::x) +(label) f3::@return +(byte) f3::return +(const byte) f3::return#1 return = (const byte) f4::return#1+(byte) 1 +(byte) f3::x +(byte()) f30((byte) f30::x) +(label) f30::@return +(byte) f30::return +(const byte) f30::return#1 return = (const byte) f31::return#1+(byte) 1 +(byte) f30::x +(byte()) f31((byte) f31::x) +(label) f31::@return +(byte) f31::return +(const byte) f31::return#1 return = (const byte) f32::return#1+(byte) 1 +(byte) f31::x +(byte()) f32((byte) f32::x) +(label) f32::@return +(byte) f32::return +(const byte) f32::return#1 return = (const byte) f33::return#1+(byte) 1 +(byte) f32::x +(byte()) f33((byte) f33::x) +(label) f33::@return +(byte) f33::return +(const byte) f33::return#1 return = (const byte) f34::return#1+(byte) 1 +(byte) f33::x +(byte()) f34((byte) f34::x) +(label) f34::@return +(byte) f34::return +(const byte) f34::return#1 return = (const byte) f35::return#1+(byte) 1 +(byte) f34::x +(byte()) f35((byte) f35::x) +(label) f35::@return +(byte) f35::return +(const byte) f35::return#1 return = (const byte) f36::return#1+(byte) 1 +(byte) f35::x +(byte()) f36((byte) f36::x) +(label) f36::@return +(byte) f36::return +(const byte) f36::return#1 return = (const byte) f37::return#1+(byte) 1 +(byte) f36::x +(byte()) f37((byte) f37::x) +(label) f37::@return +(byte) f37::return +(const byte) f37::return#1 return = (const byte) f38::return#1+(byte) 1 +(byte) f37::x +(byte()) f38((byte) f38::x) +(label) f38::@return +(byte) f38::return +(const byte) f38::return#1 return = (const byte) f39::return#1+(byte) 1 +(byte) f38::x +(byte()) f39((byte) f39::x) +(label) f39::@return +(byte) f39::return +(const byte) f39::return#1 return = (const byte) f40::return#1+(byte) 1 +(byte) f39::x +(byte()) f4((byte) f4::x) +(label) f4::@return +(byte) f4::return +(const byte) f4::return#1 return = (const byte) f5::return#1+(byte) 1 +(byte) f4::x +(byte()) f40((byte) f40::x) +(label) f40::@return +(byte) f40::return +(const byte) f40::return#1 return = (const byte) f41::return#1+(byte) 1 +(byte) f40::x +(byte()) f41((byte) f41::x) +(label) f41::@return +(byte) f41::return +(const byte) f41::return#1 return = (const byte) f42::return#1+(byte) 1 +(byte) f41::x +(byte()) f42((byte) f42::x) +(label) f42::@return +(byte) f42::return +(const byte) f42::return#1 return = (const byte) f43::return#1+(byte) 1 +(byte) f42::x +(byte()) f43((byte) f43::x) +(label) f43::@return +(byte) f43::return +(const byte) f43::return#1 return = (const byte) f44::return#1+(byte) 1 +(byte) f43::x +(byte()) f44((byte) f44::x) +(label) f44::@return +(byte) f44::return +(const byte) f44::return#1 return = (const byte) f45::return#1+(byte) 1 +(byte) f44::x +(byte()) f45((byte) f45::x) +(label) f45::@return +(byte) f45::return +(const byte) f45::return#1 return = (const byte) f46::return#1+(byte) 1 +(byte) f45::x +(byte()) f46((byte) f46::x) +(label) f46::@return +(byte) f46::return +(const byte) f46::return#1 return = (const byte) f47::return#1+(byte) 1 +(byte) f46::x +(byte()) f47((byte) f47::x) +(label) f47::@return +(byte) f47::return +(const byte) f47::return#1 return = (const byte) f48::return#1+(byte) 1 +(byte) f47::x +(byte()) f48((byte) f48::x) +(label) f48::@return +(byte) f48::return +(const byte) f48::return#1 return = (const byte) f49::return#1+(byte) 1 +(byte) f48::x +(byte()) f49((byte) f49::x) +(label) f49::@return +(byte) f49::return +(const byte) f49::return#1 return = (const byte) f50::return#1+(byte) 1 +(byte) f49::x +(byte()) f5((byte) f5::x) +(label) f5::@return +(byte) f5::return +(const byte) f5::return#1 return = (const byte) f6::return#1+(byte) 1 +(byte) f5::x +(byte()) f50((byte) f50::x) +(label) f50::@return +(byte) f50::return +(const byte) f50::return#1 return = (const byte) f51::return#1+(byte) 1 +(byte) f50::x +(byte()) f51((byte) f51::x) +(label) f51::@return +(byte) f51::return +(const byte) f51::return#1 return = (const byte) f52::return#1+(byte) 1 +(byte) f51::x +(byte()) f52((byte) f52::x) +(label) f52::@return +(byte) f52::return +(const byte) f52::return#1 return = (const byte) f53::return#1+(byte) 1 +(byte) f52::x +(byte()) f53((byte) f53::x) +(label) f53::@return +(byte) f53::return +(const byte) f53::return#1 return = (const byte) f54::return#1+(byte) 1 +(byte) f53::x +(byte()) f54((byte) f54::x) +(label) f54::@return +(byte) f54::return +(const byte) f54::return#1 return = (const byte) f55::return#1+(byte) 1 +(byte) f54::x +(byte()) f55((byte) f55::x) +(label) f55::@return +(byte) f55::return +(const byte) f55::return#1 return = (const byte) f56::return#1+(byte) 1 +(byte) f55::x +(byte()) f56((byte) f56::x) +(label) f56::@return +(byte) f56::return +(const byte) f56::return#1 return = (const byte) f57::return#1+(byte) 1 +(byte) f56::x +(byte()) f57((byte) f57::x) +(label) f57::@return +(byte) f57::return +(const byte) f57::return#1 return = (const byte) f58::return#1+(byte) 1 +(byte) f57::x +(byte()) f58((byte) f58::x) +(label) f58::@return +(byte) f58::return +(const byte) f58::return#1 return = (const byte) f59::return#1+(byte) 1 +(byte) f58::x +(byte()) f59((byte) f59::x) +(label) f59::@return +(byte) f59::return +(const byte) f59::return#1 return = (const byte) f60::return#1+(byte) 1 +(byte) f59::x +(byte()) f6((byte) f6::x) +(label) f6::@return +(byte) f6::return +(const byte) f6::return#1 return = (const byte) f7::return#1+(byte) 1 +(byte) f6::x +(byte()) f60((byte) f60::x) +(label) f60::@return +(byte) f60::return +(const byte) f60::return#1 return = (const byte) f61::return#1+(byte) 1 +(byte) f60::x +(byte()) f61((byte) f61::x) +(label) f61::@return +(byte) f61::return +(const byte) f61::return#1 return = (const byte) f62::return#1+(byte) 1 +(byte) f61::x +(byte()) f62((byte) f62::x) +(label) f62::@return +(byte) f62::return +(const byte) f62::return#1 return = (const byte) f63::return#1+(byte) 1 +(byte) f62::x +(byte()) f63((byte) f63::x) +(label) f63::@return +(byte) f63::return +(const byte) f63::return#1 return = (const byte) f64::return#1+(byte) 1 +(byte) f63::x +(byte()) f64((byte) f64::x) +(label) f64::@return +(byte) f64::return +(const byte) f64::return#1 return = (const byte) f65::return#1+(byte) 1 +(byte) f64::x +(byte()) f65((byte) f65::x) +(label) f65::@return +(byte) f65::return +(const byte) f65::return#1 return = (const byte) f66::return#1+(byte) 1 +(byte) f65::x +(byte()) f66((byte) f66::x) +(label) f66::@return +(byte) f66::return +(const byte) f66::return#1 return = (const byte) f67::return#1+(byte) 1 +(byte) f66::x +(byte()) f67((byte) f67::x) +(label) f67::@return +(byte) f67::return +(const byte) f67::return#1 return = (const byte) f68::return#1+(byte) 1 +(byte) f67::x +(byte()) f68((byte) f68::x) +(label) f68::@return +(byte) f68::return +(const byte) f68::return#1 return = (const byte) f69::return#1+(byte) 1 +(byte) f68::x +(byte()) f69((byte) f69::x) +(label) f69::@return +(byte) f69::return +(const byte) f69::return#1 return = (const byte) f70::return#1+(byte) 1 +(byte) f69::x +(byte()) f7((byte) f7::x) +(label) f7::@return +(byte) f7::return +(const byte) f7::return#1 return = (const byte) f8::return#1+(byte) 1 +(byte) f7::x +(byte()) f70((byte) f70::x) +(label) f70::@return +(byte) f70::return +(const byte) f70::return#1 return = (const byte) f71::return#1+(byte) 1 +(byte) f70::x +(byte()) f71((byte) f71::x) +(label) f71::@return +(byte) f71::return +(const byte) f71::return#1 return = (const byte) f72::return#1+(byte) 1 +(byte) f71::x +(byte()) f72((byte) f72::x) +(label) f72::@return +(byte) f72::return +(const byte) f72::return#1 return = (const byte) f73::return#1+(byte) 1 +(byte) f72::x +(byte()) f73((byte) f73::x) +(label) f73::@return +(byte) f73::return +(const byte) f73::return#1 return = (const byte) f74::return#1+(byte) 1 +(byte) f73::x +(byte()) f74((byte) f74::x) +(label) f74::@return +(byte) f74::return +(const byte) f74::return#1 return = (const byte) f75::return#1+(byte) 1 +(byte) f74::x +(byte()) f75((byte) f75::x) +(label) f75::@return +(byte) f75::return +(const byte) f75::return#1 return = (const byte) f76::return#1+(byte) 1 +(byte) f75::x +(byte()) f76((byte) f76::x) +(label) f76::@return +(byte) f76::return +(const byte) f76::return#1 return = (const byte) f77::return#1+(byte) 1 +(byte) f76::x +(byte()) f77((byte) f77::x) +(label) f77::@return +(byte) f77::return +(const byte) f77::return#1 return = (const byte) f78::return#1+(byte) 1 +(byte) f77::x +(byte()) f78((byte) f78::x) +(label) f78::@return +(byte) f78::return +(const byte) f78::return#1 return = (const byte) f79::return#1+(byte) 1 +(byte) f78::x +(byte()) f79((byte) f79::x) +(label) f79::@return +(byte) f79::return +(const byte) f79::return#1 return = (const byte) f80::return#1+(byte) 1 +(byte) f79::x +(byte()) f8((byte) f8::x) +(label) f8::@return +(byte) f8::return +(const byte) f8::return#1 return = (const byte) f9::return#1+(byte) 1 +(byte) f8::x +(byte()) f80((byte) f80::x) +(label) f80::@return +(byte) f80::return +(const byte) f80::return#1 return = (const byte) f81::return#1+(byte) 1 +(byte) f80::x +(byte()) f81((byte) f81::x) +(label) f81::@return +(byte) f81::return +(const byte) f81::return#1 return = (const byte) f82::return#1+(byte) 1 +(byte) f81::x +(byte()) f82((byte) f82::x) +(label) f82::@return +(byte) f82::return +(const byte) f82::return#1 return = (const byte) f83::return#1+(byte) 1 +(byte) f82::x +(byte()) f83((byte) f83::x) +(label) f83::@return +(byte) f83::return +(const byte) f83::return#1 return = (const byte) f84::return#1+(byte) 1 +(byte) f83::x +(byte()) f84((byte) f84::x) +(label) f84::@return +(byte) f84::return +(const byte) f84::return#1 return = (const byte) f85::return#1+(byte) 1 +(byte) f84::x +(byte()) f85((byte) f85::x) +(label) f85::@return +(byte) f85::return +(const byte) f85::return#1 return = (const byte) f86::return#1+(byte) 1 +(byte) f85::x +(byte()) f86((byte) f86::x) +(label) f86::@return +(byte) f86::return +(const byte) f86::return#1 return = (const byte) f87::return#1+(byte) 1 +(byte) f86::x +(byte()) f87((byte) f87::x) +(label) f87::@return +(byte) f87::return +(const byte) f87::return#1 return = (const byte) f88::return#1+(byte) 1 +(byte) f87::x +(byte()) f88((byte) f88::x) +(label) f88::@return +(byte) f88::return +(const byte) f88::return#1 return = (const byte) f89::return#1+(byte) 1 +(byte) f88::x +(byte()) f89((byte) f89::x) +(label) f89::@return +(byte) f89::return +(const byte) f89::return#1 return = (const byte) f90::return#1+(byte) 1 +(byte) f89::x +(byte()) f9((byte) f9::x) +(label) f9::@return +(byte) f9::return +(const byte) f9::return#1 return = (const byte) f10::return#1+(byte) 1 +(byte) f9::x +(byte()) f90((byte) f90::x) +(label) f90::@return +(byte) f90::return +(const byte) f90::return#1 return = (const byte) f91::return#1+(byte) 1 +(byte) f90::x +(byte()) f91((byte) f91::x) +(label) f91::@return +(byte) f91::return +(const byte) f91::return#1 return = (const byte) f92::return#1+(byte) 1 +(byte) f91::x +(byte()) f92((byte) f92::x) +(label) f92::@return +(byte) f92::return +(const byte) f92::return#1 return = (const byte) f93::return#1+(byte) 1 +(byte) f92::x +(byte()) f93((byte) f93::x) +(label) f93::@return +(byte) f93::return +(const byte) f93::return#1 return = (const byte) f94::return#1+(byte) 1 +(byte) f93::x +(byte()) f94((byte) f94::x) +(label) f94::@return +(byte) f94::return +(const byte) f94::return#1 return = (const byte) f95::return#1+(byte) 1 +(byte) f94::x +(byte()) f95((byte) f95::x) +(label) f95::@return +(byte) f95::return +(const byte) f95::return#1 return = (const byte) f96::return#1+(byte) 1 +(byte) f95::x +(byte()) f96((byte) f96::x) +(label) f96::@return +(byte) f96::return +(const byte) f96::return#1 return = (const byte) f97::return#1+(byte) 1 +(byte) f96::x +(byte()) f97((byte) f97::x) +(label) f97::@return +(byte) f97::return +(const byte) f97::return#1 return = (const byte) f98::return#1+(byte) 1 +(byte) f97::x +(byte()) f98((byte) f98::x) +(label) f98::@return +(byte) f98::return +(const byte) f98::return#1 return = (const byte) f99::return#1+(byte) 1 +(byte) f98::x +(byte()) f99((byte) f99::x) +(label) f99::@return +(byte) f99::return +(const byte) f99::return#1 return = (byte) 1 +(byte) f99::x +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/deref-to-derefidx-2.sym b/src/test/ref/deref-to-derefidx-2.sym index 1daabbadc..b75d9e6fb 100644 --- a/src/test/ref/deref-to-derefidx-2.sym +++ b/src/test/ref/deref-to-derefidx-2.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(word*) SCREEN +(const word*) SCREEN#0 SCREEN = (word*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(byte[]) msg1 +(const byte[]) msg1#0 msg1 = { (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd' } +(byte[]) msg2 +(const byte[]) msg2#0 msg2 = { (byte) '1', (byte) '2', (byte) '3', (byte) '4' } +(void()) print((byte*) print::m) +(byte~) print::$2 reg byte a 4.0 +(label) print::@return +(byte*) print::m +(byte*) print::m#2 m zp ZP_WORD:2 +(byte) screen_idx +(byte) screen_idx#10 screen_idx zp ZP_BYTE:4 2.0 +(byte) screen_idx#11 screen_idx zp ZP_BYTE:4 1.0 + +zp ZP_WORD:2 [ print::m#2 ] +zp ZP_BYTE:4 [ screen_idx#10 screen_idx#11 ] +reg byte a [ print::$2 ] diff --git a/src/test/ref/deref-to-derefidx.sym b/src/test/ref/deref-to-derefidx.sym index 1daabbadc..7b5671477 100644 --- a/src/test/ref/deref-to-derefidx.sym +++ b/src/test/ref/deref-to-derefidx.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) idx +(byte) idx#10 reg byte x 3.0 +(byte) idx#11 reg byte x 1.0 +(void()) main() +(label) main::@1 +(label) main::@return +(byte[]) msg1 +(const byte[]) msg1#0 msg1 = { (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd' } +(byte[]) msg2 +(const byte[]) msg2#0 msg2 = { (byte) '1', (byte) '2', (byte) '3', (byte) '4' } +(void()) print((byte*) print::m) +(label) print::@return +(byte*) print::m +(byte*) print::m#2 m zp ZP_WORD:2 2.0 + +zp ZP_WORD:2 [ print::m#2 ] +reg byte x [ idx#10 idx#11 ] diff --git a/src/test/ref/derefidx-word-0.sym b/src/test/ref/derefidx-word-0.sym index 1daabbadc..1b22bbfcc 100644 --- a/src/test/ref/derefidx-word-0.sym +++ b/src/test/ref/derefidx-word-0.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte*~) main::$1 $1 zp ZP_WORD:4 22.0 +(label) main::@1 +(label) main::@return +(word) main::i +(word) main::i#1 i zp ZP_WORD:2 16.5 +(word) main::i#2 i zp ZP_WORD:2 11.0 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +zp ZP_WORD:2 [ main::i#2 main::i#1 ] +zp ZP_WORD:4 [ main::$1 ] diff --git a/src/test/ref/derefidx-word-1.sym b/src/test/ref/derefidx-word-1.sym index 1daabbadc..315cb177a 100644 --- a/src/test/ref/derefidx-word-1.sym +++ b/src/test/ref/derefidx-word-1.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/derefidx-word-2.sym b/src/test/ref/derefidx-word-2.sym index 1daabbadc..810e78734 100644 --- a/src/test/ref/derefidx-word-2.sym +++ b/src/test/ref/derefidx-word-2.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 16.5 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/divide-2s.sym b/src/test/ref/divide-2s.sym index 1daabbadc..014c6b103 100644 --- a/src/test/ref/divide-2s.sym +++ b/src/test/ref/divide-2s.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$11 reg byte a 22.0 +(signed byte~) main::$16 reg byte a 11.0 +(byte~) main::$5 reg byte a 22.0 +(byte~) main::$8 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(signed byte) main::sb +(signed byte) main::sb#0 reg byte a 22.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$5 ] +reg byte a [ main::$8 ] +reg byte a [ main::$11 ] +reg byte a [ main::sb#0 ] +reg byte a [ main::$16 ] diff --git a/src/test/ref/double-assignment.sym b/src/test/ref/double-assignment.sym index 1daabbadc..074692d62 100644 --- a/src/test/ref/double-assignment.sym +++ b/src/test/ref/double-assignment.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte) main::a +(const byte) main::a#1 a = (byte) $c +(byte) main::b +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/double-import.sym b/src/test/ref/double-import.sym index 1daabbadc..084afcda3 100644 --- a/src/test/ref/double-import.sym +++ b/src/test/ref/double-import.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/double-indexing-arrays.sym b/src/test/ref/double-indexing-arrays.sym index 1daabbadc..169f3ed12 100644 --- a/src/test/ref/double-indexing-arrays.sym +++ b/src/test/ref/double-indexing-arrays.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[$100]) COLORMAP1 +(const byte[$100]) COLORMAP1#0 COLORMAP1 = { fill( $100, 0) } +(byte[$100]) COLORMAP2 +(const byte[$100]) COLORMAP2#0 COLORMAP2 = { fill( $100, 0) } +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte[$3e8]) MAPDATA +(const byte[$3e8]) MAPDATA#0 MAPDATA = { fill( $3e8, 0) } +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::x !reg byte y +(byte) main::x#1 !reg byte y 16.5 +(byte) main::x#2 !reg byte y 22.0 + +reg byte y [ main::x#2 main::x#1 ] diff --git a/src/test/ref/duplicate-loop-problem.sym b/src/test/ref/duplicate-loop-problem.sym index 1daabbadc..907726e73 100644 --- a/src/test/ref/duplicate-loop-problem.sym +++ b/src/test/ref/duplicate-loop-problem.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) DC00 +(const byte*) DC00#0 DC00 = (byte*) 56320 +(byte) key +(byte) key#1 reg byte x 151.5 +(void()) main() +(byte~) main::$1 reg byte a 101.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 + +reg byte x [ key#1 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/dword.sym b/src/test/ref/dword.sym index 1daabbadc..78bc64e57 100644 --- a/src/test/ref/dword.sym +++ b/src/test/ref/dword.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(dword) main::a +(const dword) main::a#0 a = (dword) $ee6b2800 +(dword) main::b +(dword) main::b#0 b zp ZP_DWORD:2 11.0 +(byte) main::c +(byte) main::c#0 reg byte a 22.0 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_DWORD:2 [ main::b#0 ] +reg byte a [ main::c#0 ] diff --git a/src/test/ref/emptyblock-error.sym b/src/test/ref/emptyblock-error.sym index 1daabbadc..6ac830060 100644 --- a/src/test/ref/emptyblock-error.sym +++ b/src/test/ref/emptyblock-error.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) B +(const byte*) B#0 B = (byte*) 4096 +(void()) main() +(label) main::@1 +(void()) menu() +(label) menu::@1 +(label) menu::@return +(void()) mode() +(label) mode::@1 +(label) mode::@2 + diff --git a/src/test/ref/examples/3d/3d.sym b/src/test/ref/examples/3d/3d.sym index 1daabbadc..c7b146e72 100644 --- a/src/test/ref/examples/3d/3d.sym +++ b/src/test/ref/examples/3d/3d.sym @@ -1 +1,551 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(signed byte*) COSH +(const signed byte*) COSH#0 COSH = (const signed byte*) SINH#0+(byte) $40 +(signed byte*) COSQ +(const signed byte*) COSQ#0 COSQ = (const signed byte*) SINQ#0+(byte) $40 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) LIGHT_BLUE +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte) $e +(byte) LIGHT_GREY +(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte) $f +(signed byte*) PERSP_Z +(const signed byte*) PERSP_Z#0 PERSP_Z = (signed byte*) 10240 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(signed byte*) SINH +(const signed byte*) SINH#0 SINH = (signed byte*) 8192 +(byte*) SINH_HI +(const byte*) SINH_HI#0 SINH_HI = (byte*) 16896 +(byte*) SINH_LO +(const byte*) SINH_LO#0 SINH_LO = (byte*) 16384 +(signed byte*) SINQ +(const signed byte*) SINQ#0 SINQ = (signed byte*) 8704 +(byte*) SINQ_HI +(const byte*) SINQ_HI#0 SINQ_HI = (byte*) 17920 +(byte*) SINQ_LO +(const byte*) SINQ_LO#0 SINQ_LO = (byte*) 17408 +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = (byte*) 12288 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(void()) anim() +(byte~) anim::$10 reg byte a 202.0 +(byte~) anim::$8 reg byte a 202.0 +(label) anim::@1 +(label) anim::@10 +(label) anim::@2 +(label) anim::@3 +(label) anim::@4 +(label) anim::@5 +(label) anim::@6 +(label) anim::@7 +(label) anim::@8 +(label) anim::@9 +(byte) anim::i +(byte) anim::i#1 i zp ZP_BYTE:4 151.5 +(byte) anim::i#2 i zp ZP_BYTE:4 71.29411764705881 +(byte) anim::i2 +(byte) anim::i2#0 reg byte x 75.75 +(void()) calculate_matrix((signed byte) calculate_matrix::sx , (signed byte) calculate_matrix::sy , (signed byte) calculate_matrix::sz) +(signed byte~) calculate_matrix::$10 reg byte a 4.0 +(signed byte~) calculate_matrix::$11 reg byte a 4.0 +(signed byte~) calculate_matrix::$12 reg byte a 4.0 +(signed byte~) calculate_matrix::$13 reg byte a 4.0 +(signed byte~) calculate_matrix::$14 reg byte a 4.0 +(signed byte~) calculate_matrix::$15 reg byte a 4.0 +(signed byte~) calculate_matrix::$16 reg byte a 4.0 +(signed byte~) calculate_matrix::$17 reg byte a 4.0 +(signed byte~) calculate_matrix::$18 reg byte a 4.0 +(signed byte~) calculate_matrix::$19 reg byte a 4.0 +(signed byte~) calculate_matrix::$20 reg byte a 4.0 +(signed byte~) calculate_matrix::$21 reg byte a 4.0 +(signed byte~) calculate_matrix::$22 reg byte a 4.0 +(signed byte~) calculate_matrix::$23 reg byte a 4.0 +(signed byte~) calculate_matrix::$24 reg byte a 4.0 +(signed byte~) calculate_matrix::$25 reg byte a 4.0 +(signed byte~) calculate_matrix::$26 reg byte a 4.0 +(signed byte~) calculate_matrix::$27 reg byte a 4.0 +(signed byte~) calculate_matrix::$28 reg byte a 4.0 +(signed byte~) calculate_matrix::$29 reg byte a 4.0 +(signed byte~) calculate_matrix::$30 reg byte a 4.0 +(signed byte~) calculate_matrix::$31 reg byte a 4.0 +(signed byte~) calculate_matrix::$32 reg byte a 4.0 +(signed byte~) calculate_matrix::$33 reg byte a 4.0 +(signed byte~) calculate_matrix::$34 reg byte a 4.0 +(label) calculate_matrix::@return +(signed byte) calculate_matrix::sx +(signed byte) calculate_matrix::sx#0 reg byte x 2.4545454545454546 +(signed byte) calculate_matrix::sy +(signed byte) calculate_matrix::sy#0 sy zp ZP_BYTE:3 1.5333333333333332 +(signed byte) calculate_matrix::sz +(signed byte) calculate_matrix::t1 +(signed byte) calculate_matrix::t1#0 t1 zp ZP_BYTE:20 0.8333333333333333 +(signed byte) calculate_matrix::t10 +(signed byte) calculate_matrix::t10#0 reg byte x 0.18181818181818182 +(signed byte) calculate_matrix::t2 +(signed byte) calculate_matrix::t2#0 t2 zp ZP_BYTE:21 0.9090909090909092 +(signed byte) calculate_matrix::t3 +(signed byte) calculate_matrix::t3#0 t3 zp ZP_BYTE:22 0.29411764705882354 +(signed byte) calculate_matrix::t4 +(signed byte) calculate_matrix::t4#0 t4 zp ZP_BYTE:23 0.30303030303030304 +(signed byte) calculate_matrix::t5 +(signed byte) calculate_matrix::t5#0 t5 zp ZP_BYTE:24 0.29411764705882354 +(signed byte) calculate_matrix::t6 +(signed byte) calculate_matrix::t6#0 t6 zp ZP_BYTE:25 0.3125 +(signed byte) calculate_matrix::t7 +(signed byte) calculate_matrix::t7#0 t7 zp ZP_BYTE:26 0.30303030303030304 +(signed byte) calculate_matrix::t8 +(signed byte) calculate_matrix::t8#0 t8 zp ZP_BYTE:27 0.30303030303030304 +(signed byte) calculate_matrix::t9 +(signed byte) calculate_matrix::t9#0 t9 zp ZP_BYTE:28 0.1764705882352941 +(void()) debug_print() +(label) debug_print::@1 +(label) debug_print::@10 +(label) debug_print::@11 +(label) debug_print::@12 +(label) debug_print::@13 +(label) debug_print::@14 +(label) debug_print::@15 +(label) debug_print::@16 +(label) debug_print::@17 +(label) debug_print::@2 +(label) debug_print::@3 +(label) debug_print::@4 +(label) debug_print::@5 +(label) debug_print::@6 +(label) debug_print::@7 +(label) debug_print::@8 +(label) debug_print::@9 +(label) debug_print::@return +(byte*) debug_print::at_line +(const byte*) debug_print::at_line#0 at_line = (const byte*) SCREEN#0+(word)(number) $13*(number) $28 +(byte) debug_print::c +(byte) debug_print::c#1 c zp ZP_BYTE:5 67.33333333333333 +(byte) debug_print::c#2 c zp ZP_BYTE:5 42.52631578947369 +(byte) debug_print::i +(byte) debug_print::i#1 i zp ZP_BYTE:6 151.5 +(byte) debug_print::i#2 i zp ZP_BYTE:6 40.4 +(label) debug_print::print_sbyte_pos1 +(label) debug_print::print_sbyte_pos10 +(number~) debug_print::print_sbyte_pos10_$0 +(byte*~) debug_print::print_sbyte_pos10_$1 +(byte*~) debug_print::print_sbyte_pos10_$2 +(byte) debug_print::print_sbyte_pos10_col +(const byte) debug_print::print_sbyte_pos10_col#0 print_sbyte_pos10_col = (byte) $1d +(byte) debug_print::print_sbyte_pos10_row +(const byte) debug_print::print_sbyte_pos10_row#0 print_sbyte_pos10_row = (byte) 6 +(signed byte) debug_print::print_sbyte_pos10_sb +(signed byte) debug_print::print_sbyte_pos10_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos11 +(number~) debug_print::print_sbyte_pos11_$0 +(byte*~) debug_print::print_sbyte_pos11_$1 +(byte*~) debug_print::print_sbyte_pos11_$2 +(byte) debug_print::print_sbyte_pos11_col +(const byte) debug_print::print_sbyte_pos11_col#0 print_sbyte_pos11_col = (byte) $21 +(byte) debug_print::print_sbyte_pos11_row +(const byte) debug_print::print_sbyte_pos11_row#0 print_sbyte_pos11_row = (byte) 6 +(signed byte) debug_print::print_sbyte_pos11_sb +(signed byte) debug_print::print_sbyte_pos11_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos12 +(number~) debug_print::print_sbyte_pos12_$0 +(byte*~) debug_print::print_sbyte_pos12_$1 +(byte*~) debug_print::print_sbyte_pos12_$2 +(byte) debug_print::print_sbyte_pos12_col +(const byte) debug_print::print_sbyte_pos12_col#0 print_sbyte_pos12_col = (byte) $25 +(byte) debug_print::print_sbyte_pos12_row +(const byte) debug_print::print_sbyte_pos12_row#0 print_sbyte_pos12_row = (byte) 6 +(signed byte) debug_print::print_sbyte_pos12_sb +(signed byte) debug_print::print_sbyte_pos12_sb#0 reg byte x 4.0 +(number~) debug_print::print_sbyte_pos1_$0 +(byte*~) debug_print::print_sbyte_pos1_$1 +(byte*~) debug_print::print_sbyte_pos1_$2 +(byte) debug_print::print_sbyte_pos1_col +(const byte) debug_print::print_sbyte_pos1_col#0 print_sbyte_pos1_col = (byte) $25 +(byte) debug_print::print_sbyte_pos1_row +(signed byte) debug_print::print_sbyte_pos1_sb +(signed byte) debug_print::print_sbyte_pos1_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos2 +(number~) debug_print::print_sbyte_pos2_$0 +(byte*~) debug_print::print_sbyte_pos2_$1 +(byte*~) debug_print::print_sbyte_pos2_$2 +(byte) debug_print::print_sbyte_pos2_col +(const byte) debug_print::print_sbyte_pos2_col#0 print_sbyte_pos2_col = (byte) $25 +(byte) debug_print::print_sbyte_pos2_row +(const byte) debug_print::print_sbyte_pos2_row#0 print_sbyte_pos2_row = (byte) 1 +(signed byte) debug_print::print_sbyte_pos2_sb +(signed byte) debug_print::print_sbyte_pos2_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos3 +(number~) debug_print::print_sbyte_pos3_$0 +(byte*~) debug_print::print_sbyte_pos3_$1 +(byte*~) debug_print::print_sbyte_pos3_$2 +(byte) debug_print::print_sbyte_pos3_col +(const byte) debug_print::print_sbyte_pos3_col#0 print_sbyte_pos3_col = (byte) $25 +(byte) debug_print::print_sbyte_pos3_row +(const byte) debug_print::print_sbyte_pos3_row#0 print_sbyte_pos3_row = (byte) 2 +(signed byte) debug_print::print_sbyte_pos3_sb +(label) debug_print::print_sbyte_pos4 +(number~) debug_print::print_sbyte_pos4_$0 +(byte*~) debug_print::print_sbyte_pos4_$1 +(byte*~) debug_print::print_sbyte_pos4_$2 +(byte) debug_print::print_sbyte_pos4_col +(const byte) debug_print::print_sbyte_pos4_col#0 print_sbyte_pos4_col = (byte) $1d +(byte) debug_print::print_sbyte_pos4_row +(const byte) debug_print::print_sbyte_pos4_row#0 print_sbyte_pos4_row = (byte) 4 +(signed byte) debug_print::print_sbyte_pos4_sb +(signed byte) debug_print::print_sbyte_pos4_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos5 +(number~) debug_print::print_sbyte_pos5_$0 +(byte*~) debug_print::print_sbyte_pos5_$1 +(byte*~) debug_print::print_sbyte_pos5_$2 +(byte) debug_print::print_sbyte_pos5_col +(const byte) debug_print::print_sbyte_pos5_col#0 print_sbyte_pos5_col = (byte) $21 +(byte) debug_print::print_sbyte_pos5_row +(const byte) debug_print::print_sbyte_pos5_row#0 print_sbyte_pos5_row = (byte) 4 +(signed byte) debug_print::print_sbyte_pos5_sb +(signed byte) debug_print::print_sbyte_pos5_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos6 +(number~) debug_print::print_sbyte_pos6_$0 +(byte*~) debug_print::print_sbyte_pos6_$1 +(byte*~) debug_print::print_sbyte_pos6_$2 +(byte) debug_print::print_sbyte_pos6_col +(const byte) debug_print::print_sbyte_pos6_col#0 print_sbyte_pos6_col = (byte) $25 +(byte) debug_print::print_sbyte_pos6_row +(const byte) debug_print::print_sbyte_pos6_row#0 print_sbyte_pos6_row = (byte) 4 +(signed byte) debug_print::print_sbyte_pos6_sb +(signed byte) debug_print::print_sbyte_pos6_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos7 +(number~) debug_print::print_sbyte_pos7_$0 +(byte*~) debug_print::print_sbyte_pos7_$1 +(byte*~) debug_print::print_sbyte_pos7_$2 +(byte) debug_print::print_sbyte_pos7_col +(const byte) debug_print::print_sbyte_pos7_col#0 print_sbyte_pos7_col = (byte) $1d +(byte) debug_print::print_sbyte_pos7_row +(const byte) debug_print::print_sbyte_pos7_row#0 print_sbyte_pos7_row = (byte) 5 +(signed byte) debug_print::print_sbyte_pos7_sb +(signed byte) debug_print::print_sbyte_pos7_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos8 +(number~) debug_print::print_sbyte_pos8_$0 +(byte*~) debug_print::print_sbyte_pos8_$1 +(byte*~) debug_print::print_sbyte_pos8_$2 +(byte) debug_print::print_sbyte_pos8_col +(const byte) debug_print::print_sbyte_pos8_col#0 print_sbyte_pos8_col = (byte) $21 +(byte) debug_print::print_sbyte_pos8_row +(const byte) debug_print::print_sbyte_pos8_row#0 print_sbyte_pos8_row = (byte) 5 +(signed byte) debug_print::print_sbyte_pos8_sb +(signed byte) debug_print::print_sbyte_pos8_sb#0 reg byte x 4.0 +(label) debug_print::print_sbyte_pos9 +(number~) debug_print::print_sbyte_pos9_$0 +(byte*~) debug_print::print_sbyte_pos9_$1 +(byte*~) debug_print::print_sbyte_pos9_$2 +(byte) debug_print::print_sbyte_pos9_col +(const byte) debug_print::print_sbyte_pos9_col#0 print_sbyte_pos9_col = (byte) $25 +(byte) debug_print::print_sbyte_pos9_row +(const byte) debug_print::print_sbyte_pos9_row#0 print_sbyte_pos9_row = (byte) 5 +(signed byte) debug_print::print_sbyte_pos9_sb +(signed byte) debug_print::print_sbyte_pos9_sb#0 reg byte x 4.0 +(void()) debug_print_init() +(byte*~) debug_print_init::$59 $59 zp ZP_WORD:29 202.0 +(byte*~) debug_print_init::$63 $63 zp ZP_WORD:31 202.0 +(byte*~) debug_print_init::$67 $67 zp ZP_WORD:33 202.0 +(byte*~) debug_print_init::$71 $71 zp ZP_WORD:35 202.0 +(byte*~) debug_print_init::$75 $75 zp ZP_WORD:37 202.0 +(byte*~) debug_print_init::$79 $79 zp ZP_WORD:39 202.0 +(byte*~) debug_print_init::$83 $83 zp ZP_WORD:41 202.0 +(byte*~) debug_print_init::$87 $87 zp ZP_WORD:43 202.0 +(byte*~) debug_print_init::$91 $91 zp ZP_WORD:45 202.0 +(label) debug_print_init::@1 +(label) debug_print_init::@10 +(label) debug_print_init::@11 +(label) debug_print_init::@12 +(label) debug_print_init::@13 +(label) debug_print_init::@14 +(label) debug_print_init::@15 +(label) debug_print_init::@16 +(label) debug_print_init::@17 +(label) debug_print_init::@2 +(label) debug_print_init::@3 +(label) debug_print_init::@4 +(label) debug_print_init::@5 +(label) debug_print_init::@6 +(label) debug_print_init::@7 +(label) debug_print_init::@8 +(label) debug_print_init::@9 +(label) debug_print_init::@return +(byte*) debug_print_init::COLS +(const byte*) debug_print_init::COLS#0 COLS = (byte*) 55296 +(byte*) debug_print_init::at_cols +(const byte*) debug_print_init::at_cols#0 at_cols = (const byte*) debug_print_init::COLS#0+(word)(number) $10*(number) $28 +(byte*) debug_print_init::at_line +(const byte*) debug_print_init::at_line#0 at_line = (const byte*) SCREEN#0+(word)(number) $10*(number) $28 +(byte) debug_print_init::c +(byte) debug_print_init::c#1 c zp ZP_BYTE:10 7.333333333333333 +(byte) debug_print_init::c#2 c zp ZP_BYTE:10 30.125 +(byte) debug_print_init::col +(byte) debug_print_init::col#0 reg byte x 56.111111111111114 +(byte) debug_print_init::i +(byte) debug_print_init::i#1 i zp ZP_BYTE:11 16.5 +(byte) debug_print_init::i#2 i zp ZP_BYTE:11 4.727272727272727 +(byte) debug_print_init::j +(byte) debug_print_init::j#1 reg byte y 151.5 +(byte) debug_print_init::j#2 reg byte y 55.54999999999999 +(const string) debug_print_init::str str = (string) "sx@" +(const string) debug_print_init::str1 str1 = (string) "sy@" +(const string) debug_print_init::str10 str10 = (string) "xp@" +(const string) debug_print_init::str11 str11 = (string) "yp@" +(const string) debug_print_init::str2 str2 = (string) "sz@" +(const string) debug_print_init::str3 str3 = (string) "x@" +(const string) debug_print_init::str4 str4 = (string) "y@" +(const string) debug_print_init::str5 str5 = (string) "z@" +(const string) debug_print_init::str6 str6 = (string) "xr@" +(const string) debug_print_init::str7 str7 = (string) "yr@" +(const string) debug_print_init::str8 str8 = (string) "zr@" +(const string) debug_print_init::str9 str9 = (string) "pp@" +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) mulf_sqr1 +(const byte*) mulf_sqr1#0 mulf_sqr1 = (byte*) 9216 +(byte*) mulf_sqr2 +(const byte*) mulf_sqr2#0 mulf_sqr2 = (byte*) 9728 +(signed byte*) pp +(const signed byte*) pp#0 pp = (signed byte*) 243 +(signed byte[8]) pps +(const signed byte[8]) pps#0 pps = { fill( 8, 0) } +(void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at) +(byte~) print_byte_at::$0 reg byte a 4.0 +(byte~) print_byte_at::$2 reg byte x 2.0 +(label) print_byte_at::@1 +(label) print_byte_at::@return +(byte*) print_byte_at::at +(byte*) print_byte_at::at#0 at zp ZP_WORD:7 1.0 +(byte) print_byte_at::b +(void()) print_char_at((byte) print_char_at::ch , (byte*) print_char_at::at) +(label) print_char_at::@return +(byte*) print_char_at::at +(byte*) print_char_at::at#0 at zp ZP_WORD:7 4.0 +(byte*) print_char_at::at#1 at zp ZP_WORD:7 4.0 +(byte*) print_char_at::at#2 at zp ZP_WORD:7 4.0 +(byte*) print_char_at::at#3 at zp ZP_WORD:7 2.0 +(byte*) print_char_at::at#4 at zp ZP_WORD:7 10.0 +(byte) print_char_at::ch +(byte) print_char_at::ch#2 ch zp ZP_BYTE:9 2.0 +(byte) print_char_at::ch#3 ch zp ZP_BYTE:9 4.0 +(byte) print_char_at::ch#4 ch zp ZP_BYTE:9 6.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:16 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:16 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(void()) print_sbyte_at((signed byte) print_sbyte_at::b , (byte*) print_sbyte_at::at) +(label) print_sbyte_at::@1 +(label) print_sbyte_at::@2 +(label) print_sbyte_at::@3 +(label) print_sbyte_at::@4 +(label) print_sbyte_at::@return +(byte*) print_sbyte_at::at +(byte*) print_sbyte_at::at#0 at zp ZP_WORD:7 11.0 +(byte*) print_sbyte_at::at#1 at zp ZP_WORD:7 11.0 +(byte*) print_sbyte_at::at#15 at zp ZP_WORD:7 101.0 +(byte*) print_sbyte_at::at#16 at zp ZP_WORD:7 101.0 +(byte*) print_sbyte_at::at#17 at zp ZP_WORD:7 101.0 +(byte*) print_sbyte_at::at#18 at zp ZP_WORD:7 101.0 +(byte*) print_sbyte_at::at#19 at zp ZP_WORD:7 101.0 +(byte*) print_sbyte_at::at#2 at zp ZP_WORD:7 11.0 +(byte*) print_sbyte_at::at#20 at zp ZP_WORD:7 101.0 +(byte*) print_sbyte_at::at#21 at zp ZP_WORD:7 80.625 +(signed byte) print_sbyte_at::b +(signed byte) print_sbyte_at::b#0 reg byte x 4.0 +(signed byte) print_sbyte_at::b#1 reg byte x 22.0 +(signed byte) print_sbyte_at::b#10 reg byte x 4.0 +(signed byte) print_sbyte_at::b#11 reg byte x 4.0 +(signed byte) print_sbyte_at::b#12 reg byte x 4.0 +(signed byte) print_sbyte_at::b#13 reg byte x 4.0 +(signed byte) print_sbyte_at::b#14 reg byte x 4.0 +(signed byte) print_sbyte_at::b#15 reg byte x 4.0 +(signed byte) print_sbyte_at::b#16 reg byte x 202.0 +(signed byte) print_sbyte_at::b#17 reg byte x 202.0 +(signed byte) print_sbyte_at::b#18 reg byte x 202.0 +(signed byte) print_sbyte_at::b#19 reg byte x 202.0 +(signed byte) print_sbyte_at::b#2 reg byte x 22.0 +(signed byte) print_sbyte_at::b#20 reg byte x 202.0 +(signed byte) print_sbyte_at::b#21 reg byte x 202.0 +(signed byte) print_sbyte_at::b#22 reg byte x 111.16666666666657 +(signed byte) print_sbyte_at::b#24 reg byte x 0.6666666666666666 +(signed byte) print_sbyte_at::b#3 reg byte x 22.0 +(signed byte) print_sbyte_at::b#4 reg byte x 4.0 +(signed byte) print_sbyte_at::b#5 reg byte x 4.0 +(signed byte) print_sbyte_at::b#7 reg byte x 4.0 +(signed byte) print_sbyte_at::b#8 reg byte x 4.0 +(signed byte) print_sbyte_at::b#9 reg byte x 4.0 +(byte*) print_screen +(const byte*) print_screen#0 print_screen = (byte*) 1024 +(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at) +(label) print_str_at::@1 +(label) print_str_at::@2 +(label) print_str_at::@return +(byte*) print_str_at::at +(byte*) print_str_at::at#0 at zp ZP_WORD:14 11.0 +(byte*) print_str_at::at#13 at zp ZP_WORD:14 11.666666666666666 +(byte*) print_str_at::at#15 at zp ZP_WORD:14 2.0 +(byte*) print_str_at::str +(byte*) print_str_at::str#0 str zp ZP_WORD:12 22.0 +(byte*) print_str_at::str#13 str zp ZP_WORD:12 11.5 +(byte*) print_str_at::str#15 str zp ZP_WORD:12 2.0 +(word*) psp1 +(const word*) psp1#0 psp1 = (word*) 246 +(word*) psp2 +(const word*) psp2#0 psp2 = (word*) 248 +(void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z) +(label) rotate_matrix::@return +(signed byte) rotate_matrix::x +(signed byte) rotate_matrix::x#0 reg byte x 34.33333333333333 +(signed byte) rotate_matrix::y +(signed byte) rotate_matrix::y#0 y zp ZP_BYTE:18 34.33333333333333 +(signed byte) rotate_matrix::z +(signed byte) rotate_matrix::z#0 z zp ZP_BYTE:19 34.33333333333333 +(signed byte[9]) rotation_matrix +(const signed byte[9]) rotation_matrix#0 rotation_matrix = { fill( 9, 0) } +(void()) sprites_init() +(label) sprites_init::@1 +(label) sprites_init::@return +(byte*) sprites_init::SCREEN +(const byte*) sprites_init::SCREEN#0 SCREEN = (byte*) 1024 +(byte) sprites_init::i +(byte) sprites_init::i#1 reg byte x 16.5 +(byte) sprites_init::i#2 reg byte x 14.666666666666666 +(byte*) sprites_init::sprites_ptr +(const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) sprites_init::SCREEN#0+(word) $3f8 +(void()) store_matrix() +(label) store_matrix::@return +(signed byte) sx +(signed byte) sx#10 sx zp ZP_BYTE:2 0.38888888888888884 +(signed byte) sx#3 sx zp ZP_BYTE:2 11.0 +(signed byte) sy +(signed byte) sy#10 sy zp ZP_BYTE:3 0.3846153846153846 +(signed byte) sy#3 sy zp ZP_BYTE:3 22.0 +(signed byte) sz +(const signed byte) sz#0 sz = (signed byte) 0 +(signed byte*) xp +(const signed byte*) xp#0 xp = (signed byte*) 244 +(signed byte[8]) xps +(const signed byte[8]) xps#0 xps = { fill( 8, 0) } +(signed byte*) xr +(const signed byte*) xr#0 xr = (signed byte*) 240 +(signed byte[8]) xrs +(const signed byte[8]) xrs#0 xrs = { fill( 8, 0) } +(signed byte[8]) xs +(const signed byte[8]) xs#0 xs = { (signed byte) -$34, (signed byte) -$34, (signed byte) -$34, (signed byte) 0, (signed byte) 0, (signed byte) $34, (signed byte) $34, (signed byte) $34 } +(signed byte*) yp +(const signed byte*) yp#0 yp = (signed byte*) 245 +(signed byte[8]) yps +(const signed byte[8]) yps#0 yps = { fill( 8, 0) } +(signed byte*) yr +(const signed byte*) yr#0 yr = (signed byte*) 241 +(signed byte[8]) yrs +(const signed byte[8]) yrs#0 yrs = { fill( 8, 0) } +(signed byte[8]) ys +(const signed byte[8]) ys#0 ys = { (signed byte) -$34, (signed byte) 0, (signed byte) $34, (signed byte) -$34, (signed byte) $34, (signed byte) -$34, (signed byte) 0, (signed byte) $34 } +(signed byte*) zr +(const signed byte*) zr#0 zr = (signed byte*) 242 +(signed byte[8]) zrs +(const signed byte[8]) zrs#0 zrs = { fill( 8, 0) } +(signed byte[8]) zs +(const signed byte[8]) zs#0 zs = { (signed byte) $34, (signed byte) $34, (signed byte) $34, (signed byte) $34, (signed byte) $34, (signed byte) $34, (signed byte) $34, (signed byte) $34 } + +zp ZP_BYTE:2 [ sx#10 sx#3 ] +zp ZP_BYTE:3 [ sy#10 sy#3 calculate_matrix::sy#0 ] +zp ZP_BYTE:4 [ anim::i#2 anim::i#1 ] +zp ZP_BYTE:5 [ debug_print::c#2 debug_print::c#1 ] +zp ZP_BYTE:6 [ debug_print::i#2 debug_print::i#1 ] +zp ZP_WORD:7 [ print_sbyte_at::at#21 print_sbyte_at::at#15 print_sbyte_at::at#16 print_sbyte_at::at#17 print_sbyte_at::at#18 print_sbyte_at::at#19 print_sbyte_at::at#20 print_sbyte_at::at#0 print_sbyte_at::at#1 print_sbyte_at::at#2 print_char_at::at#4 print_char_at::at#2 print_char_at::at#3 print_char_at::at#0 print_char_at::at#1 print_byte_at::at#0 ] +reg byte x [ print_sbyte_at::b#24 print_sbyte_at::b#0 print_sbyte_at::b#22 print_sbyte_at::b#16 print_sbyte_at::b#17 print_sbyte_at::b#18 print_sbyte_at::b#19 print_sbyte_at::b#20 print_sbyte_at::b#21 print_sbyte_at::b#4 print_sbyte_at::b#13 print_sbyte_at::b#14 print_sbyte_at::b#15 print_sbyte_at::b#5 print_sbyte_at::b#7 print_sbyte_at::b#8 print_sbyte_at::b#9 print_sbyte_at::b#10 print_sbyte_at::b#11 print_sbyte_at::b#12 print_sbyte_at::b#1 print_sbyte_at::b#2 print_sbyte_at::b#3 ] +zp ZP_BYTE:9 [ print_char_at::ch#4 print_char_at::ch#2 print_char_at::ch#3 ] +zp ZP_BYTE:10 [ debug_print_init::c#2 debug_print_init::c#1 ] +zp ZP_BYTE:11 [ debug_print_init::i#2 debug_print_init::i#1 ] +reg byte y [ debug_print_init::j#2 debug_print_init::j#1 ] +zp ZP_WORD:12 [ print_str_at::str#13 print_str_at::str#15 print_str_at::str#0 ] +zp ZP_WORD:14 [ print_str_at::at#13 print_str_at::at#15 print_str_at::at#0 ] +zp ZP_WORD:16 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte x [ sprites_init::i#2 sprites_init::i#1 ] +reg byte x [ calculate_matrix::sx#0 ] +reg byte x [ rotate_matrix::x#0 ] +zp ZP_BYTE:18 [ rotate_matrix::y#0 ] +zp ZP_BYTE:19 [ rotate_matrix::z#0 ] +reg byte x [ anim::i2#0 ] +reg byte a [ anim::$8 ] +reg byte a [ anim::$10 ] +reg byte x [ debug_print::print_sbyte_pos1_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos2_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos4_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos5_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos6_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos7_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos8_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos9_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos10_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos11_sb#0 ] +reg byte x [ debug_print::print_sbyte_pos12_sb#0 ] +reg byte a [ print_byte_at::$0 ] +reg byte x [ print_byte_at::$2 ] +zp ZP_BYTE:20 [ calculate_matrix::t1#0 ] +zp ZP_BYTE:21 [ calculate_matrix::t2#0 ] +zp ZP_BYTE:22 [ calculate_matrix::t3#0 ] +zp ZP_BYTE:23 [ calculate_matrix::t4#0 ] +zp ZP_BYTE:24 [ calculate_matrix::t5#0 ] +zp ZP_BYTE:25 [ calculate_matrix::t6#0 ] +zp ZP_BYTE:26 [ calculate_matrix::t7#0 ] +zp ZP_BYTE:27 [ calculate_matrix::t8#0 ] +zp ZP_BYTE:28 [ calculate_matrix::t9#0 ] +reg byte x [ calculate_matrix::t10#0 ] +reg byte a [ calculate_matrix::$10 ] +reg byte a [ calculate_matrix::$11 ] +reg byte a [ calculate_matrix::$12 ] +reg byte a [ calculate_matrix::$13 ] +reg byte a [ calculate_matrix::$14 ] +reg byte a [ calculate_matrix::$15 ] +reg byte a [ calculate_matrix::$16 ] +reg byte a [ calculate_matrix::$17 ] +reg byte a [ calculate_matrix::$18 ] +reg byte a [ calculate_matrix::$19 ] +reg byte a [ calculate_matrix::$20 ] +reg byte a [ calculate_matrix::$21 ] +reg byte a [ calculate_matrix::$22 ] +reg byte a [ calculate_matrix::$23 ] +reg byte a [ calculate_matrix::$24 ] +reg byte a [ calculate_matrix::$25 ] +reg byte a [ calculate_matrix::$26 ] +reg byte a [ calculate_matrix::$27 ] +reg byte a [ calculate_matrix::$28 ] +reg byte a [ calculate_matrix::$29 ] +reg byte a [ calculate_matrix::$30 ] +reg byte a [ calculate_matrix::$31 ] +reg byte a [ calculate_matrix::$32 ] +reg byte a [ calculate_matrix::$33 ] +reg byte a [ calculate_matrix::$34 ] +reg byte x [ debug_print_init::col#0 ] +zp ZP_WORD:29 [ debug_print_init::$59 ] +zp ZP_WORD:31 [ debug_print_init::$63 ] +zp ZP_WORD:33 [ debug_print_init::$67 ] +zp ZP_WORD:35 [ debug_print_init::$71 ] +zp ZP_WORD:37 [ debug_print_init::$75 ] +zp ZP_WORD:39 [ debug_print_init::$79 ] +zp ZP_WORD:41 [ debug_print_init::$83 ] +zp ZP_WORD:43 [ debug_print_init::$87 ] +zp ZP_WORD:45 [ debug_print_init::$91 ] diff --git a/src/test/ref/examples/3d/perspective.sym b/src/test/ref/examples/3d/perspective.sym index 1daabbadc..fcc866926 100644 --- a/src/test/ref/examples/3d/perspective.sym +++ b/src/test/ref/examples/3d/perspective.sym @@ -1 +1,142 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(signed byte*) PERSP_Z +(const signed byte*) PERSP_Z#0 PERSP_Z = (signed byte*) 9216 +(void()) do_perspective((signed byte) do_perspective::x , (signed byte) do_perspective::y , (signed byte) do_perspective::z) +(label) do_perspective::@1 +(label) do_perspective::@10 +(label) do_perspective::@11 +(label) do_perspective::@12 +(label) do_perspective::@2 +(label) do_perspective::@3 +(label) do_perspective::@4 +(label) do_perspective::@5 +(label) do_perspective::@6 +(label) do_perspective::@7 +(label) do_perspective::@8 +(label) do_perspective::@9 +(label) do_perspective::@return +(const string) do_perspective::str str = (string) "(@" +(const string) do_perspective::str1 str1 = (string) ",@" +(const string) do_perspective::str3 str3 = (string) ") -> (@" +(const string) do_perspective::str5 str5 = (string) ")@" +(signed byte) do_perspective::x +(const signed byte) do_perspective::x#0 x = (signed byte) $39 +(signed byte) do_perspective::y +(const signed byte) do_perspective::y#0 y = (signed byte) -$47 +(signed byte) do_perspective::z +(const signed byte) do_perspective::z#0 z = (signed byte) $36 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(void()) mulf_init() +(byte~) mulf_init::$10 reg byte x 22.0 +(byte~) mulf_init::$4 reg byte x 16.5 +(byte~) mulf_init::$8 reg byte x 22.0 +(label) mulf_init::@1 +(label) mulf_init::@return +(signed word) mulf_init::add +(signed word) mulf_init::add#1 add zp ZP_WORD:12 7.333333333333333 +(signed word) mulf_init::add#2 add zp ZP_WORD:12 2.357142857142857 +(byte) mulf_init::i +(byte) mulf_init::i#1 reg byte y 16.5 +(byte) mulf_init::i#2 reg byte y 6.6 +(signed word) mulf_init::sqr +(signed word) mulf_init::sqr#1 sqr zp ZP_WORD:10 5.5 +(signed word) mulf_init::sqr#2 sqr zp ZP_WORD:10 2.5384615384615383 +(byte) mulf_init::val +(byte) mulf_init::val#0 val zp ZP_BYTE:14 9.0 +(byte[$200]) mulf_sqr1 +(const byte[$200]) mulf_sqr1#0 mulf_sqr1 = { fill( $200, 0) } +(byte[$200]) mulf_sqr2 +(const byte[$200]) mulf_sqr2#0 mulf_sqr2 = { fill( $200, 0) } +(void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) +(label) perspective::@return +(signed byte) perspective::x +(signed byte) perspective::y +(signed byte) perspective::z +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#3 reg byte x 2.5 +(byte~) print_byte::b#5 reg byte x 4.0 +(byte~) print_byte::b#6 reg byte x 4.0 +(byte~) print_byte::b#7 reg byte x 4.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:6 11.0 +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:6 0.6666666666666666 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:6 2.076923076923077 +(byte*) print_char_cursor#44 print_char_cursor zp ZP_WORD:6 6.0 +(byte*) print_char_cursor#69 print_char_cursor zp ZP_WORD:6 2.6666666666666665 +(byte*) print_char_cursor#74 print_char_cursor zp ZP_WORD:6 12.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:8 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:8 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 16.5 +(byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:2 22.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 reg byte x 4.0 +(signed byte) print_sbyte::b#4 reg byte x 1.0 +(signed byte) print_sbyte::b#6 reg byte x 4.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:4 22.0 +(byte*) print_str::str#7 str zp ZP_WORD:4 11.5 +(byte*) print_str::str#9 str zp ZP_WORD:4 2.0 +(word*) psp1 +(const word*) psp1#0 psp1 = (word*) 243 +(word*) psp2 +(const word*) psp2#0 psp2 = (word*) 245 +(signed byte*) xr +(const signed byte*) xr#0 xr = (signed byte*) 240 +(signed byte*) yr +(const signed byte*) yr#0 yr = (signed byte*) 241 +(signed byte*) zr +(const signed byte*) zr#0 zr = (signed byte*) 242 + +zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 ] +zp ZP_WORD:4 [ print_str::str#7 print_str::str#9 print_str::str#0 ] +reg byte x [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] +zp ZP_WORD:6 [ print_char_cursor#44 print_char_cursor#69 print_char_cursor#2 print_char_cursor#74 print_char_cursor#12 print_char_cursor#1 ] +reg byte x [ print_sbyte::b#6 print_sbyte::b#0 print_sbyte::b#4 ] +zp ZP_WORD:8 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_WORD:10 [ mulf_init::sqr#2 mulf_init::sqr#1 ] +reg byte y [ mulf_init::i#2 mulf_init::i#1 ] +zp ZP_WORD:12 [ mulf_init::add#2 mulf_init::add#1 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +zp ZP_BYTE:14 [ mulf_init::val#0 ] +reg byte x [ mulf_init::$4 ] +reg byte x [ mulf_init::$8 ] +reg byte x [ mulf_init::$10 ] diff --git a/src/test/ref/examples/bresenham/bitmap-bresenham.sym b/src/test/ref/examples/bresenham/bitmap-bresenham.sym index 1daabbadc..0e95aa5ff 100644 --- a/src/test/ref/examples/bresenham/bitmap-bresenham.sym +++ b/src/test/ref/examples/bresenham/bitmap-bresenham.sym @@ -1 +1,345 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BITMAP +(const byte*) BITMAP#0 BITMAP = (byte*) 8192 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) D011 +(const byte*) D011#0 D011 = (byte*) 53265 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) VIC_BMM +(const byte) VIC_BMM#0 VIC_BMM = (byte) $20 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte*) VIC_MEMORY +(const byte*) VIC_MEMORY#0 VIC_MEMORY = (byte*) 53272 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(void()) bitmap_clear() +(label) bitmap_clear::@1 +(label) bitmap_clear::@2 +(label) bitmap_clear::@3 +(label) bitmap_clear::@return +(byte*) bitmap_clear::bitmap +(word) bitmap_clear::bitmap#0 bitmap zp ZP_WORD:18 2.0 +(byte*) bitmap_clear::bitmap#1 bitmap zp ZP_WORD:18 42.599999999999994 +(byte*) bitmap_clear::bitmap#2 bitmap zp ZP_WORD:18 157.0 +(byte*) bitmap_clear::bitmap#3 bitmap zp ZP_WORD:18 24.0 +(byte*~) bitmap_clear::bitmap#5 bitmap zp ZP_WORD:18 4.0 +(byte) bitmap_clear::x +(byte) bitmap_clear::x#1 reg byte x 151.5 +(byte) bitmap_clear::x#2 reg byte x 67.33333333333333 +(byte) bitmap_clear::y +(byte) bitmap_clear::y#1 y zp ZP_BYTE:17 16.5 +(byte) bitmap_clear::y#4 y zp ZP_BYTE:17 3.6666666666666665 +(void()) bitmap_init((byte*) bitmap_init::bitmap) +(byte~) bitmap_init::$0 reg byte a 22.0 +(byte~) bitmap_init::$10 $10 zp ZP_BYTE:28 5.5 +(byte~) bitmap_init::$7 reg byte a 22.0 +(byte~) bitmap_init::$8 reg byte a 22.0 +(byte~) bitmap_init::$9 reg byte a 22.0 +(label) bitmap_init::@1 +(label) bitmap_init::@2 +(label) bitmap_init::@3 +(label) bitmap_init::@4 +(label) bitmap_init::@5 +(label) bitmap_init::@6 +(label) bitmap_init::@return +(byte*) bitmap_init::bitmap +(byte) bitmap_init::bits +(byte) bitmap_init::bits#1 reg byte y 11.0 +(byte) bitmap_init::bits#3 reg byte y 6.6000000000000005 +(byte) bitmap_init::bits#4 reg byte y 7.333333333333333 +(byte) bitmap_init::x +(byte) bitmap_init::x#1 reg byte x 16.5 +(byte) bitmap_init::x#2 reg byte x 7.333333333333334 +(byte) bitmap_init::y +(byte) bitmap_init::y#1 reg byte x 16.5 +(byte) bitmap_init::y#2 reg byte x 5.5 +(byte*) bitmap_init::yoffs +(byte*) bitmap_init::yoffs#1 yoffs zp ZP_WORD:20 22.0 +(byte*) bitmap_init::yoffs#2 yoffs zp ZP_WORD:20 6.875 +(byte*) bitmap_init::yoffs#4 yoffs zp ZP_WORD:20 11.0 +(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1) +(label) bitmap_line::@1 +(label) bitmap_line::@10 +(label) bitmap_line::@11 +(label) bitmap_line::@12 +(label) bitmap_line::@13 +(label) bitmap_line::@14 +(label) bitmap_line::@2 +(label) bitmap_line::@3 +(label) bitmap_line::@4 +(label) bitmap_line::@5 +(label) bitmap_line::@6 +(label) bitmap_line::@7 +(label) bitmap_line::@8 +(label) bitmap_line::@9 +(label) bitmap_line::@return +(byte) bitmap_line::x0 +(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:5 5.173913043478264 +(byte) bitmap_line::x1 +(byte) bitmap_line::x1#0 x1 zp ZP_BYTE:11 5.409090909090908 +(byte) bitmap_line::xd +(byte) bitmap_line::xd#1 xd zp ZP_BYTE:4 0.7 +(byte) bitmap_line::xd#2 xd zp ZP_BYTE:4 0.7 +(byte) bitmap_line::y0 +(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:6 5.952380952380948 +(byte) bitmap_line::y1 +(byte) bitmap_line::y1#0 reg byte y 6.249999999999996 +(byte) bitmap_line::yd +(byte) bitmap_line::yd#1 yd zp ZP_BYTE:10 0.8888888888888888 +(byte) bitmap_line::yd#10 yd zp ZP_BYTE:10 0.8888888888888888 +(byte) bitmap_line::yd#11 yd#11 zp ZP_BYTE:3 0.8888888888888888 +(byte) bitmap_line::yd#2 yd#2 zp ZP_BYTE:3 0.8888888888888888 +(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd) +(byte~) bitmap_line_xdyd::$6 $6 zp ZP_BYTE:27 2002.0 +(label) bitmap_line_xdyd::@1 +(label) bitmap_line_xdyd::@2 +(label) bitmap_line_xdyd::@3 +(label) bitmap_line_xdyd::@4 +(label) bitmap_line_xdyd::@return +(byte) bitmap_line_xdyd::e +(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:12 4.0 +(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:12 1334.6666666666667 +(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:12 2002.0 +(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:12 400.79999999999995 +(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:12 1001.0 +(byte) bitmap_line_xdyd::x +(byte) bitmap_line_xdyd::x#0 reg byte x 0.8 +(byte) bitmap_line_xdyd::x#1 reg byte x 0.8 +(byte) bitmap_line_xdyd::x#2 reg byte x 375.375 +(byte) bitmap_line_xdyd::x#3 reg byte x 751.25 +(byte) bitmap_line_xdyd::x#6 reg byte x 3.0 +(byte) bitmap_line_xdyd::x1 +(byte) bitmap_line_xdyd::x1#0 x1 zp ZP_BYTE:11 1.3333333333333333 +(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:11 1.3333333333333333 +(byte) bitmap_line_xdyd::x1#6 x1 zp ZP_BYTE:11 71.78571428571429 +(byte) bitmap_line_xdyd::xd +(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:4 2.0 +(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:4 2.0 +(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:4 143.28571428571428 +(byte) bitmap_line_xdyd::y +(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:6 1.0 +(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:6 1.0 +(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:6 1001.0 +(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:6 572.2857142857142 +(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:6 3.0 +(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:6 1001.0 +(byte) bitmap_line_xdyd::yd +(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:10 4.0 +(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:10 4.0 +(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:10 71.92857142857143 +(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd) +(byte~) bitmap_line_xdyi::$6 $6 zp ZP_BYTE:22 2002.0 +(label) bitmap_line_xdyi::@1 +(label) bitmap_line_xdyi::@2 +(label) bitmap_line_xdyi::@3 +(label) bitmap_line_xdyi::@4 +(label) bitmap_line_xdyi::@return +(byte) bitmap_line_xdyi::e +(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:7 4.0 +(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:7 1334.6666666666667 +(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:7 2002.0 +(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:7 400.79999999999995 +(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:7 1001.0 +(byte) bitmap_line_xdyi::x +(byte) bitmap_line_xdyi::x#0 reg byte x 0.8 +(byte) bitmap_line_xdyi::x#1 reg byte x 0.8 +(byte) bitmap_line_xdyi::x#2 reg byte x 375.375 +(byte) bitmap_line_xdyi::x#3 reg byte x 751.25 +(byte) bitmap_line_xdyi::x#6 reg byte x 3.0 +(byte) bitmap_line_xdyi::x1 +(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:5 1.3333333333333333 +(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:5 1.3333333333333333 +(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:5 71.78571428571429 +(byte) bitmap_line_xdyi::xd +(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:4 2.0 +(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:4 2.0 +(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:4 143.28571428571428 +(byte) bitmap_line_xdyi::y +(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:6 1.0 +(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:6 1.0 +(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:6 1001.0 +(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:6 572.2857142857142 +(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:6 3.0 +(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:6 1001.0 +(byte) bitmap_line_xdyi::yd +(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:3 4.0 +(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:3 4.0 +(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:3 71.92857142857143 +(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd) +(byte~) bitmap_line_ydxd::$6 reg byte y 2002.0 +(label) bitmap_line_ydxd::@1 +(label) bitmap_line_ydxd::@2 +(label) bitmap_line_ydxd::@3 +(label) bitmap_line_ydxd::@4 +(label) bitmap_line_ydxd::@return +(byte) bitmap_line_ydxd::e +(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:14 4.0 +(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:14 1334.6666666666667 +(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:14 2002.0 +(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:14 400.79999999999995 +(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:14 1001.0 +(byte) bitmap_line_ydxd::x +(byte) bitmap_line_ydxd::x#0 reg byte x 1.0 +(byte) bitmap_line_ydxd::x#1 reg byte x 1.0 +(byte) bitmap_line_ydxd::x#2 reg byte x 1001.0 +(byte) bitmap_line_ydxd::x#3 reg byte x 572.2857142857142 +(byte) bitmap_line_ydxd::x#5 reg byte x 3.0 +(byte) bitmap_line_ydxd::x#6 reg byte x 1001.0 +(byte) bitmap_line_ydxd::xd +(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:4 4.0 +(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:4 4.0 +(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:4 71.92857142857143 +(byte) bitmap_line_ydxd::y +(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:13 0.8 +(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:13 0.8 +(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:13 751.25 +(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:13 375.375 +(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:13 3.0 +(byte) bitmap_line_ydxd::y1 +(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:6 1.3333333333333333 +(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:6 1.3333333333333333 +(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:6 71.78571428571429 +(byte) bitmap_line_ydxd::yd +(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:10 2.0 +(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:10 2.0 +(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:10 143.28571428571428 +(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd) +(byte~) bitmap_line_ydxi::$6 reg byte y 2002.0 +(label) bitmap_line_ydxi::@1 +(label) bitmap_line_ydxi::@2 +(label) bitmap_line_ydxi::@3 +(label) bitmap_line_ydxi::@4 +(label) bitmap_line_ydxi::@return +(byte) bitmap_line_ydxi::e +(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:9 4.0 +(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:9 1334.6666666666667 +(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:9 2002.0 +(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:9 400.79999999999995 +(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:9 1001.0 +(byte) bitmap_line_ydxi::x +(byte) bitmap_line_ydxi::x#0 reg byte x 1.0 +(byte) bitmap_line_ydxi::x#1 reg byte x 1.0 +(byte) bitmap_line_ydxi::x#2 reg byte x 1001.0 +(byte) bitmap_line_ydxi::x#3 reg byte x 572.2857142857142 +(byte) bitmap_line_ydxi::x#5 reg byte x 3.0 +(byte) bitmap_line_ydxi::x#6 reg byte x 1001.0 +(byte) bitmap_line_ydxi::xd +(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:4 4.0 +(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:4 4.0 +(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:4 71.92857142857143 +(byte) bitmap_line_ydxi::y +(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:8 0.8 +(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:8 0.8 +(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:8 375.375 +(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:8 751.25 +(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:8 3.0 +(byte) bitmap_line_ydxi::y1 +(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:6 1.3333333333333333 +(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:6 1.3333333333333333 +(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:6 71.78571428571429 +(byte) bitmap_line_ydxi::yd +(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:3 2.0 +(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:3 2.0 +(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:3 143.28571428571428 +(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y) +(byte~) bitmap_plot::$1 reg byte a 4.0 +(label) bitmap_plot::@return +(byte*) bitmap_plot::plotter +(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:23 1.0 +(word) bitmap_plot::plotter_x +(word) bitmap_plot::plotter_x#0 plotter_x zp ZP_WORD:23 2.0 +(word) bitmap_plot::plotter_y +(word) bitmap_plot::plotter_y#0 plotter_y zp ZP_WORD:25 4.0 +(byte) bitmap_plot::x +(byte) bitmap_plot::x#0 reg byte x 1001.0 +(byte) bitmap_plot::x#1 reg byte x 1001.0 +(byte) bitmap_plot::x#2 reg byte x 1001.0 +(byte) bitmap_plot::x#3 reg byte x 1001.0 +(byte) bitmap_plot::x#4 reg byte x 1002.5 +(byte) bitmap_plot::y +(byte) bitmap_plot::y#0 reg byte y 2002.0 +(byte) bitmap_plot::y#1 reg byte y 2002.0 +(byte) bitmap_plot::y#2 reg byte y 2002.0 +(byte) bitmap_plot::y#3 reg byte y 2002.0 +(byte) bitmap_plot::y#4 reg byte y 2004.0 +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } +(void()) init_screen() +(label) init_screen::@1 +(label) init_screen::@return +(byte*) init_screen::c +(byte*) init_screen::c#1 c zp ZP_WORD:15 16.5 +(byte*) init_screen::c#2 c zp ZP_WORD:15 16.5 +(void()) lines() +(label) lines::@1 +(label) lines::@2 +(label) lines::@return +(byte) lines::l +(byte) lines::l#1 l zp ZP_BYTE:2 151.5 +(byte) lines::l#2 l zp ZP_BYTE:2 100.99999999999999 +(byte) lines_cnt +(const byte) lines_cnt#0 lines_cnt = (byte) 8 +(byte[]) lines_x +(const byte[]) lines_x#0 lines_x = { (byte) $3c, (byte) $50, (byte) $6e, (byte) $50, (byte) $3c, (byte) $28, (byte) $a, (byte) $28, (byte) $3c } +(byte[]) lines_y +(const byte[]) lines_y#0 lines_y = { (byte) $a, (byte) $28, (byte) $3c, (byte) $50, (byte) $6e, (byte) $50, (byte) $3c, (byte) $28, (byte) $a } +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 + +zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ] +zp ZP_BYTE:3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 bitmap_line::yd#2 bitmap_line::yd#11 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 ] +zp ZP_BYTE:4 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line::xd#2 bitmap_line::xd#1 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] +zp ZP_BYTE:5 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 ] +reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 ] +zp ZP_BYTE:6 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +zp ZP_BYTE:7 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] +reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] +reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] +reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] +zp ZP_BYTE:8 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 ] +zp ZP_BYTE:9 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] +zp ZP_BYTE:10 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] +zp ZP_BYTE:11 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 bitmap_line::x1#0 ] +reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 ] +zp ZP_BYTE:12 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] +reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] +zp ZP_BYTE:13 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] +zp ZP_BYTE:14 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] +zp ZP_WORD:15 [ init_screen::c#2 init_screen::c#1 ] +zp ZP_BYTE:17 [ bitmap_clear::y#4 bitmap_clear::y#1 ] +zp ZP_WORD:18 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 ] +reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] +reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] +reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] +reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +zp ZP_WORD:20 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] +reg byte y [ bitmap_line::y1#0 ] +zp ZP_BYTE:22 [ bitmap_line_xdyi::$6 ] +zp ZP_WORD:23 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 ] +zp ZP_WORD:25 [ bitmap_plot::plotter_y#0 ] +reg byte a [ bitmap_plot::$1 ] +reg byte y [ bitmap_line_ydxi::$6 ] +zp ZP_BYTE:27 [ bitmap_line_xdyd::$6 ] +reg byte y [ bitmap_line_ydxd::$6 ] +reg byte a [ bitmap_init::$0 ] +zp ZP_BYTE:28 [ bitmap_init::$10 ] +reg byte a [ bitmap_init::$7 ] +reg byte a [ bitmap_init::$8 ] +reg byte a [ bitmap_init::$9 ] diff --git a/src/test/ref/examples/chargen/chargen-analysis.sym b/src/test/ref/examples/chargen/chargen-analysis.sym index 1daabbadc..bcea25865 100644 --- a/src/test/ref/examples/chargen/chargen-analysis.sym +++ b/src/test/ref/examples/chargen/chargen-analysis.sym @@ -1 +1,351 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) CHARGEN +(const byte*) CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte) KEY_0 +(const byte) KEY_0#0 KEY_0 = (byte) $23 +(byte) KEY_1 +(const byte) KEY_1#0 KEY_1 = (byte) $38 +(byte) KEY_2 +(const byte) KEY_2#0 KEY_2 = (byte) $3b +(byte) KEY_3 +(const byte) KEY_3#0 KEY_3 = (byte) 8 +(byte) KEY_4 +(const byte) KEY_4#0 KEY_4 = (byte) $b +(byte) KEY_5 +(const byte) KEY_5#0 KEY_5 = (byte) $10 +(byte) KEY_6 +(const byte) KEY_6#0 KEY_6 = (byte) $13 +(byte) KEY_7 +(const byte) KEY_7#0 KEY_7 = (byte) $18 +(byte) KEY_8 +(const byte) KEY_8#0 KEY_8 = (byte) $1b +(byte) KEY_9 +(const byte) KEY_9#0 KEY_9 = (byte) $20 +(byte) KEY_A +(const byte) KEY_A#0 KEY_A = (byte) $a +(byte) KEY_ARROW_LEFT +(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte) $39 +(byte) KEY_ARROW_UP +(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte) $36 +(byte) KEY_ASTERISK +(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte) $31 +(byte) KEY_AT +(const byte) KEY_AT#0 KEY_AT = (byte) $2e +(byte) KEY_B +(const byte) KEY_B#0 KEY_B = (byte) $1c +(byte) KEY_C +(const byte) KEY_C#0 KEY_C = (byte) $14 +(byte) KEY_COLON +(const byte) KEY_COLON#0 KEY_COLON = (byte) $2d +(byte) KEY_COMMA +(const byte) KEY_COMMA#0 KEY_COMMA = (byte) $2f +(byte) KEY_D +(const byte) KEY_D#0 KEY_D = (byte) $12 +(byte) KEY_DOT +(const byte) KEY_DOT#0 KEY_DOT = (byte) $2c +(byte) KEY_E +(const byte) KEY_E#0 KEY_E = (byte) $e +(byte) KEY_EQUALS +(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte) $35 +(byte) KEY_F +(const byte) KEY_F#0 KEY_F = (byte) $15 +(byte) KEY_F1 +(const byte) KEY_F1#0 KEY_F1 = (byte) 4 +(byte) KEY_F3 +(const byte) KEY_F3#0 KEY_F3 = (byte) 5 +(byte) KEY_F5 +(const byte) KEY_F5#0 KEY_F5 = (byte) 6 +(byte) KEY_F7 +(const byte) KEY_F7#0 KEY_F7 = (byte) 3 +(byte) KEY_G +(const byte) KEY_G#0 KEY_G = (byte) $1a +(byte) KEY_H +(const byte) KEY_H#0 KEY_H = (byte) $1d +(byte) KEY_I +(const byte) KEY_I#0 KEY_I = (byte) $21 +(byte) KEY_J +(const byte) KEY_J#0 KEY_J = (byte) $22 +(byte) KEY_K +(const byte) KEY_K#0 KEY_K = (byte) $25 +(byte) KEY_L +(const byte) KEY_L#0 KEY_L = (byte) $2a +(byte) KEY_LSHIFT +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte) $f +(byte) KEY_M +(const byte) KEY_M#0 KEY_M = (byte) $24 +(byte) KEY_MINUS +(const byte) KEY_MINUS#0 KEY_MINUS = (byte) $2b +(byte) KEY_N +(const byte) KEY_N#0 KEY_N = (byte) $27 +(byte) KEY_O +(const byte) KEY_O#0 KEY_O = (byte) $26 +(byte) KEY_P +(const byte) KEY_P#0 KEY_P = (byte) $29 +(byte) KEY_PLUS +(const byte) KEY_PLUS#0 KEY_PLUS = (byte) $28 +(byte) KEY_POUND +(const byte) KEY_POUND#0 KEY_POUND = (byte) $30 +(byte) KEY_Q +(const byte) KEY_Q#0 KEY_Q = (byte) $3e +(byte) KEY_R +(const byte) KEY_R#0 KEY_R = (byte) $11 +(byte) KEY_S +(const byte) KEY_S#0 KEY_S = (byte) $d +(byte) KEY_SEMICOLON +(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte) $32 +(byte) KEY_SLASH +(const byte) KEY_SLASH#0 KEY_SLASH = (byte) $37 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(byte) KEY_T +(const byte) KEY_T#0 KEY_T = (byte) $16 +(byte) KEY_U +(const byte) KEY_U#0 KEY_U = (byte) $1e +(byte) KEY_V +(const byte) KEY_V#0 KEY_V = (byte) $1f +(byte) KEY_W +(const byte) KEY_W#0 KEY_W = (byte) 9 +(byte) KEY_X +(const byte) KEY_X#0 KEY_X = (byte) $17 +(byte) KEY_Y +(const byte) KEY_Y#0 KEY_Y = (byte) $19 +(byte) KEY_Z +(const byte) KEY_Z#0 KEY_Z = (byte) $c +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) keyboard_char_keycodes +(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte) $3f, (const byte) KEY_POUND#0, (byte) $3f, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte) $3f, (const byte) KEY_EQUALS#0, (byte) $3f, (byte) $3f } +(byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) +(label) keyboard_get_keycode::@return +(byte) keyboard_get_keycode::ch +(byte) keyboard_get_keycode::ch#0 reg byte x 103.0 +(byte) keyboard_get_keycode::return +(byte) keyboard_get_keycode::return#0 reg byte a 34.33333333333333 +(byte) keyboard_get_keycode::return#2 reg byte a 202.0 +(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) +(byte~) keyboard_key_pressed::$2 reg byte a 4.0 +(label) keyboard_key_pressed::@1 +(label) keyboard_key_pressed::@return +(byte) keyboard_key_pressed::colidx +(byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666 +(byte) keyboard_key_pressed::key +(byte) keyboard_key_pressed::key#5 reg byte x 202.0 +(byte) keyboard_key_pressed::key#6 reg byte x 52.5 +(byte) keyboard_key_pressed::return +(byte) keyboard_key_pressed::return#0 reg byte a 19.75 +(byte) keyboard_key_pressed::return#10 reg byte a 22.0 +(byte) keyboard_key_pressed::return#11 reg byte a 22.0 +(byte) keyboard_key_pressed::return#12 reg byte a 22.0 +(byte) keyboard_key_pressed::return#13 reg byte a 22.0 +(byte) keyboard_key_pressed::return#14 reg byte a 202.0 +(byte) keyboard_key_pressed::return#2 reg byte a 22.0 +(byte) keyboard_key_pressed::rowidx +(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333 +(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte x 4.0 +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(void()) main() +(byte~) main::$15 reg byte a 22.0 +(byte~) main::$18 reg byte a 22.0 +(byte~) main::$21 reg byte a 22.0 +(byte~) main::$24 reg byte a 22.0 +(byte~) main::$27 reg byte a 22.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@18 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@22 +(label) main::@23 +(label) main::@24 +(label) main::@25 +(label) main::@26 +(label) main::@27 +(label) main::@28 +(label) main::@29 +(label) main::@3 +(label) main::@30 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::ch +(byte) main::ch#1 ch zp ZP_BYTE:7 151.5 +(byte) main::ch#2 ch zp ZP_BYTE:7 25.25 +(byte) main::cur_pos +(byte) main::cur_pos#11 cur_pos zp ZP_BYTE:5 8.52 +(byte) main::cur_pos#18 cur_pos zp ZP_BYTE:5 3.6666666666666665 +(byte) main::cur_pos#20 cur_pos zp ZP_BYTE:5 3.6666666666666665 +(byte) main::cur_pos#22 cur_pos zp ZP_BYTE:5 3.6666666666666665 +(byte) main::cur_pos#24 cur_pos zp ZP_BYTE:5 18.666666666666664 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:4 16.5 +(byte) main::i#2 i zp ZP_BYTE:4 11.0 +(byte) main::key +(byte) main::key#0 reg byte a 151.5 +(byte) main::pressed +(byte) main::pressed#1 reg byte a 202.0 +(byte) main::pressed#2 reg byte a 202.0 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) main::sc#2 sc zp ZP_WORD:2 16.5 +(byte) main::shift +(byte) main::shift#9 shift zp ZP_BYTE:6 5.315789473684211 +(const string) main::str str = (string) "f1@" +(const string) main::str1 str1 = (string) "f3@" +(const string) main::str2 str2 = (string) "f5@" +(const string) main::str3 str3 = (string) "f7@" +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 2002.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 1001.0 +(byte) mul8u::a#1 reg byte x 2.0 +(byte) mul8u::a#2 reg byte x 667.6666666666667 +(byte) mul8u::b +(const byte) mul8u::b#0 b = (byte) $a +(word) mul8u::mb +(word) mul8u::mb#1 mb zp ZP_WORD:14 2002.0 +(word) mul8u::mb#2 mb zp ZP_WORD:14 429.0 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:12 2002.0 +(word) mul8u::res#2 res zp ZP_WORD:12 500.83333333333337 +(word) mul8u::res#6 res zp ZP_WORD:12 1001.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:12 4.0 +(void()) plot_chargen((byte) plot_chargen::pos , (byte) plot_chargen::ch , (byte) plot_chargen::shift) +(word~) plot_chargen::$0 $0 zp ZP_WORD:8 4.0 +(word~) plot_chargen::$1 $1 zp ZP_WORD:8 4.0 +(byte~) plot_chargen::$10 reg byte a 20002.0 +(word~) plot_chargen::$7 $7 zp ZP_WORD:12 4.0 +(label) plot_chargen::@1 +(label) plot_chargen::@2 +(label) plot_chargen::@3 +(label) plot_chargen::@4 +(label) plot_chargen::@5 +(label) plot_chargen::@6 +(label) plot_chargen::@7 +(label) plot_chargen::@8 +(label) plot_chargen::@9 +(label) plot_chargen::@return +(byte) plot_chargen::bits +(byte) plot_chargen::bits#0 bits zp ZP_BYTE:11 2002.0 +(byte) plot_chargen::bits#1 bits zp ZP_BYTE:11 6667.333333333333 +(byte) plot_chargen::bits#2 bits zp ZP_BYTE:11 4429.142857142857 +(byte) plot_chargen::c +(byte) plot_chargen::c#2 reg byte a 10001.0 +(byte) plot_chargen::ch +(byte) plot_chargen::ch#1 reg byte a 101.0 +(byte) plot_chargen::ch#2 reg byte a 50.5 +(byte*) plot_chargen::chargen +(byte*) plot_chargen::chargen#0 chargen zp ZP_WORD:8 3.0 +(byte*) plot_chargen::chargen#1 chargen zp ZP_WORD:8 4.0 +(byte*) plot_chargen::chargen#5 chargen zp ZP_WORD:8 45.68181818181818 +(byte) plot_chargen::pos +(byte) plot_chargen::pos#0 reg byte y 22.0 +(byte) plot_chargen::pos#1 reg byte y 67.33333333333333 +(byte) plot_chargen::pos#2 reg byte y 12.666666666666664 +(byte*) plot_chargen::sc +(byte*) plot_chargen::sc#0 sc zp ZP_WORD:12 4.0 +(byte*) plot_chargen::sc#1 sc zp ZP_WORD:12 5250.75 +(byte*) plot_chargen::sc#2 sc zp ZP_WORD:12 667.3333333333334 +(byte*) plot_chargen::sc#3 sc zp ZP_WORD:12 5167.333333333333 +(byte*) plot_chargen::sc#7 sc zp ZP_WORD:12 1002.0 +(byte) plot_chargen::shift +(byte) plot_chargen::shift#1 reg byte x 202.0 +(byte) plot_chargen::shift#2 reg byte x 20.599999999999998 +(byte) plot_chargen::x +(byte) plot_chargen::x#1 reg byte x 15001.5 +(byte) plot_chargen::x#2 reg byte x 2500.25 +(byte) plot_chargen::y +(byte) plot_chargen::y#1 y zp ZP_BYTE:10 1501.5 +(byte) plot_chargen::y#2 y zp ZP_BYTE:10 231.0 +(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at) +(label) print_str_at::@1 +(label) print_str_at::@2 +(label) print_str_at::@return +(byte*) print_str_at::at +(byte*) print_str_at::at#4 at zp ZP_WORD:18 11.0 +(byte*) print_str_at::at#5 at zp ZP_WORD:18 11.666666666666666 +(byte*) print_str_at::at#7 at zp ZP_WORD:18 2.0 +(byte*) print_str_at::str +(byte*) print_str_at::str#4 str zp ZP_WORD:16 22.0 +(byte*) print_str_at::str#5 str zp ZP_WORD:16 11.5 +(byte*) print_str_at::str#7 str zp ZP_WORD:16 2.0 + +zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] +zp ZP_BYTE:4 [ main::i#2 main::i#1 ] +zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#11 ] +zp ZP_BYTE:6 [ main::shift#9 ] +zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] +reg byte a [ main::pressed#2 main::pressed#1 ] +reg byte a [ plot_chargen::ch#2 plot_chargen::ch#1 ] +reg byte x [ plot_chargen::shift#2 plot_chargen::shift#1 ] +reg byte y [ plot_chargen::pos#2 plot_chargen::pos#1 plot_chargen::pos#0 ] +zp ZP_WORD:8 [ plot_chargen::chargen#5 plot_chargen::chargen#0 plot_chargen::chargen#1 plot_chargen::$1 plot_chargen::$0 ] +zp ZP_BYTE:10 [ plot_chargen::y#2 plot_chargen::y#1 ] +zp ZP_BYTE:11 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] +zp ZP_WORD:12 [ plot_chargen::sc#3 plot_chargen::sc#7 plot_chargen::sc#2 plot_chargen::sc#0 plot_chargen::sc#1 plot_chargen::$7 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 ] +reg byte x [ plot_chargen::x#2 plot_chargen::x#1 ] +reg byte a [ plot_chargen::c#2 ] +reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] +zp ZP_WORD:14 [ mul8u::mb#2 mul8u::mb#1 ] +reg byte x [ keyboard_key_pressed::key#6 keyboard_key_pressed::key#5 ] +zp ZP_WORD:16 [ print_str_at::str#5 print_str_at::str#7 print_str_at::str#4 ] +zp ZP_WORD:18 [ print_str_at::at#5 print_str_at::at#7 print_str_at::at#4 ] +reg byte a [ keyboard_key_pressed::return#2 ] +reg byte a [ main::$15 ] +reg byte a [ keyboard_key_pressed::return#10 ] +reg byte a [ main::$18 ] +reg byte a [ keyboard_key_pressed::return#11 ] +reg byte a [ main::$21 ] +reg byte a [ keyboard_key_pressed::return#12 ] +reg byte a [ main::$24 ] +reg byte a [ keyboard_key_pressed::return#13 ] +reg byte a [ main::$27 ] +reg byte x [ keyboard_get_keycode::ch#0 ] +reg byte a [ keyboard_get_keycode::return#2 ] +reg byte a [ main::key#0 ] +reg byte a [ keyboard_key_pressed::return#14 ] +reg byte a [ plot_chargen::$10 ] +reg byte a [ mul8u::$1 ] +reg byte y [ keyboard_key_pressed::colidx#0 ] +reg byte a [ keyboard_key_pressed::rowidx#0 ] +reg byte x [ keyboard_matrix_read::rowid#0 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_key_pressed::$2 ] +reg byte a [ keyboard_key_pressed::return#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ keyboard_get_keycode::return#0 ] diff --git a/src/test/ref/examples/fastmultiply/fastmultiply8.sym b/src/test/ref/examples/fastmultiply/fastmultiply8.sym index 1daabbadc..3562739ab 100644 --- a/src/test/ref/examples/fastmultiply/fastmultiply8.sym +++ b/src/test/ref/examples/fastmultiply/fastmultiply8.sym @@ -1 +1,138 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(signed byte*) ap +(const signed byte*) ap#0 ap = (signed byte*) 253 +(signed byte*) bp +(const signed byte*) bp#0 bp = (signed byte*) 254 +(signed byte*) cp +(const signed byte*) cp#0 cp = (signed byte*) 255 +(signed byte()) fmul8((signed byte) fmul8::a , (signed byte) fmul8::b) +(label) fmul8::@return +(signed byte) fmul8::a +(signed byte) fmul8::a#0 reg byte a 51.5 +(signed byte) fmul8::b +(signed byte) fmul8::b#0 reg byte x 51.5 +(signed byte) fmul8::return +(signed byte) fmul8::return#0 reg byte a 202.0 +(signed byte) fmul8::return#1 reg byte a 34.33333333333333 +(void()) init_screen() +(label) init_screen::@1 +(label) init_screen::@2 +(label) init_screen::@return +(byte*) init_screen::COLS +(byte*) init_screen::COLS#1 COLS zp ZP_WORD:14 7.333333333333333 +(byte*) init_screen::COLS#3 COLS zp ZP_WORD:14 13.2 +(byte) init_screen::WHITE +(const byte) init_screen::WHITE#0 WHITE = (byte) 1 +(byte) init_screen::l +(byte) init_screen::l#1 reg byte x 16.5 +(byte) init_screen::l#2 reg byte x 16.5 +(byte) init_screen::m +(byte) init_screen::m#1 reg byte x 16.5 +(byte) init_screen::m#2 reg byte x 3.6666666666666665 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@return +(byte*) main::at +(byte*) main::at#1 at zp ZP_WORD:2 7.333333333333333 +(byte*~) main::at#12 at#12 zp ZP_WORD:7 22.0 +(byte*) main::at#2 at#2 zp ZP_WORD:4 2.3157894736842106 +(byte*) main::at#3 at#3 zp ZP_WORD:7 27.545454545454547 +(byte*) main::at#4 at zp ZP_WORD:2 8.25 +(byte*) main::at#6 at#6 zp ZP_WORD:7 213.0 +(byte*) main::at_line +(byte*) main::at_line#2 at_line zp ZP_WORD:4 22.0 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:6 16.5 +(byte) main::i#2 i zp ZP_BYTE:6 7.444444444444445 +(byte) main::j +(byte) main::j#1 j zp ZP_BYTE:9 151.5 +(byte) main::j#2 j zp ZP_BYTE:9 30.299999999999997 +(byte) main::k +(byte) main::k#1 reg byte x 16.5 +(byte) main::k#2 reg byte x 6.6000000000000005 +(signed byte) main::r +(signed byte) main::r#0 reg byte a 202.0 +(byte*) mulf_sqr1 +(const byte*) mulf_sqr1#0 mulf_sqr1 = (byte*) 8192 +(byte*) mulf_sqr2 +(const byte*) mulf_sqr2#0 mulf_sqr2 = (byte*) 8704 +(void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at) +(byte~) print_byte_at::$0 reg byte a 4.0 +(byte~) print_byte_at::$2 reg byte y 2.0 +(label) print_byte_at::@1 +(label) print_byte_at::@return +(byte*) print_byte_at::at +(byte*) print_byte_at::at#0 at zp ZP_WORD:10 1.0 +(byte) print_byte_at::b +(void()) print_char_at((byte) print_char_at::ch , (byte*) print_char_at::at) +(label) print_char_at::@return +(byte*) print_char_at::at +(byte*) print_char_at::at#0 at zp ZP_WORD:10 4.0 +(byte*) print_char_at::at#1 at zp ZP_WORD:10 4.0 +(byte*) print_char_at::at#2 at zp ZP_WORD:10 4.0 +(byte*) print_char_at::at#3 at zp ZP_WORD:10 2.0 +(byte*) print_char_at::at#4 at zp ZP_WORD:10 10.0 +(byte) print_char_at::ch +(byte) print_char_at::ch#2 ch zp ZP_BYTE:13 2.0 +(byte) print_char_at::ch#3 ch zp ZP_BYTE:13 4.0 +(byte) print_char_at::ch#4 ch zp ZP_BYTE:13 6.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:16 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:16 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(void()) print_sbyte_at((signed byte) print_sbyte_at::b , (byte*) print_sbyte_at::at) +(label) print_sbyte_at::@1 +(label) print_sbyte_at::@2 +(label) print_sbyte_at::@3 +(label) print_sbyte_at::@4 +(label) print_sbyte_at::@return +(byte*) print_sbyte_at::at +(byte*) print_sbyte_at::at#0 at zp ZP_WORD:10 22.0 +(byte*) print_sbyte_at::at#1 at zp ZP_WORD:10 22.0 +(byte*) print_sbyte_at::at#2 at zp ZP_WORD:10 202.0 +(byte*) print_sbyte_at::at#3 at zp ZP_WORD:10 16.125 +(signed byte) print_sbyte_at::b +(signed byte) print_sbyte_at::b#0 b zp ZP_BYTE:12 4.0 +(signed byte) print_sbyte_at::b#1 b zp ZP_BYTE:12 11.0 +(signed byte) print_sbyte_at::b#2 b zp ZP_BYTE:12 11.0 +(signed byte) print_sbyte_at::b#3 b zp ZP_BYTE:12 101.0 +(signed byte) print_sbyte_at::b#4 b zp ZP_BYTE:12 21.499999999999993 +(signed byte) print_sbyte_at::b#6 b zp ZP_BYTE:12 0.6666666666666666 +(byte*) print_screen +(const byte*) print_screen#0 print_screen = (byte*) 1024 +(signed byte[]) vals +(const signed byte[]) vals#0 vals = { (signed byte) -$5f, (signed byte) -$40, (signed byte) -$20, (signed byte) -$10, (signed byte) 0, (signed byte) $10, (signed byte) $20, (signed byte) $40, (signed byte) $5f } + +reg byte x [ main::k#2 main::k#1 ] +zp ZP_WORD:2 [ main::at#4 main::at#1 ] +zp ZP_WORD:4 [ main::at_line#2 main::at#2 ] +zp ZP_BYTE:6 [ main::i#2 main::i#1 ] +zp ZP_WORD:7 [ main::at#6 main::at#3 main::at#12 ] +zp ZP_BYTE:9 [ main::j#2 main::j#1 ] +zp ZP_WORD:10 [ print_sbyte_at::at#3 print_sbyte_at::at#0 print_sbyte_at::at#2 print_sbyte_at::at#1 print_char_at::at#4 print_char_at::at#2 print_char_at::at#3 print_char_at::at#0 print_char_at::at#1 print_byte_at::at#0 ] +zp ZP_BYTE:12 [ print_sbyte_at::b#6 print_sbyte_at::b#0 print_sbyte_at::b#4 print_sbyte_at::b#1 print_sbyte_at::b#3 print_sbyte_at::b#2 ] +zp ZP_BYTE:13 [ print_char_at::ch#4 print_char_at::ch#2 print_char_at::ch#3 ] +reg byte x [ init_screen::l#2 init_screen::l#1 ] +zp ZP_WORD:14 [ init_screen::COLS#3 init_screen::COLS#1 ] +reg byte x [ init_screen::m#2 init_screen::m#1 ] +zp ZP_WORD:16 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ fmul8::a#0 ] +reg byte x [ fmul8::b#0 ] +reg byte a [ fmul8::return#0 ] +reg byte a [ main::r#0 ] +reg byte a [ print_byte_at::$0 ] +reg byte y [ print_byte_at::$2 ] +reg byte a [ fmul8::return#1 ] diff --git a/src/test/ref/examples/fire/fire.sym b/src/test/ref/examples/fire/fire.sym index 1daabbadc..405e1e419 100644 --- a/src/test/ref/examples/fire/fire.sym +++ b/src/test/ref/examples/fire/fire.sym @@ -1 +1,194 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) BUFFER +(const byte*) BUFFER#0 BUFFER = (byte*) 16384 +(byte*) CHARSET +(const byte*) CHARSET#0 CHARSET = (byte*) 12288 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte*) SCREEN1 +(const byte*) SCREEN1#0 SCREEN1 = (byte*) 14336 +(byte*) SCREEN2 +(const byte*) SCREEN2#0 SCREEN2 = (byte*) 15360 +(byte) SID_CONTROL_NOISE +(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte) $80 +(byte*) SID_VOICE3_CONTROL +(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = (byte*) 54290 +(word*) SID_VOICE3_FREQ +(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = (word*) 54286 +(byte*) SID_VOICE3_OSC +(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = (byte*) 54299 +(byte) YELLOW +(const byte) YELLOW#0 YELLOW = (byte) 7 +(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill) +(label) fillscreen::@1 +(label) fillscreen::@return +(byte) fillscreen::fill +(byte) fillscreen::fill#5 reg byte x 1.8333333333333333 +(word) fillscreen::i +(word) fillscreen::i#1 i zp ZP_WORD:19 16.5 +(word) fillscreen::i#2 i zp ZP_WORD:19 7.333333333333333 +(byte*) fillscreen::screen +(byte*) fillscreen::screen#4 screen zp ZP_WORD:17 7.333333333333333 +(byte*) fillscreen::screen#5 screen zp ZP_WORD:17 17.5 +(byte*) fillscreen::screen#6 screen zp ZP_WORD:17 2.0 +(void()) fire((byte*) fire::screenbase) +(byte~) fire::$10 reg byte a 202.0 +(byte~) fire::$11 reg byte a 202.0 +(byte~) fire::$15 reg byte a 202.0 +(byte~) fire::$16 reg byte a 202.0 +(byte~) fire::$17 reg byte a 202.0 +(byte~) fire::$9 reg byte a 202.0 +(label) fire::@1 +(label) fire::@2 +(label) fire::@3 +(label) fire::@4 +(label) fire::@5 +(label) fire::@6 +(label) fire::@7 +(label) fire::@return +(byte*) fire::buffer +(byte*) fire::buffer#2 buffer zp ZP_WORD:4 202.0 +(byte*) fire::buffer#3 buffer#3 zp ZP_WORD:8 151.5 +(byte*) fire::buffer#4 buffer zp ZP_WORD:4 75.75 +(byte*) fire::buffer#7 buffer#7 zp ZP_WORD:8 44.888888888888886 +(byte) fire::c +(byte) fire::c#0 reg byte a 202.0 +(byte) fire::c#1 reg byte a 202.0 +(byte) fire::c#2 reg byte a 303.0 +(byte*) fire::screen +(byte*) fire::screen#0 screen zp ZP_WORD:2 0.26666666666666666 +(byte*) fire::screen#1 screen zp ZP_WORD:2 4.0 +(byte*~) fire::screen#10 screen#10 zp ZP_WORD:6 4.0 +(byte*) fire::screen#2 screen#2 zp ZP_WORD:6 101.0 +(byte*) fire::screen#3 screen zp ZP_WORD:2 67.33333333333333 +(byte*) fire::screen#4 screen#4 zp ZP_WORD:6 27.727272727272727 +(byte*) fire::screen#5 screen zp ZP_WORD:2 38.125 +(byte*) fire::screenbase +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN1#0&(word) $3fff*(byte) 4|>(word)(const byte*) CHARSET#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen +(label) main::toD0182 +(word~) main::toD0182_$0 +(number~) main::toD0182_$1 +(number~) main::toD0182_$2 +(number~) main::toD0182_$3 +(word~) main::toD0182_$4 +(byte~) main::toD0182_$5 +(number~) main::toD0182_$6 +(number~) main::toD0182_$7 +(number~) main::toD0182_$8 +(byte*) main::toD0182_gfx +(byte) main::toD0182_return +(const byte) main::toD0182_return#0 toD0182_return = >(word)(const byte*) SCREEN2#0&(word) $3fff*(byte) 4|>(word)(const byte*) CHARSET#0/(byte) 4&(byte) $f +(byte*) main::toD0182_screen +(void()) makecharset((byte*) makecharset::charset) +(byte~) makecharset::$11 reg byte a 2002.0 +(byte~) makecharset::$12 reg byte a 2002.0 +(byte~) makecharset::$13 $13 zp ZP_BYTE:21 2002.0 +(word~) makecharset::$17 $17 zp ZP_WORD:22 202.0 +(word~) makecharset::$18 $18 zp ZP_WORD:22 202.0 +(word~) makecharset::$19 $19 zp ZP_WORD:22 202.0 +(byte*~) makecharset::$26 $26 zp ZP_WORD:22 202.0 +(label) makecharset::@1 +(label) makecharset::@2 +(label) makecharset::@3 +(label) makecharset::@4 +(label) makecharset::@5 +(label) makecharset::@6 +(label) makecharset::@7 +(label) makecharset::@8 +(label) makecharset::@9 +(label) makecharset::@return +(byte) makecharset::b +(byte) makecharset::b#1 reg byte y 2002.0 +(byte) makecharset::b#2 reg byte y 429.0 +(byte) makecharset::b#3 reg byte y 443.42857142857144 +(byte) makecharset::bc +(byte) makecharset::bc#1 reg byte x 2002.0 +(byte) makecharset::bc#2 reg byte x 400.4 +(byte) makecharset::bc#3 reg byte x 2103.0 +(byte) makecharset::bc#5 reg byte x 202.0 +(byte) makecharset::bc#6 reg byte x 310.4 +(byte[8]) makecharset::bittab +(const byte[8]) makecharset::bittab#0 bittab = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte) makecharset::c +(byte) makecharset::c#1 c zp ZP_BYTE:14 16.5 +(byte) makecharset::c#7 c zp ZP_BYTE:14 51.14999999999999 +(byte*) makecharset::charset +(byte*) makecharset::font +(byte*) makecharset::font#1 font zp ZP_WORD:10 16.5 +(byte*) makecharset::font#2 font zp ZP_WORD:10 16.5 +(byte*) makecharset::font1 +(byte*) makecharset::font1#1 font1 zp ZP_WORD:12 16.5 +(byte*) makecharset::font1#2 font1 zp ZP_WORD:12 16.5 +(byte) makecharset::i +(byte) makecharset::i#1 i zp ZP_BYTE:15 151.5 +(byte) makecharset::i#6 i zp ZP_BYTE:15 76.70588235294117 +(byte) makecharset::ii +(byte) makecharset::ii#1 ii zp ZP_BYTE:16 1501.5 +(byte) makecharset::ii#2 ii zp ZP_BYTE:16 333.6666666666667 +(byte()) sid_rnd() +(label) sid_rnd::@return +(byte) sid_rnd::return +(byte) sid_rnd::return#0 reg byte a 34.33333333333333 +(byte) sid_rnd::return#2 reg byte a 202.0 +(void()) sid_rnd_init() +(label) sid_rnd_init::@return + +zp ZP_WORD:2 [ fire::screen#0 fire::screen#5 fire::screen#3 fire::screen#1 ] +zp ZP_WORD:4 [ fire::buffer#4 fire::buffer#2 ] +zp ZP_WORD:6 [ fire::screen#4 fire::screen#10 fire::screen#2 ] +zp ZP_WORD:8 [ fire::buffer#7 fire::buffer#3 ] +reg byte a [ fire::c#2 fire::c#0 fire::c#1 ] +zp ZP_WORD:10 [ makecharset::font#2 makecharset::font#1 ] +zp ZP_WORD:12 [ makecharset::font1#2 makecharset::font1#1 ] +zp ZP_BYTE:14 [ makecharset::c#7 makecharset::c#1 ] +zp ZP_BYTE:15 [ makecharset::i#6 makecharset::i#1 ] +reg byte x [ makecharset::bc#3 makecharset::bc#5 makecharset::bc#6 makecharset::bc#1 makecharset::bc#2 ] +zp ZP_BYTE:16 [ makecharset::ii#2 makecharset::ii#1 ] +reg byte y [ makecharset::b#2 makecharset::b#3 makecharset::b#1 ] +reg byte x [ fillscreen::fill#5 ] +zp ZP_WORD:17 [ fillscreen::screen#5 fillscreen::screen#6 fillscreen::screen#4 ] +zp ZP_WORD:19 [ fillscreen::i#2 fillscreen::i#1 ] +reg byte a [ sid_rnd::return#2 ] +reg byte a [ fire::$15 ] +reg byte a [ fire::$16 ] +reg byte a [ fire::$17 ] +reg byte a [ fire::$9 ] +reg byte a [ fire::$10 ] +reg byte a [ fire::$11 ] +reg byte a [ sid_rnd::return#0 ] +reg byte a [ makecharset::$11 ] +reg byte a [ makecharset::$12 ] +zp ZP_BYTE:21 [ makecharset::$13 ] +zp ZP_WORD:22 [ makecharset::$17 makecharset::$18 makecharset::$19 makecharset::$26 ] diff --git a/src/test/ref/examples/helloworld/helloworld.sym b/src/test/ref/examples/helloworld/helloworld.sym index 1daabbadc..91f5a7d56 100644 --- a/src/test/ref/examples/helloworld/helloworld.sym +++ b/src/test/ref/examples/helloworld/helloworld.sym @@ -1 +1,28 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(const string) main::str str = (string) "hello world!@" +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:6 11.0 +(byte*) print_char_cursor#10 print_char_cursor zp ZP_WORD:6 4.4 +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 16.5 +(byte*) print_line_cursor#6 print_line_cursor zp ZP_WORD:2 22.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:4 22.0 +(byte*) print_str::str#2 str zp ZP_WORD:4 11.0 + +zp ZP_WORD:2 [ print_line_cursor#6 print_line_cursor#1 ] +zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ] +zp ZP_WORD:6 [ print_char_cursor#10 print_char_cursor#1 ] diff --git a/src/test/ref/examples/irq/irq-hyperscreen.sym b/src/test/ref/examples/irq/irq-hyperscreen.sym index 1daabbadc..9df57be0a 100644 --- a/src/test/ref/examples/irq/irq-hyperscreen.sym +++ b/src/test/ref/examples/irq/irq-hyperscreen.sym @@ -1 +1,36 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) GHOST_BYTE +(const byte*) GHOST_BYTE#0 GHOST_BYTE = (byte*) 16383 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +interrupt(KERNEL_MIN)(void()) irq_bottom_1() +(label) irq_bottom_1::@return +interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() +(label) irq_bottom_2::@return +(void()) main() +(label) main::@return + diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.sym b/src/test/ref/examples/multiplexer/simple-multiplexer.sym index 1daabbadc..ba9be5fdd 100644 --- a/src/test/ref/examples/multiplexer/simple-multiplexer.sym +++ b/src/test/ref/examples/multiplexer/simple-multiplexer.sym @@ -1 +1,205 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) D011 +(const byte*) D011#0 D011 = (byte*) 53265 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) PLEX_COUNT +(const byte) PLEX_COUNT#0 PLEX_COUNT = (byte) $20 +(byte[8]) PLEX_FREE_YPOS +(const byte[8]) PLEX_FREE_YPOS#0 PLEX_FREE_YPOS = { fill( 8, 0) } +(byte[PLEX_COUNT#0]) PLEX_PTR +(const byte[PLEX_COUNT#0]) PLEX_PTR#0 PLEX_PTR = { fill( PLEX_COUNT#0, 0) } +(byte*) PLEX_SCREEN_PTR +(const byte*) PLEX_SCREEN_PTR#1 PLEX_SCREEN_PTR = (const byte*) SCREEN#0+(word) $3f8 +(byte[PLEX_COUNT#0]) PLEX_SORTED_IDX +(const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 PLEX_SORTED_IDX = { fill( PLEX_COUNT#0, 0) } +(word[PLEX_COUNT#0]) PLEX_XPOS +(const word[PLEX_COUNT#0]) PLEX_XPOS#0 PLEX_XPOS = { fill( PLEX_COUNT#0, 0) } +(byte[PLEX_COUNT#0]) PLEX_YPOS +(const byte[PLEX_COUNT#0]) PLEX_YPOS#0 PLEX_YPOS = { fill( PLEX_COUNT#0, 0) } +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = (byte*) 8192 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_XMSB +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = (byte*) 53264 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(byte) VIC_RST8 +(const byte) VIC_RST8#0 VIC_RST8 = (byte) $80 +(byte*) YSIN +(const byte*) YSIN#0 YSIN = (byte*) 8448 +(void()) init() +(byte~) init::$8 reg byte a 22.0 +(label) init::@1 +(label) init::@2 +(label) init::@3 +(label) init::@return +(byte) init::ss +(byte) init::ss#1 reg byte x 16.5 +(byte) init::ss#2 reg byte x 16.5 +(byte) init::sx +(byte) init::sx#1 reg byte x 16.5 +(byte) init::sx#2 reg byte x 8.8 +(word) init::xp +(word) init::xp#1 xp zp ZP_WORD:9 7.333333333333333 +(word) init::xp#2 xp zp ZP_WORD:9 8.25 +(void()) loop() +(byte~) loop::$4 reg byte a 202.0 +(label) loop::@1 +(label) loop::@10 +(label) loop::@11 +(label) loop::@12 +(label) loop::@2 +(label) loop::@3 +(label) loop::@4 +(label) loop::@5 +(label) loop::@6 +(label) loop::@7 +(label) loop::@8 +(label) loop::@9 +(label) loop::plexFreeNextYpos1 +(byte) loop::plexFreeNextYpos1_return +(byte) loop::plexFreeNextYpos1_return#0 plexFreeNextYpos1_return zp ZP_BYTE:11 551.0 +(byte) loop::rasterY +(byte) loop::sin_idx +(byte) loop::sin_idx#1 sin_idx zp ZP_BYTE:2 1.4666666666666666 +(byte) loop::sin_idx#6 sin_idx zp ZP_BYTE:2 3.666666666666667 +(byte) loop::ss +(byte) loop::ss#1 ss zp ZP_BYTE:7 151.5 +(byte) loop::ss#5 ss zp ZP_BYTE:7 33.666666666666664 +(byte) loop::sy +(byte) loop::sy#1 reg byte y 151.5 +(byte) loop::sy#2 reg byte y 101.0 +(byte) loop::y_idx +(byte) loop::y_idx#1 reg byte x 67.33333333333333 +(byte) loop::y_idx#2 reg byte x 157.0 +(byte~) loop::y_idx#4 reg byte x 22.0 +(void()) main() +(label) main::@1 +(label) main::@return +(void()) plexInit((byte*) plexInit::screen) +(label) plexInit::@1 +(label) plexInit::@return +(byte) plexInit::i +(byte) plexInit::i#1 reg byte x 16.5 +(byte) plexInit::i#2 reg byte x 22.0 +(label) plexInit::plexSetScreen1 +(byte*~) plexInit::plexSetScreen1_$0 +(byte*) plexInit::plexSetScreen1_screen +(byte*) plexInit::screen +(void()) plexShowSprite() +(byte~) plexShowSprite::$11 reg byte x 2.0 +(byte~) plexShowSprite::$2 reg byte a 4.0 +(byte~) plexShowSprite::$3 reg byte a 4.0 +(byte~) plexShowSprite::$5 reg byte x 4.0 +(byte~) plexShowSprite::$9 reg byte a 4.0 +(label) plexShowSprite::@1 +(label) plexShowSprite::@2 +(label) plexShowSprite::@3 +(label) plexShowSprite::@4 +(label) plexShowSprite::@5 +(label) plexShowSprite::@return +(label) plexShowSprite::plexFreeAdd1 +(number~) plexShowSprite::plexFreeAdd1_$0 +(byte~) plexShowSprite::plexFreeAdd1_$0#0 reg byte a 4.0 +(number~) plexShowSprite::plexFreeAdd1_$1 +(byte~) plexShowSprite::plexFreeAdd1_$1#0 reg byte x 4.0 +(number~) plexShowSprite::plexFreeAdd1_$2 +(byte) plexShowSprite::plexFreeAdd1_ypos +(byte) plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 3.0 +(byte) plexShowSprite::plex_sprite_idx2 +(byte) plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp ZP_BYTE:12 0.5454545454545454 +(byte) plexShowSprite::xpos_idx +(byte) plexShowSprite::xpos_idx#0 reg byte a 4.0 +(byte) plexShowSprite::ypos +(void()) plexSort() +(label) plexSort::@1 +(label) plexSort::@2 +(label) plexSort::@3 +(label) plexSort::@4 +(label) plexSort::@5 +(label) plexSort::@6 +(label) plexSort::@return +(byte) plexSort::m +(byte) plexSort::m#1 m zp ZP_BYTE:8 151.5 +(byte) plexSort::m#2 m zp ZP_BYTE:8 42.08333333333333 +(byte) plexSort::nxt_idx +(byte) plexSort::nxt_idx#0 nxt_idx zp ZP_BYTE:13 30.299999999999997 +(byte) plexSort::nxt_y +(byte) plexSort::nxt_y#0 nxt_y zp ZP_BYTE:14 150.375 +(label) plexSort::plexFreePrepare1 +(bool~) plexSort::plexFreePrepare1_$0 +(label) plexSort::plexFreePrepare1_@1 +(byte) plexSort::plexFreePrepare1_s +(byte) plexSort::plexFreePrepare1_s#1 reg byte x 151.5 +(byte) plexSort::plexFreePrepare1_s#2 reg byte x 151.5 +(byte) plexSort::s +(byte) plexSort::s#1 reg byte x 1368.3333333333335 +(byte) plexSort::s#2 reg byte x 202.0 +(byte) plexSort::s#3 reg byte x 2052.5 +(byte~) plexSort::s#6 reg byte x 202.0 +(byte) plex_free_next +(byte) plex_free_next#13 plex_free_next zp ZP_BYTE:3 4.681818181818182 +(byte) plex_free_next#17 plex_free_next zp ZP_BYTE:3 20.599999999999998 +(byte) plex_show_idx +(byte) plex_show_idx#15 plex_show_idx zp ZP_BYTE:5 11.444444444444443 +(byte) plex_show_idx#42 plex_show_idx zp ZP_BYTE:5 4.541666666666665 +(byte) plex_sprite_idx +(byte) plex_sprite_idx#15 plex_sprite_idx zp ZP_BYTE:4 10.299999999999999 +(byte) plex_sprite_idx#42 plex_sprite_idx zp ZP_BYTE:4 4.863636363636363 +(byte) plex_sprite_msb +(byte) plex_sprite_msb#16 plex_sprite_msb zp ZP_BYTE:6 20.599999999999998 +(byte) plex_sprite_msb#3 plex_sprite_msb zp ZP_BYTE:6 2.0 +(byte) plex_sprite_msb#42 plex_sprite_msb zp ZP_BYTE:6 4.28 + +zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] +reg byte x [ loop::y_idx#2 loop::y_idx#1 loop::y_idx#4 ] +reg byte y [ loop::sy#2 loop::sy#1 ] +zp ZP_BYTE:3 [ plex_free_next#17 plex_free_next#13 ] +zp ZP_BYTE:4 [ plex_sprite_idx#42 plex_sprite_idx#15 ] +zp ZP_BYTE:5 [ plex_show_idx#42 plex_show_idx#15 ] +zp ZP_BYTE:6 [ plex_sprite_msb#42 plex_sprite_msb#16 plex_sprite_msb#3 ] +zp ZP_BYTE:7 [ loop::ss#5 loop::ss#1 ] +zp ZP_BYTE:8 [ plexSort::m#2 plexSort::m#1 ] +reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ] +reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] +reg byte x [ init::sx#2 init::sx#1 ] +zp ZP_WORD:9 [ init::xp#2 init::xp#1 ] +reg byte x [ init::ss#2 init::ss#1 ] +reg byte x [ plexInit::i#2 plexInit::i#1 ] +reg byte a [ loop::$4 ] +zp ZP_BYTE:11 [ loop::plexFreeNextYpos1_return#0 ] +zp ZP_BYTE:12 [ plexShowSprite::plex_sprite_idx2#0 ] +reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ] +reg byte a [ plexShowSprite::plexFreeAdd1_$0#0 ] +reg byte x [ plexShowSprite::plexFreeAdd1_$1#0 ] +reg byte a [ plexShowSprite::xpos_idx#0 ] +reg byte x [ plexShowSprite::$11 ] +reg byte a [ plexShowSprite::$2 ] +reg byte a [ plexShowSprite::$3 ] +reg byte a [ plexShowSprite::$9 ] +reg byte x [ plexShowSprite::$5 ] +zp ZP_BYTE:13 [ plexSort::nxt_idx#0 ] +zp ZP_BYTE:14 [ plexSort::nxt_y#0 ] +reg byte x [ plexSort::s#2 ] +reg byte a [ init::$8 ] diff --git a/src/test/ref/examples/music/music.sym b/src/test/ref/examples/music/music.sym index 1daabbadc..12c1b578f 100644 --- a/src/test/ref/examples/music/music.sym +++ b/src/test/ref/examples/music/music.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) MUSIC +(const byte*) MUSIC#0 MUSIC = (byte*) 4096 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(void()) main() +(label) main::@1 +(label) main::@2 + diff --git a/src/test/ref/examples/music/music_irq.sym b/src/test/ref/examples/music/music_irq.sym index 1daabbadc..43327ccbd 100644 --- a/src/test/ref/examples/music/music_irq.sym +++ b/src/test/ref/examples/music/music_irq.sym @@ -1 +1,29 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) MUSIC +(const byte*) MUSIC#0 MUSIC = (byte*) 4096 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +interrupt(KERNEL_KEYBOARD)(void()) irq_play() +(label) irq_play::@return +(void()) main() +(label) main::@return + diff --git a/src/test/ref/examples/plasma/plasma-unroll.sym b/src/test/ref/examples/plasma/plasma-unroll.sym index 1daabbadc..d623b655b 100644 --- a/src/test/ref/examples/plasma/plasma-unroll.sym +++ b/src/test/ref/examples/plasma/plasma-unroll.sym @@ -1 +1,283 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte) BLUE +(const byte) BLUE#0 BLUE = (byte) 6 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CHARSET +(const byte*) CHARSET#0 CHARSET = (byte*) 8192 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte*) SCREEN1 +(const byte*) SCREEN1#0 SCREEN1 = (byte*) 10240 +(byte) SID_CONTROL_NOISE +(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte) $80 +(byte*) SID_VOICE3_CONTROL +(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = (byte*) 54290 +(word*) SID_VOICE3_FREQ +(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = (word*) 54286 +(byte*) SID_VOICE3_OSC +(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = (byte*) 54299 +(byte*) SINTABLE +(const byte*) SINTABLE#0 SINTABLE = (byte*) 7936 +(byte) c1A +(byte) c1A#1 c1A zp ZP_BYTE:4 1.1538461538461537 +(byte) c1A#3 c1A zp ZP_BYTE:4 0.18840579710144925 +(byte) c1B +(byte) c1B#1 c1B zp ZP_BYTE:5 1.0714285714285714 +(byte) c1B#3 c1B zp ZP_BYTE:5 0.1911764705882353 +(byte) c2A +(byte) c2A#1 c2A zp ZP_BYTE:6 0.625 +(byte) c2A#3 c2A zp ZP_BYTE:6 0.22413793103448276 +(byte) c2B +(byte) c2B#1 c2B zp ZP_BYTE:7 0.6 +(byte) c2B#3 c2B zp ZP_BYTE:7 0.22807017543859648 +(void()) doplasma((byte*) doplasma::screen) +(byte~) doplasma::$1 reg byte a 202.0 +(byte~) doplasma::$3 reg byte a 202.0 +(label) doplasma::@1 +(label) doplasma::@2 +(label) doplasma::@3 +(label) doplasma::@4 +(label) doplasma::@5 +(label) doplasma::@6 +(label) doplasma::@6_1 +(label) doplasma::@6_10 +(label) doplasma::@6_11 +(label) doplasma::@6_12 +(label) doplasma::@6_13 +(label) doplasma::@6_14 +(label) doplasma::@6_15 +(label) doplasma::@6_16 +(label) doplasma::@6_17 +(label) doplasma::@6_18 +(label) doplasma::@6_19 +(label) doplasma::@6_2 +(label) doplasma::@6_20 +(label) doplasma::@6_21 +(label) doplasma::@6_22 +(label) doplasma::@6_23 +(label) doplasma::@6_24 +(label) doplasma::@6_3 +(label) doplasma::@6_4 +(label) doplasma::@6_5 +(label) doplasma::@6_6 +(label) doplasma::@6_7 +(label) doplasma::@6_8 +(label) doplasma::@6_9 +(label) doplasma::@7 +(label) doplasma::@8 +(label) doplasma::@return +(byte) doplasma::c1a +(byte) doplasma::c1a#0 c1a zp ZP_BYTE:8 2.0 +(byte) doplasma::c1a#1 c1a zp ZP_BYTE:8 40.4 +(byte) doplasma::c1a#2 c1a zp ZP_BYTE:8 76.25 +(byte) doplasma::c1b +(byte) doplasma::c1b#0 c1b zp ZP_BYTE:9 4.0 +(byte) doplasma::c1b#1 c1b zp ZP_BYTE:9 50.5 +(byte) doplasma::c1b#2 c1b zp ZP_BYTE:9 61.0 +(byte) doplasma::c2a +(byte) doplasma::c2a#0 c2a zp ZP_BYTE:11 2.0 +(byte) doplasma::c2a#1 c2a zp ZP_BYTE:11 50.5 +(byte) doplasma::c2a#2 c2a zp ZP_BYTE:11 101.66666666666666 +(byte) doplasma::c2b +(byte) doplasma::c2b#0 c2b zp ZP_BYTE:12 4.0 +(byte) doplasma::c2b#1 c2b zp ZP_BYTE:12 67.33333333333333 +(byte) doplasma::c2b#2 c2b zp ZP_BYTE:12 76.25 +(byte) doplasma::i +(byte) doplasma::i#1 i zp ZP_BYTE:10 101.0 +(byte) doplasma::i#2 i zp ZP_BYTE:10 50.5 +(byte) doplasma::i1 +(byte) doplasma::i1#1 i1 zp ZP_BYTE:13 151.5 +(byte) doplasma::i1#2 i1 zp ZP_BYTE:13 60.599999999999994 +(byte) doplasma::i2 +(byte) doplasma::i2#1 reg byte x 151.5 +(byte) doplasma::i2#2 reg byte x 54.3846153846154 +(byte) doplasma::ii +(byte*) doplasma::screen +(byte) doplasma::val +(byte) doplasma::val#0 reg byte a 202.0 +(byte) doplasma::val#1 reg byte a 151.5 +(byte) doplasma::val#10 reg byte a 151.5 +(byte) doplasma::val#12 reg byte a 151.5 +(byte) doplasma::val#14 reg byte a 151.5 +(byte) doplasma::val#16 reg byte a 151.5 +(byte) doplasma::val#18 reg byte a 151.5 +(byte) doplasma::val#20 reg byte a 151.5 +(byte) doplasma::val#22 reg byte a 151.5 +(byte) doplasma::val#24 reg byte a 151.5 +(byte) doplasma::val#26 reg byte a 151.5 +(byte) doplasma::val#28 reg byte a 151.5 +(byte) doplasma::val#30 reg byte a 151.5 +(byte) doplasma::val#32 reg byte a 151.5 +(byte) doplasma::val#34 reg byte a 151.5 +(byte) doplasma::val#36 reg byte a 151.5 +(byte) doplasma::val#38 reg byte a 151.5 +(byte) doplasma::val#4 reg byte a 151.5 +(byte) doplasma::val#40 reg byte a 151.5 +(byte) doplasma::val#42 reg byte a 151.5 +(byte) doplasma::val#44 reg byte a 151.5 +(byte) doplasma::val#46 reg byte a 151.5 +(byte) doplasma::val#48 reg byte a 151.5 +(byte) doplasma::val#50 reg byte a 202.0 +(byte) doplasma::val#6 reg byte a 151.5 +(byte) doplasma::val#8 reg byte a 151.5 +(byte[$28]) doplasma::xbuf +(const byte[$28]) doplasma::xbuf#0 xbuf = { fill( $28, 0) } +(byte[$19]) doplasma::ybuf +(const byte[$19]) doplasma::ybuf#0 ybuf = { fill( $19, 0) } +(byte) doplasma::yprev +(byte) doplasma::yprev#2 reg byte x 101.0 +(byte~) doplasma::yprev#3 reg byte x 202.0 +(byte) doplasma::yval +(byte) doplasma::yval#0 yval zp ZP_BYTE:21 43.285714285714285 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(byte*) main::col +(byte*) main::col#1 col zp ZP_WORD:2 16.5 +(byte*) main::col#2 col zp ZP_WORD:2 16.5 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN1#0&(word) $3fff*(byte) 4|>(word)(const byte*) CHARSET#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen +(void()) makecharset((byte*) makecharset::charset) +(byte~) makecharset::$11 reg byte a 22.0 +(byte*~) makecharset::$16 $16 zp ZP_WORD:24 202.0 +(byte~) makecharset::$2 reg byte a 22.0 +(byte~) makecharset::$3 reg byte a 2002.0 +(byte~) makecharset::$4 $4 zp ZP_BYTE:23 2002.0 +(word~) makecharset::$8 $8 zp ZP_WORD:24 202.0 +(word~) makecharset::$9 $9 zp ZP_WORD:24 202.0 +(label) makecharset::@1 +(label) makecharset::@10 +(label) makecharset::@11 +(label) makecharset::@2 +(label) makecharset::@3 +(label) makecharset::@4 +(label) makecharset::@5 +(label) makecharset::@6 +(label) makecharset::@7 +(label) makecharset::@8 +(label) makecharset::@9 +(label) makecharset::@return +(byte) makecharset::b +(byte) makecharset::b#1 reg byte y 2002.0 +(byte) makecharset::b#2 reg byte y 500.5 +(byte) makecharset::b#3 reg byte y 517.3333333333334 +(byte[8]) makecharset::bittab +(const byte[8]) makecharset::bittab#0 bittab = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(word) makecharset::c +(word) makecharset::c#1 c zp ZP_WORD:14 16.5 +(word) makecharset::c#2 c zp ZP_WORD:14 5.800000000000001 +(byte*) makecharset::charset +(byte) makecharset::i +(byte) makecharset::i#1 i zp ZP_BYTE:18 151.5 +(byte) makecharset::i#7 i zp ZP_BYTE:18 20.2 +(byte) makecharset::ii +(byte) makecharset::ii#1 reg byte x 1501.5 +(byte) makecharset::ii#2 reg byte x 375.375 +(byte) makecharset::s +(byte) makecharset::s#0 s zp ZP_BYTE:22 56.22222222222223 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(const byte) print_char::ch#0 ch = (byte) '.' +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:16 4.333333333333333 +(byte*) print_char_cursor#18 print_char_cursor zp ZP_WORD:16 11.0 +(byte*) print_char_cursor#44 print_char_cursor zp ZP_WORD:16 1.0833333333333333 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:19 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:19 16.5 +(byte*) print_line_cursor +(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024 +(byte*) print_screen +(byte()) sid_rnd() +(label) sid_rnd::@return +(byte) sid_rnd::return +(byte) sid_rnd::return#0 reg byte a 334.33333333333337 +(byte) sid_rnd::return#2 reg byte a 2002.0 +(void()) sid_rnd_init() +(label) sid_rnd_init::@return + +zp ZP_WORD:2 [ main::col#2 main::col#1 ] +zp ZP_BYTE:4 [ c1A#1 c1A#3 ] +zp ZP_BYTE:5 [ c1B#1 c1B#3 ] +zp ZP_BYTE:6 [ c2A#1 c2A#3 ] +zp ZP_BYTE:7 [ c2B#1 c2B#3 ] +zp ZP_BYTE:8 [ doplasma::c1a#2 doplasma::c1a#0 doplasma::c1a#1 ] +zp ZP_BYTE:9 [ doplasma::c1b#2 doplasma::c1b#0 doplasma::c1b#1 ] +reg byte x [ doplasma::yprev#2 doplasma::yprev#3 ] +zp ZP_BYTE:10 [ doplasma::i#2 doplasma::i#1 ] +zp ZP_BYTE:11 [ doplasma::c2a#2 doplasma::c2a#0 doplasma::c2a#1 ] +zp ZP_BYTE:12 [ doplasma::c2b#2 doplasma::c2b#0 doplasma::c2b#1 ] +zp ZP_BYTE:13 [ doplasma::i1#2 doplasma::i1#1 ] +reg byte x [ doplasma::i2#2 doplasma::i2#1 ] +zp ZP_WORD:14 [ makecharset::c#2 makecharset::c#1 ] +zp ZP_WORD:16 [ print_char_cursor#44 print_char_cursor#18 print_char_cursor#1 ] +zp ZP_BYTE:18 [ makecharset::i#7 makecharset::i#1 ] +reg byte x [ makecharset::ii#2 makecharset::ii#1 ] +reg byte y [ makecharset::b#2 makecharset::b#3 makecharset::b#1 ] +zp ZP_WORD:19 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_BYTE:21 [ doplasma::yval#0 ] +reg byte a [ doplasma::$1 ] +reg byte a [ doplasma::$3 ] +reg byte a [ doplasma::val#0 ] +reg byte a [ doplasma::val#1 ] +reg byte a [ doplasma::val#4 ] +reg byte a [ doplasma::val#6 ] +reg byte a [ doplasma::val#8 ] +reg byte a [ doplasma::val#10 ] +reg byte a [ doplasma::val#12 ] +reg byte a [ doplasma::val#14 ] +reg byte a [ doplasma::val#16 ] +reg byte a [ doplasma::val#18 ] +reg byte a [ doplasma::val#20 ] +reg byte a [ doplasma::val#22 ] +reg byte a [ doplasma::val#24 ] +reg byte a [ doplasma::val#26 ] +reg byte a [ doplasma::val#28 ] +reg byte a [ doplasma::val#30 ] +reg byte a [ doplasma::val#32 ] +reg byte a [ doplasma::val#34 ] +reg byte a [ doplasma::val#36 ] +reg byte a [ doplasma::val#38 ] +reg byte a [ doplasma::val#40 ] +reg byte a [ doplasma::val#42 ] +reg byte a [ doplasma::val#44 ] +reg byte a [ doplasma::val#46 ] +reg byte a [ doplasma::val#48 ] +reg byte a [ doplasma::val#50 ] +reg byte a [ makecharset::$2 ] +zp ZP_BYTE:22 [ makecharset::s#0 ] +reg byte a [ sid_rnd::return#2 ] +reg byte a [ makecharset::$3 ] +zp ZP_BYTE:23 [ makecharset::$4 ] +zp ZP_WORD:24 [ makecharset::$8 makecharset::$9 makecharset::$16 ] +reg byte a [ makecharset::$11 ] +reg byte a [ sid_rnd::return#0 ] diff --git a/src/test/ref/examples/plasma/plasma.sym b/src/test/ref/examples/plasma/plasma.sym index 1daabbadc..43d41b3b7 100644 --- a/src/test/ref/examples/plasma/plasma.sym +++ b/src/test/ref/examples/plasma/plasma.sym @@ -1 +1,228 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte) BLUE +(const byte) BLUE#0 BLUE = (byte) 6 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CHARSET +(const byte*) CHARSET#0 CHARSET = (byte*) 8192 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte*) SCREEN1 +(const byte*) SCREEN1#0 SCREEN1 = (byte*) 10240 +(byte*) SCREEN2 +(const byte*) SCREEN2#0 SCREEN2 = (byte*) 11264 +(byte) SID_CONTROL_NOISE +(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte) $80 +(byte*) SID_VOICE3_CONTROL +(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = (byte*) 54290 +(word*) SID_VOICE3_FREQ +(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = (word*) 54286 +(byte*) SID_VOICE3_OSC +(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = (byte*) 54299 +(byte*) SINTABLE +(const byte*) SINTABLE#0 SINTABLE = (byte*) 7936 +(byte) c1A +(byte) c1A#10 c1A zp ZP_BYTE:4 2.6000000000000005 +(byte) c1A#14 c1A zp ZP_BYTE:4 11.0 +(byte) c1A#4 c1A zp ZP_BYTE:4 0.8275862068965517 +(byte) c1B +(byte) c1B#10 c1B zp ZP_BYTE:5 2.3636363636363633 +(byte) c1B#14 c1B zp ZP_BYTE:5 11.0 +(byte) c1B#4 c1B zp ZP_BYTE:5 0.8571428571428571 +(byte) c2A +(byte) c2A#14 c2A zp ZP_BYTE:6 11.0 +(byte) c2A#24 c2A zp ZP_BYTE:6 1.2380952380952381 +(byte) c2A#4 c2A zp ZP_BYTE:6 1.3333333333333335 +(byte) c2B +(byte) c2B#14 c2B zp ZP_BYTE:7 11.0 +(byte) c2B#24 c2B zp ZP_BYTE:7 1.1818181818181817 +(byte) c2B#4 c2B zp ZP_BYTE:7 1.411764705882353 +(void()) doplasma((byte*) doplasma::screen) +(byte~) doplasma::$0 reg byte a 202.0 +(byte~) doplasma::$2 reg byte a 202.0 +(byte~) doplasma::$4 reg byte a 2002.0 +(label) doplasma::@1 +(label) doplasma::@2 +(label) doplasma::@3 +(label) doplasma::@4 +(label) doplasma::@5 +(label) doplasma::@6 +(label) doplasma::@7 +(label) doplasma::@return +(byte) doplasma::c1a +(byte) doplasma::c1a#0 c1a zp ZP_BYTE:8 2.0 +(byte) doplasma::c1a#1 c1a zp ZP_BYTE:8 50.5 +(byte) doplasma::c1a#2 c1a zp ZP_BYTE:8 101.66666666666666 +(byte) doplasma::c1b +(byte) doplasma::c1b#0 c1b zp ZP_BYTE:9 4.0 +(byte) doplasma::c1b#1 c1b zp ZP_BYTE:9 67.33333333333333 +(byte) doplasma::c1b#2 c1b zp ZP_BYTE:9 76.25 +(byte) doplasma::c2a +(byte) doplasma::c2a#0 c2a zp ZP_BYTE:11 2.0 +(byte) doplasma::c2a#1 c2a zp ZP_BYTE:11 50.5 +(byte) doplasma::c2a#2 c2a zp ZP_BYTE:11 101.66666666666666 +(byte) doplasma::c2b +(byte) doplasma::c2b#0 c2b zp ZP_BYTE:12 4.0 +(byte) doplasma::c2b#1 c2b zp ZP_BYTE:12 67.33333333333333 +(byte) doplasma::c2b#2 c2b zp ZP_BYTE:12 76.25 +(byte) doplasma::i +(byte) doplasma::i#1 i zp ZP_BYTE:10 151.5 +(byte) doplasma::i#2 i zp ZP_BYTE:10 60.599999999999994 +(byte) doplasma::i1 +(byte) doplasma::i1#1 i1 zp ZP_BYTE:13 151.5 +(byte) doplasma::i1#2 i1 zp ZP_BYTE:13 60.599999999999994 +(byte) doplasma::i2 +(byte) doplasma::i2#1 reg byte y 1501.5 +(byte) doplasma::i2#2 reg byte y 1334.6666666666667 +(byte) doplasma::ii +(byte) doplasma::ii#1 reg byte x 151.5 +(byte) doplasma::ii#4 reg byte x 171.85714285714283 +(byte*) doplasma::screen +(byte*) doplasma::screen#10 screen zp ZP_WORD:14 0.08695652173913043 +(byte*) doplasma::screen#2 screen zp ZP_WORD:14 67.33333333333333 +(byte*) doplasma::screen#5 screen zp ZP_WORD:14 200.83333333333334 +(byte[$28]) doplasma::xbuf +(const byte[$28]) doplasma::xbuf#0 xbuf = { fill( $28, 0) } +(byte[$19]) doplasma::ybuf +(const byte[$19]) doplasma::ybuf#0 ybuf = { fill( $19, 0) } +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(byte*) main::col +(byte*) main::col#1 col zp ZP_WORD:2 16.5 +(byte*) main::col#2 col zp ZP_WORD:2 16.5 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN1#0&(word) $3fff*(byte) 4|>(word)(const byte*) CHARSET#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen +(label) main::toD0182 +(word~) main::toD0182_$0 +(number~) main::toD0182_$1 +(number~) main::toD0182_$2 +(number~) main::toD0182_$3 +(word~) main::toD0182_$4 +(byte~) main::toD0182_$5 +(number~) main::toD0182_$6 +(number~) main::toD0182_$7 +(number~) main::toD0182_$8 +(byte*) main::toD0182_gfx +(byte) main::toD0182_return +(const byte) main::toD0182_return#0 toD0182_return = >(word)(const byte*) SCREEN2#0&(word) $3fff*(byte) 4|>(word)(const byte*) CHARSET#0/(byte) 4&(byte) $f +(byte*) main::toD0182_screen +(void()) makecharset((byte*) makecharset::charset) +(byte~) makecharset::$11 reg byte a 22.0 +(byte*~) makecharset::$16 $16 zp ZP_WORD:25 202.0 +(byte~) makecharset::$2 reg byte a 22.0 +(byte~) makecharset::$3 reg byte a 2002.0 +(byte~) makecharset::$4 $4 zp ZP_BYTE:24 2002.0 +(word~) makecharset::$8 $8 zp ZP_WORD:25 202.0 +(word~) makecharset::$9 $9 zp ZP_WORD:25 202.0 +(label) makecharset::@1 +(label) makecharset::@10 +(label) makecharset::@11 +(label) makecharset::@2 +(label) makecharset::@3 +(label) makecharset::@4 +(label) makecharset::@5 +(label) makecharset::@6 +(label) makecharset::@7 +(label) makecharset::@8 +(label) makecharset::@9 +(label) makecharset::@return +(byte) makecharset::b +(byte) makecharset::b#1 reg byte y 2002.0 +(byte) makecharset::b#2 reg byte y 500.5 +(byte) makecharset::b#3 reg byte y 517.3333333333334 +(byte[8]) makecharset::bittab +(const byte[8]) makecharset::bittab#0 bittab = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(word) makecharset::c +(word) makecharset::c#1 c zp ZP_WORD:16 16.5 +(word) makecharset::c#2 c zp ZP_WORD:16 5.800000000000001 +(byte*) makecharset::charset +(byte) makecharset::i +(byte) makecharset::i#1 i zp ZP_BYTE:20 151.5 +(byte) makecharset::i#7 i zp ZP_BYTE:20 20.2 +(byte) makecharset::ii +(byte) makecharset::ii#1 reg byte x 1501.5 +(byte) makecharset::ii#2 reg byte x 375.375 +(byte) makecharset::s +(byte) makecharset::s#0 s zp ZP_BYTE:23 56.22222222222223 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(const byte) print_char::ch#0 ch = (byte) '.' +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:18 4.333333333333333 +(byte*) print_char_cursor#18 print_char_cursor zp ZP_WORD:18 11.0 +(byte*) print_char_cursor#46 print_char_cursor zp ZP_WORD:18 1.0833333333333333 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:21 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:21 16.5 +(byte*) print_line_cursor +(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024 +(byte*) print_screen +(byte()) sid_rnd() +(label) sid_rnd::@return +(byte) sid_rnd::return +(byte) sid_rnd::return#0 reg byte a 334.33333333333337 +(byte) sid_rnd::return#2 reg byte a 2002.0 +(void()) sid_rnd_init() +(label) sid_rnd_init::@return + +zp ZP_WORD:2 [ main::col#2 main::col#1 ] +zp ZP_BYTE:4 [ c1A#10 c1A#14 c1A#4 ] +zp ZP_BYTE:5 [ c1B#10 c1B#14 c1B#4 ] +zp ZP_BYTE:6 [ c2A#24 c2A#14 c2A#4 ] +zp ZP_BYTE:7 [ c2B#24 c2B#14 c2B#4 ] +zp ZP_BYTE:8 [ doplasma::c1a#2 doplasma::c1a#0 doplasma::c1a#1 ] +zp ZP_BYTE:9 [ doplasma::c1b#2 doplasma::c1b#0 doplasma::c1b#1 ] +zp ZP_BYTE:10 [ doplasma::i#2 doplasma::i#1 ] +zp ZP_BYTE:11 [ doplasma::c2a#2 doplasma::c2a#0 doplasma::c2a#1 ] +zp ZP_BYTE:12 [ doplasma::c2b#2 doplasma::c2b#0 doplasma::c2b#1 ] +zp ZP_BYTE:13 [ doplasma::i1#2 doplasma::i1#1 ] +reg byte x [ doplasma::ii#4 doplasma::ii#1 ] +zp ZP_WORD:14 [ doplasma::screen#5 doplasma::screen#10 doplasma::screen#2 ] +reg byte y [ doplasma::i2#2 doplasma::i2#1 ] +zp ZP_WORD:16 [ makecharset::c#2 makecharset::c#1 ] +zp ZP_WORD:18 [ print_char_cursor#46 print_char_cursor#18 print_char_cursor#1 ] +zp ZP_BYTE:20 [ makecharset::i#7 makecharset::i#1 ] +reg byte x [ makecharset::ii#2 makecharset::ii#1 ] +reg byte y [ makecharset::b#2 makecharset::b#3 makecharset::b#1 ] +zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ doplasma::$0 ] +reg byte a [ doplasma::$2 ] +reg byte a [ doplasma::$4 ] +reg byte a [ makecharset::$2 ] +zp ZP_BYTE:23 [ makecharset::s#0 ] +reg byte a [ sid_rnd::return#2 ] +reg byte a [ makecharset::$3 ] +zp ZP_BYTE:24 [ makecharset::$4 ] +zp ZP_WORD:25 [ makecharset::$8 makecharset::$9 makecharset::$16 ] +reg byte a [ makecharset::$11 ] +reg byte a [ sid_rnd::return#0 ] diff --git a/src/test/ref/examples/rasterbars/raster-bars.sym b/src/test/ref/examples/rasterbars/raster-bars.sym index 1daabbadc..5875a5570 100644 --- a/src/test/ref/examples/rasterbars/raster-bars.sym +++ b/src/test/ref/examples/rasterbars/raster-bars.sym @@ -1 +1,28 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(void()) raster() +(label) raster::@1 +(label) raster::@return +(byte) raster::col +(byte) raster::col#0 reg byte a 4.0 +(byte) raster::col#1 reg byte a 101.0 +(byte) raster::col#2 reg byte a 152.5 +(byte) raster::i +(byte) raster::i#1 reg byte x 75.75 +(byte) raster::i#2 reg byte x 67.33333333333333 +(byte[]) rastercols +(const byte[]) rastercols#0 rastercols = { (byte) $b, (byte) 0, (byte) $b, (byte) $b, (byte) $c, (byte) $b, (byte) $c, (byte) $c, (byte) $f, (byte) $c, (byte) $f, (byte) $f, (byte) 1, (byte) $f, (byte) 1, (byte) 1, (byte) $f, (byte) 1, (byte) $f, (byte) $f, (byte) $c, (byte) $f, (byte) $c, (byte) $c, (byte) $b, (byte) $c, (byte) $b, (byte) $b, (byte) 0, (byte) $b, (byte) 0, (byte) $ff } + +reg byte a [ raster::col#2 raster::col#0 raster::col#1 ] +reg byte x [ raster::i#2 raster::i#1 ] diff --git a/src/test/ref/examples/rotate/rotate.sym b/src/test/ref/examples/rotate/rotate.sym index 1daabbadc..86510086a 100644 --- a/src/test/ref/examples/rotate/rotate.sym +++ b/src/test/ref/examples/rotate/rotate.sym @@ -1 +1,230 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) COS +(const byte*) COS#0 COS = (byte*) 8192 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) LIGHT_BLUE +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte) $e +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SIN +(const byte*) SIN#0 SIN = (const byte*) COS#0+(byte) $40 +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = (byte*) 12288 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_XMSB +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = (byte*) 53264 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(void()) anim() +(signed word~) anim::$10 $10 zp ZP_WORD:5 202.0 +(signed word~) anim::$12 $12 zp ZP_WORD:5 202.0 +(byte~) anim::$15 reg byte a 101.0 +(byte~) anim::$18 reg byte a 202.0 +(byte~) anim::$22 reg byte a 202.0 +(byte~) anim::$25 reg byte a 202.0 +(label) anim::@1 +(label) anim::@10 +(label) anim::@11 +(label) anim::@12 +(label) anim::@13 +(label) anim::@2 +(label) anim::@3 +(label) anim::@4 +(label) anim::@5 +(label) anim::@6 +(label) anim::@7 +(label) anim::@8 +(label) anim::@9 +(byte) anim::angle +(byte) anim::angle#1 angle zp ZP_BYTE:2 11.0 +(byte) anim::angle#6 angle zp ZP_BYTE:2 0.55 +(signed byte) anim::cos_a +(byte) anim::i +(byte) anim::i#1 i zp ZP_BYTE:3 151.5 +(byte) anim::i#10 i zp ZP_BYTE:3 14.852941176470589 +(byte) anim::i2 +(byte) anim::i2#0 reg byte x 101.0 +(label) anim::mulf8s_prepare1 +(byte~) anim::mulf8s_prepare1_$0 +(signed byte) anim::mulf8s_prepare1_a +(label) anim::mulf8s_prepare2 +(byte~) anim::mulf8s_prepare2_$0 +(signed byte) anim::mulf8s_prepare2_a +(signed byte) anim::sin_a +(byte) anim::sprite_msb +(byte) anim::sprite_msb#1 sprite_msb zp ZP_BYTE:4 101.0 +(byte) anim::sprite_msb#10 sprite_msb zp ZP_BYTE:4 8.782608695652174 +(byte) anim::sprite_msb#2 sprite_msb zp ZP_BYTE:4 202.0 +(byte) anim::sprite_msb#5 sprite_msb zp ZP_BYTE:4 34.888888888888886 +(signed byte) anim::x +(signed byte) anim::x#0 x zp ZP_BYTE:19 18.9375 +(signed word) anim::xpos +(signed word) anim::xpos#0 xpos zp ZP_WORD:25 33.666666666666664 +(signed word) anim::xr +(signed word) anim::xr#0 xr zp ZP_WORD:21 22.444444444444443 +(signed word) anim::xr#1 xr zp ZP_WORD:21 40.4 +(signed byte) anim::y +(signed byte) anim::y#0 y zp ZP_BYTE:20 27.545454545454547 +(byte) anim::ypos +(byte) anim::ypos#0 reg byte y 50.5 +(signed word) anim::yr +(signed word) anim::yr#0 yr zp ZP_WORD:23 20.2 +(signed word) anim::yr#1 yr zp ZP_WORD:23 25.25 +(void()) init() +(label) init::@1 +(label) init::@2 +(label) init::@return +(byte) init::i +(byte) init::i#1 reg byte x 16.5 +(byte) init::i#2 reg byte x 14.666666666666666 +(byte*) init::sprites_ptr +(const byte*) init::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word) $3f8 +(void()) main() +(label) main::@1 +(label) main::@return +(signed word()) mulf8s_prepared((signed byte) mulf8s_prepared::b) +(byte~) mulf8s_prepared::$12 reg byte a 4.0 +(byte~) mulf8s_prepared::$15 reg byte a 4.0 +(byte~) mulf8s_prepared::$16 reg byte a 4.0 +(byte~) mulf8s_prepared::$8 reg byte a 4.0 +(label) mulf8s_prepared::@1 +(label) mulf8s_prepared::@2 +(label) mulf8s_prepared::@3 +(label) mulf8s_prepared::@4 +(label) mulf8s_prepared::@5 +(label) mulf8s_prepared::@return +(signed byte) mulf8s_prepared::b +(signed byte) mulf8s_prepared::b#0 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#1 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#2 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#3 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#4 reg byte y 31.23076923076923 +(word) mulf8s_prepared::m +(word) mulf8s_prepared::m#0 m zp ZP_WORD:5 2.0 +(word) mulf8s_prepared::m#1 m zp ZP_WORD:5 4.0 +(word) mulf8s_prepared::m#2 m zp ZP_WORD:5 4.0 +(word) mulf8s_prepared::m#4 m zp ZP_WORD:5 0.6666666666666666 +(word) mulf8s_prepared::m#5 m zp ZP_WORD:5 2.5 +(signed byte*) mulf8s_prepared::memA +(const signed byte*) mulf8s_prepared::memA#0 memA = (signed byte*) 253 +(signed word) mulf8s_prepared::return +(void()) mulf8u_prepare((byte) mulf8u_prepare::a) +(label) mulf8u_prepare::@return +(byte) mulf8u_prepare::a +(byte) mulf8u_prepare::a#2 reg byte a 204.0 +(byte~) mulf8u_prepare::a#3 reg byte a 202.0 +(byte~) mulf8u_prepare::a#4 reg byte a 202.0 +(byte*) mulf8u_prepare::memA +(const byte*) mulf8u_prepare::memA#0 memA = (byte*) 253 +(word()) mulf8u_prepared((byte) mulf8u_prepared::b) +(label) mulf8u_prepared::@return +(byte) mulf8u_prepared::b +(byte*) mulf8u_prepared::memB +(const byte*) mulf8u_prepared::memB#0 memB = (byte*) 255 +(byte*) mulf8u_prepared::resL +(const byte*) mulf8u_prepared::resL#0 resL = (byte*) 254 +(word) mulf8u_prepared::return +(word) mulf8u_prepared::return#0 return zp ZP_WORD:5 1.3333333333333333 +(word) mulf8u_prepared::return#2 return zp ZP_WORD:5 4.0 +(void()) mulf_init() +(byte~) mulf_init::$10 reg byte a 22.0 +(byte~) mulf_init::$11 reg byte a 22.0 +(byte~) mulf_init::$7 reg byte a 22.0 +(label) mulf_init::@1 +(label) mulf_init::@2 +(label) mulf_init::@3 +(label) mulf_init::@4 +(label) mulf_init::@5 +(label) mulf_init::@6 +(label) mulf_init::@7 +(label) mulf_init::@return +(byte) mulf_init::c +(byte) mulf_init::c#1 reg byte x 2.357142857142857 +(byte) mulf_init::c#2 reg byte x 22.0 +(byte) mulf_init::dir +(byte) mulf_init::dir#2 dir zp ZP_BYTE:18 4.714285714285714 +(byte) mulf_init::dir#3 dir zp ZP_BYTE:18 7.333333333333333 +(word) mulf_init::sqr +(word) mulf_init::sqr#1 sqr zp ZP_WORD:12 7.333333333333333 +(word) mulf_init::sqr#2 sqr zp ZP_WORD:12 22.0 +(word) mulf_init::sqr#3 sqr zp ZP_WORD:12 9.166666666666666 +(word) mulf_init::sqr#4 sqr zp ZP_WORD:12 6.6000000000000005 +(byte*) mulf_init::sqr1_hi +(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:9 5.5 +(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:9 3.0 +(byte*) mulf_init::sqr1_lo +(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:7 16.5 +(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:7 2.5384615384615383 +(byte*) mulf_init::sqr2_hi +(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:16 3.142857142857143 +(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:16 11.0 +(byte*) mulf_init::sqr2_lo +(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:14 16.5 +(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:14 4.125 +(byte) mulf_init::x_2 +(byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:11 11.0 +(byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:11 4.888888888888889 +(byte) mulf_init::x_2#3 x_2 zp ZP_BYTE:11 8.25 +(byte) mulf_init::x_255 +(byte) mulf_init::x_255#1 reg byte x 5.5 +(byte) mulf_init::x_255#2 reg byte x 11.0 +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } +(signed byte[8]) xs +(const signed byte[8]) xs#0 xs = { (signed byte) -$46, (signed byte) -$46, (signed byte) -$46, (signed byte) 0, (signed byte) 0, (signed byte) $46, (signed byte) $46, (signed byte) $46 } +(signed byte[8]) ys +(const signed byte[8]) ys#0 ys = { (signed byte) -$46, (signed byte) 0, (signed byte) $46, (signed byte) -$46, (signed byte) $46, (signed byte) -$46, (signed byte) 0, (signed byte) $46 } + +zp ZP_BYTE:2 [ anim::angle#6 anim::angle#1 ] +zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +reg byte y [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] +zp ZP_WORD:5 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 anim::$10 anim::$12 mulf8u_prepared::return#2 mulf8u_prepared::return#0 ] +reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] +reg byte x [ init::i#2 init::i#1 ] +reg byte x [ mulf_init::c#2 mulf_init::c#1 ] +zp ZP_WORD:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] +zp ZP_WORD:9 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +zp ZP_BYTE:11 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +zp ZP_WORD:12 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] +reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] +zp ZP_WORD:14 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] +zp ZP_WORD:16 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] +zp ZP_BYTE:18 [ mulf_init::dir#2 mulf_init::dir#3 ] +zp ZP_BYTE:19 [ anim::x#0 ] +zp ZP_BYTE:20 [ anim::y#0 ] +zp ZP_WORD:21 [ anim::xr#0 anim::xr#1 ] +zp ZP_WORD:23 [ anim::yr#0 anim::yr#1 ] +reg byte a [ anim::$15 ] +zp ZP_WORD:25 [ anim::xpos#0 ] +reg byte a [ anim::$18 ] +reg byte a [ anim::$22 ] +reg byte y [ anim::ypos#0 ] +reg byte x [ anim::i2#0 ] +reg byte a [ anim::$25 ] +reg byte a [ mulf8s_prepared::$8 ] +reg byte a [ mulf8s_prepared::$15 ] +reg byte a [ mulf8s_prepared::$12 ] +reg byte a [ mulf8s_prepared::$16 ] +reg byte a [ mulf_init::$7 ] +reg byte a [ mulf_init::$10 ] +reg byte a [ mulf_init::$11 ] diff --git a/src/test/ref/examples/scroll/scroll.sym b/src/test/ref/examples/scroll/scroll.sym index 1daabbadc..2ccf0affb 100644 --- a/src/test/ref/examples/scroll/scroll.sym +++ b/src/test/ref/examples/scroll/scroll.sym @@ -1 +1,55 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SCROLL +(const byte*) SCROLL#0 SCROLL = (byte*) 53270 +(byte*) TEXT +(const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" +(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill) +(label) fillscreen::@1 +(label) fillscreen::@return +(byte*) fillscreen::cursor +(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:4 16.5 +(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:4 16.5 +(byte) fillscreen::fill +(const byte) fillscreen::fill#0 fill = (byte) $20 +(byte*) fillscreen::screen +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(byte) main::c +(byte) main::c#0 reg byte x 16.5 +(byte) main::c#1 reg byte x 22.0 +(byte) main::c#2 reg byte x 33.0 +(byte) main::i +(byte) main::i#1 reg byte x 151.5 +(byte) main::i#2 reg byte x 202.0 +(byte[]) main::line +(const byte[]) main::line#0 line = (const byte*) SCREEN#0+(byte) $28 +(byte*) main::nxt +(byte*) main::nxt#1 nxt zp ZP_WORD:2 22.0 +(byte*) main::nxt#10 nxt zp ZP_WORD:2 11.0 +(byte*) main::nxt#4 nxt zp ZP_WORD:2 11.0 +(byte*) main::nxt#9 nxt zp ZP_WORD:2 3.6666666666666665 +(byte) main::scroll +(byte) main::scroll#1 reg byte x 16.5 +(byte) main::scroll#4 reg byte x 11.0 +(byte) main::scroll#7 reg byte x 5.5 + +reg byte x [ main::scroll#7 main::scroll#4 main::scroll#1 ] +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ main::c#2 main::c#1 main::c#0 ] +zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ] +zp ZP_WORD:4 [ fillscreen::cursor#2 fillscreen::cursor#1 ] diff --git a/src/test/ref/examples/scrollbig/scrollbig.sym b/src/test/ref/examples/scrollbig/scrollbig.sym index 1daabbadc..4b5f134d2 100644 --- a/src/test/ref/examples/scrollbig/scrollbig.sym +++ b/src/test/ref/examples/scrollbig/scrollbig.sym @@ -1 +1,109 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte*) CHARGEN +(const byte*) CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SCROLL +(const byte*) SCROLL#0 SCROLL = (byte*) 53270 +(byte*) TEXT +(const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" +(byte) current_bit +(byte) current_bit#12 current_bit zp ZP_BYTE:2 3.0 +(byte) current_bit#21 current_bit zp ZP_BYTE:2 5.833333333333333 +(byte) current_bit#29 current_bit zp ZP_BYTE:2 2.142857142857143 +(byte) current_bit#5 current_bit zp ZP_BYTE:2 3.0 +(byte*) current_chargen +(byte*) current_chargen#11 current_chargen zp ZP_WORD:3 3.0 +(byte*) current_chargen#19 current_chargen zp ZP_WORD:3 5.944444444444444 +(byte*) current_chargen#27 current_chargen zp ZP_WORD:3 1.666666666666667 +(byte*) current_chargen#5 current_chargen zp ZP_WORD:3 4.0 +(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill) +(label) fillscreen::@1 +(label) fillscreen::@return +(byte*) fillscreen::cursor +(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:9 16.5 +(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:9 16.5 +(byte) fillscreen::fill +(const byte) fillscreen::fill#0 fill = (byte) $20 +(byte*) fillscreen::screen +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(byte()) next_char() +(label) next_char::@1 +(label) next_char::@2 +(label) next_char::@return +(byte) next_char::c +(byte) next_char::c#0 reg byte x 3.0 +(byte) next_char::c#1 reg byte x 4.0 +(byte) next_char::return +(byte) next_char::return#0 reg byte a 4.0 +(byte) next_char::return#1 reg byte x 1.5 +(byte*) nxt +(byte*) nxt#14 nxt zp ZP_WORD:7 3.0 +(byte*) nxt#18 nxt zp ZP_WORD:7 4.0 +(byte*) nxt#19 nxt zp ZP_WORD:7 0.5714285714285714 +(byte*) nxt#31 nxt zp ZP_WORD:7 1.5833333333333335 +(byte*) nxt#35 nxt zp ZP_WORD:7 0.3333333333333333 +(byte) scroll +(byte) scroll#10 reg byte x 3.0 +(byte) scroll#18 reg byte x 3.25 +(byte) scroll#3 reg byte x 3.0 +(void()) scroll_bit() +(word~) scroll_bit::$7 $7 zp ZP_WORD:3 4.0 +(byte~) scroll_bit::$9 reg byte a 202.0 +(label) scroll_bit::@1 +(label) scroll_bit::@2 +(label) scroll_bit::@3 +(label) scroll_bit::@4 +(label) scroll_bit::@5 +(label) scroll_bit::@6 +(label) scroll_bit::@7 +(label) scroll_bit::@8 +(label) scroll_bit::@return +(byte) scroll_bit::b +(byte) scroll_bit::b#2 reg byte a 101.0 +(byte) scroll_bit::bits +(byte) scroll_bit::bits#0 reg byte a 202.0 +(word) scroll_bit::c +(word) scroll_bit::c#0 c zp ZP_WORD:3 4.0 +(byte) scroll_bit::r +(byte) scroll_bit::r#1 reg byte x 151.5 +(byte) scroll_bit::r#2 reg byte x 37.875 +(byte*) scroll_bit::sc +(byte*) scroll_bit::sc#1 sc zp ZP_WORD:5 67.33333333333333 +(byte*) scroll_bit::sc#2 sc zp ZP_WORD:5 43.285714285714285 +(void()) scroll_hard() +(label) scroll_hard::@1 +(label) scroll_hard::@return +(byte) scroll_hard::i +(byte) scroll_hard::i#1 reg byte x 151.5 +(byte) scroll_hard::i#2 reg byte x 202.00000000000006 +(void()) scroll_soft() +(label) scroll_soft::@1 +(label) scroll_soft::@2 +(label) scroll_soft::@return + +reg byte x [ scroll#18 scroll#10 scroll#3 ] +zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] +zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$7 scroll_bit::c#0 ] +reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ] +zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ] +reg byte a [ scroll_bit::b#2 ] +reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ] +zp ZP_WORD:7 [ nxt#18 nxt#31 nxt#14 nxt#35 nxt#19 ] +reg byte x [ next_char::return#1 next_char::c#0 next_char::c#1 ] +zp ZP_WORD:9 [ fillscreen::cursor#2 fillscreen::cursor#1 ] +reg byte a [ next_char::return#0 ] +reg byte a [ scroll_bit::bits#0 ] +reg byte a [ scroll_bit::$9 ] diff --git a/src/test/ref/examples/scrolllogo/scrolllogo.sym b/src/test/ref/examples/scrolllogo/scrolllogo.sym index 1daabbadc..c7030f953 100644 --- a/src/test/ref/examples/scrolllogo/scrolllogo.sym +++ b/src/test/ref/examples/scrolllogo/scrolllogo.sym @@ -1 +1,413 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = (byte*) 53282 +(byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = (byte*) 53283 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte*) D016 +(const byte*) D016#0 D016 = (byte*) 53270 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte) DARK_GREY +(const byte) DARK_GREY#0 DARK_GREY = (byte) $b +(byte*) LOGO +(const byte*) LOGO#0 LOGO = (byte*) 8192 +(dword) PI2_u4f28 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword) $6487ed51 +(dword) PI_HALF_u4f28 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword) $1921fb54 +(dword) PI_u4f28 +(const dword) PI_u4f28#0 PI_u4f28 = (dword) $3243f6a9 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2 +(byte) VIC_MCM +(const byte) VIC_MCM#0 VIC_MCM = (byte) $10 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(word) XSIN_SIZE +(const word) XSIN_SIZE#0 XSIN_SIZE = (word) $200 +(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) +(label) div32u16u::@1 +(label) div32u16u::@2 +(label) div32u16u::@return +(dword) div32u16u::dividend +(word) div32u16u::divisor +(dword) div32u16u::quotient +(word) div32u16u::quotient_hi +(word) div32u16u::quotient_hi#0 quotient_hi zp ZP_WORD:60 0.8 +(word) div32u16u::quotient_lo +(word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:39 4.0 +(dword) div32u16u::return +(dword) div32u16u::return#0 return zp ZP_DWORD:48 1.3333333333333333 +(dword) div32u16u::return#2 return zp ZP_DWORD:48 4.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@6 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:37 2.75 +(word) divr16u::dividend#3 dividend zp ZP_WORD:37 5.0 +(word) divr16u::dividend#5 dividend zp ZP_WORD:37 2.0 +(word) divr16u::divisor +(byte) divr16u::i +(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:39 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:39 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:39 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:35 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:35 22.0 +(word) divr16u::rem#10 rem zp ZP_WORD:35 4.0 +(word) divr16u::rem#11 rem zp ZP_WORD:35 11.666666666666666 +(word) divr16u::rem#2 rem zp ZP_WORD:35 22.0 +(word) divr16u::rem#4 rem zp ZP_WORD:35 4.0 +(word) divr16u::rem#5 rem zp ZP_WORD:35 24.0 +(word) divr16u::rem#6 rem zp ZP_WORD:35 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:39 5.285714285714286 +(word) divr16u::return#2 return zp ZP_WORD:39 4.0 +(word) divr16u::return#3 return zp ZP_WORD:39 4.0 +(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) +(label) fill::@1 +(label) fill::@return +(byte*) fill::addr +(byte*) fill::addr#0 addr zp ZP_WORD:41 2.0 +(byte*) fill::addr#1 addr zp ZP_WORD:41 16.5 +(byte*) fill::addr#2 addr zp ZP_WORD:41 17.5 +(byte*) fill::end +(byte*) fill::end#0 end zp ZP_WORD:62 2.6 +(word) fill::size +(byte*) fill::start +(byte) fill::val +(byte) fill::val#3 reg byte x 1.8333333333333333 +(void()) loop() +(signed word*~) loop::$1 $1 zp ZP_WORD:43 22.0 +(word~) loop::$5 $5 zp ZP_WORD:43 22.0 +(label) loop::@1 +(label) loop::@2 +(label) loop::@3 +(label) loop::@4 +(label) loop::@5 +(label) loop::@6 +(signed word) loop::xpos +(signed word) loop::xpos#0 xpos zp ZP_WORD:43 22.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte) main::ch +(byte) main::ch#1 reg byte x 16.5 +(byte) main::ch#2 reg byte x 22.0 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) LOGO#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen +(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b) +(word~) mul16s::$16 $16 zp ZP_WORD:54 4.0 +(word~) mul16s::$9 $9 zp ZP_WORD:54 4.0 +(label) mul16s::@1 +(label) mul16s::@2 +(label) mul16s::@3 +(label) mul16s::@4 +(label) mul16s::@return +(signed word) mul16s::a +(signed word) mul16s::a#0 a zp ZP_WORD:31 2.6 +(signed word) mul16s::b +(dword) mul16s::m +(dword) mul16s::m#0 m zp ZP_DWORD:14 2.0 +(dword) mul16s::m#1 m zp ZP_DWORD:14 4.0 +(dword) mul16s::m#4 m zp ZP_DWORD:14 4.0 +(signed dword) mul16s::return +(signed dword) mul16s::return#0 return zp ZP_DWORD:14 4.333333333333333 +(signed dword) mul16s::return#2 return zp ZP_DWORD:14 22.0 +(dword()) mul16u((word) mul16u::a , (word) mul16u::b) +(byte~) mul16u::$1 reg byte a 202.0 +(label) mul16u::@1 +(label) mul16u::@2 +(label) mul16u::@3 +(label) mul16u::@4 +(label) mul16u::@return +(word) mul16u::a +(word) mul16u::a#0 a zp ZP_WORD:20 101.0 +(word) mul16u::a#2 a zp ZP_WORD:20 2.0 +(word) mul16u::a#3 a zp ZP_WORD:20 67.66666666666666 +(word) mul16u::a#6 a zp ZP_WORD:20 6.0 +(word~) mul16u::a#8 a zp ZP_WORD:20 4.0 +(word) mul16u::b +(word) mul16u::b#1 b zp ZP_WORD:18 4.0 +(dword) mul16u::mb +(dword) mul16u::mb#0 mb zp ZP_DWORD:22 4.0 +(dword) mul16u::mb#1 mb zp ZP_DWORD:22 202.0 +(dword) mul16u::mb#2 mb zp ZP_DWORD:22 43.57142857142858 +(dword) mul16u::res +(dword) mul16u::res#1 res zp ZP_DWORD:14 202.0 +(dword) mul16u::res#2 res zp ZP_DWORD:14 43.85714285714286 +(dword) mul16u::res#6 res zp ZP_DWORD:14 101.0 +(dword) mul16u::return +(dword) mul16u::return#2 return zp ZP_DWORD:14 4.0 +(dword) mul16u::return#3 return zp ZP_DWORD:14 4.0 +(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select) +(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:14 4.0 +(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:14 4.0 +(label) mulu16_sel::@1 +(label) mulu16_sel::@return +(word) mulu16_sel::return +(word) mulu16_sel::return#0 return zp ZP_WORD:58 4.0 +(word) mulu16_sel::return#1 return#1 zp ZP_WORD:33 4.0 +(word) mulu16_sel::return#10 return#10 zp ZP_WORD:33 4.0 +(word) mulu16_sel::return#11 return zp ZP_WORD:58 4.0 +(word) mulu16_sel::return#12 return zp ZP_WORD:58 1.714285714285714 +(word) mulu16_sel::return#2 return zp ZP_WORD:58 4.0 +(byte) mulu16_sel::select +(byte) mulu16_sel::select#5 reg byte x 0.3333333333333333 +(word) mulu16_sel::v1 +(word) mulu16_sel::v1#0 v1 zp ZP_WORD:33 2.0 +(word) mulu16_sel::v1#1 v1 zp ZP_WORD:33 2.0 +(word) mulu16_sel::v1#2 v1 zp ZP_WORD:33 4.0 +(word) mulu16_sel::v1#3 v1 zp ZP_WORD:33 2.0 +(word) mulu16_sel::v1#4 v1 zp ZP_WORD:33 2.0 +(word) mulu16_sel::v1#5 v1 zp ZP_WORD:33 12.0 +(word) mulu16_sel::v2 +(word) mulu16_sel::v2#0 v2 zp ZP_WORD:18 4.0 +(word) mulu16_sel::v2#1 v2 zp ZP_WORD:18 4.0 +(word) mulu16_sel::v2#3 v2 zp ZP_WORD:18 4.0 +(word) mulu16_sel::v2#4 v2 zp ZP_WORD:18 4.0 +(word) mulu16_sel::v2#5 v2 zp ZP_WORD:18 5.0 +(word) rem16u +(word) rem16u#1 rem16u zp ZP_WORD:35 0.8 +(void()) render_logo((signed word) render_logo::xpos) +(byte~) render_logo::$0 reg byte a 4.0 +(byte~) render_logo::$1 reg byte a 4.0 +(signed byte~) render_logo::$17 reg byte a 2.0 +(byte~) render_logo::$2 reg byte a 4.0 +(signed word~) render_logo::$3 $3 zp ZP_WORD:45 2.0 +(byte~) render_logo::$33 reg byte a 202.0 +(byte~) render_logo::$36 reg byte a 202.0 +(byte~) render_logo::$39 reg byte a 202.0 +(byte~) render_logo::$42 reg byte a 202.0 +(byte~) render_logo::$45 reg byte a 202.0 +(byte~) render_logo::$73 reg byte a 202.0 +(byte~) render_logo::$76 reg byte a 202.0 +(byte~) render_logo::$79 reg byte a 202.0 +(byte~) render_logo::$82 reg byte a 202.0 +(byte~) render_logo::$85 reg byte a 202.0 +(label) render_logo::@1 +(label) render_logo::@10 +(label) render_logo::@11 +(label) render_logo::@12 +(label) render_logo::@13 +(label) render_logo::@15_1 +(label) render_logo::@15_2 +(label) render_logo::@15_3 +(label) render_logo::@15_4 +(label) render_logo::@15_5 +(label) render_logo::@2 +(label) render_logo::@24_1 +(label) render_logo::@24_2 +(label) render_logo::@24_3 +(label) render_logo::@24_4 +(label) render_logo::@24_5 +(label) render_logo::@3 +(label) render_logo::@32_1 +(label) render_logo::@32_2 +(label) render_logo::@32_3 +(label) render_logo::@32_4 +(label) render_logo::@32_5 +(label) render_logo::@4 +(label) render_logo::@5 +(label) render_logo::@6 +(label) render_logo::@7 +(label) render_logo::@7_1 +(label) render_logo::@7_2 +(label) render_logo::@7_3 +(label) render_logo::@7_4 +(label) render_logo::@7_5 +(label) render_logo::@8 +(label) render_logo::@9 +(label) render_logo::@return +(byte) render_logo::line +(byte) render_logo::logo_idx +(byte) render_logo::logo_idx#10 logo_idx zp ZP_BYTE:4 57.714285714285715 +(byte) render_logo::logo_idx#11 logo_idx#11 zp ZP_BYTE:5 65.07142857142857 +(byte~) render_logo::logo_idx#14 logo_idx#14 zp ZP_BYTE:5 4.0 +(byte) render_logo::logo_idx#3 logo_idx zp ZP_BYTE:4 202.0 +(byte) render_logo::logo_idx#4 logo_idx#4 zp ZP_BYTE:5 202.0 +(byte) render_logo::logo_start +(byte) render_logo::screen_idx +(byte) render_logo::screen_idx#10 reg byte y 77.6923076923077 +(byte) render_logo::screen_idx#15 reg byte y 126.25 +(byte) render_logo::screen_idx#18 reg byte y 126.25 +(byte) render_logo::screen_idx#21 reg byte y 69.92307692307692 +(byte) render_logo::screen_idx#3 reg byte y 202.0 +(byte) render_logo::screen_idx#4 reg byte y 101.0 +(byte) render_logo::screen_idx#5 reg byte y 101.0 +(byte) render_logo::screen_idx#6 reg byte y 202.0 +(signed byte) render_logo::x_char +(signed byte) render_logo::x_char#0 x_char zp ZP_BYTE:47 0.36363636363636365 +(signed word) render_logo::xpos +(signed word) render_logo::xpos#0 xpos zp ZP_WORD:43 2.142857142857143 +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$4 $4 zp ZP_DWORD:27 4.0 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@7 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#2 isUpper zp ZP_BYTE:26 0.06060606060606061 +(signed word) sin16s::return +(signed word) sin16s::return#0 return zp ZP_WORD:31 22.0 +(signed word) sin16s::return#1 return zp ZP_WORD:31 5.0 +(signed word~) sin16s::return#5 return zp ZP_WORD:31 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 sinx zp ZP_WORD:31 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 usinx zp ZP_WORD:31 0.3333333333333333 +(word) sin16s::usinx#1 usinx zp ZP_WORD:31 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 x zp ZP_DWORD:27 8.5 +(dword) sin16s::x#1 x zp ZP_DWORD:27 4.0 +(dword) sin16s::x#2 x zp ZP_DWORD:27 4.0 +(dword) sin16s::x#4 x zp ZP_DWORD:27 5.0 +(dword) sin16s::x#6 x zp ZP_DWORD:27 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 x1 zp ZP_WORD:56 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 x2 zp ZP_WORD:33 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 x3 zp ZP_WORD:33 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:58 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 x4 zp ZP_WORD:33 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 x5 zp ZP_WORD:58 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:58 4.0 +(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max) +(signed dword~) sin16s_gen2::$5 $5 zp ZP_DWORD:14 22.0 +(word~) sin16s_gen2::$6 $6 zp ZP_WORD:52 11.0 +(label) sin16s_gen2::@1 +(label) sin16s_gen2::@2 +(label) sin16s_gen2::@3 +(label) sin16s_gen2::@4 +(label) sin16s_gen2::@return +(signed word) sin16s_gen2::ampl +(const signed word) sin16s_gen2::ampl#0 ampl = (const signed word) sin16s_gen2::max#0-(const signed word) sin16s_gen2::min#0 +(word) sin16s_gen2::i +(word) sin16s_gen2::i#1 i zp ZP_WORD:12 16.5 +(word) sin16s_gen2::i#2 i zp ZP_WORD:12 1.8333333333333333 +(signed word) sin16s_gen2::max +(const signed word) sin16s_gen2::max#0 max = (signed word) $140 +(signed word) sin16s_gen2::min +(const signed word) sin16s_gen2::min#0 min = (signed word) -$140 +(signed word) sin16s_gen2::offs +(signed word*) sin16s_gen2::sintab +(signed word*) sin16s_gen2::sintab#0 sintab zp ZP_WORD:10 5.5 +(signed word*) sin16s_gen2::sintab#2 sintab zp ZP_WORD:10 3.3000000000000003 +(dword) sin16s_gen2::step +(dword) sin16s_gen2::step#0 step zp ZP_DWORD:48 0.8666666666666666 +(word) sin16s_gen2::wavelength +(dword) sin16s_gen2::x +(dword) sin16s_gen2::x#1 x zp ZP_DWORD:6 7.333333333333333 +(dword) sin16s_gen2::x#2 x zp ZP_DWORD:6 3.0 +(signed word[XSIN_SIZE#0]) xsin +(const signed word[XSIN_SIZE#0]) xsin#0 xsin = { fill( XSIN_SIZE#0, 0) } +(word) xsin_idx +(word) xsin_idx#11 xsin_idx zp ZP_WORD:2 4.125 +(word) xsin_idx#19 xsin_idx zp ZP_WORD:2 11.0 +(word) xsin_idx#3 xsin_idx zp ZP_WORD:2 11.0 + +reg byte x [ main::ch#2 main::ch#1 ] +zp ZP_WORD:2 [ xsin_idx#11 xsin_idx#19 xsin_idx#3 ] +reg byte y [ render_logo::screen_idx#10 render_logo::screen_idx#4 render_logo::screen_idx#18 render_logo::screen_idx#3 ] +zp ZP_BYTE:4 [ render_logo::logo_idx#10 render_logo::logo_idx#3 ] +zp ZP_BYTE:5 [ render_logo::logo_idx#11 render_logo::logo_idx#14 render_logo::logo_idx#4 ] +reg byte y [ render_logo::screen_idx#15 render_logo::screen_idx#21 render_logo::screen_idx#5 render_logo::screen_idx#6 ] +zp ZP_DWORD:6 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] +zp ZP_WORD:10 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] +zp ZP_WORD:12 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] +zp ZP_DWORD:14 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#3 mul16s::return#2 sin16s_gen2::$5 mulu16_sel::$0 mulu16_sel::$1 ] +zp ZP_WORD:18 [ mul16u::b#1 mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] +zp ZP_WORD:20 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] +zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] +zp ZP_BYTE:26 [ sin16s::isUpper#2 ] +zp ZP_DWORD:27 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$4 ] +zp ZP_WORD:31 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 mul16s::a#0 sin16s::usinx#0 ] +zp ZP_WORD:33 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 ] +reg byte x [ mulu16_sel::select#5 ] +zp ZP_WORD:35 [ 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 ] +zp ZP_WORD:37 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] +zp ZP_WORD:39 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +reg byte x [ fill::val#3 ] +zp ZP_WORD:41 [ fill::addr#2 fill::addr#0 fill::addr#1 ] +zp ZP_WORD:43 [ loop::$5 loop::$1 loop::xpos#0 render_logo::xpos#0 ] +reg byte a [ render_logo::$0 ] +reg byte a [ render_logo::$1 ] +reg byte a [ render_logo::$2 ] +zp ZP_WORD:45 [ render_logo::$3 ] +zp ZP_BYTE:47 [ render_logo::x_char#0 ] +reg byte a [ render_logo::$33 ] +reg byte a [ render_logo::$36 ] +reg byte a [ render_logo::$39 ] +reg byte a [ render_logo::$42 ] +reg byte a [ render_logo::$45 ] +reg byte a [ render_logo::$17 ] +reg byte a [ render_logo::$73 ] +reg byte a [ render_logo::$76 ] +reg byte a [ render_logo::$79 ] +reg byte a [ render_logo::$82 ] +reg byte a [ render_logo::$85 ] +zp ZP_DWORD:48 [ div32u16u::return#2 sin16s_gen2::step#0 div32u16u::return#0 ] +zp ZP_WORD:52 [ sin16s_gen2::$6 ] +zp ZP_WORD:54 [ mul16s::$9 mul16s::$16 ] +reg byte a [ mul16u::$1 ] +zp ZP_WORD:56 [ sin16s::x1#0 ] +zp ZP_WORD:58 [ mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 ] +zp ZP_WORD:60 [ div32u16u::quotient_hi#0 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] +zp ZP_WORD:62 [ fill::end#0 ] diff --git a/src/test/ref/examples/showlogo/showlogo.sym b/src/test/ref/examples/showlogo/showlogo.sym index 1daabbadc..101cc4fb0 100644 --- a/src/test/ref/examples/showlogo/showlogo.sym +++ b/src/test/ref/examples/showlogo/showlogo.sym @@ -1 +1,73 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = (byte*) 53282 +(byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = (byte*) 53283 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte*) D016 +(const byte*) D016#0 D016 = (byte*) 53270 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte) DARK_GREY +(const byte) DARK_GREY#0 DARK_GREY = (byte) $b +(byte*) LOGO +(const byte*) LOGO#0 LOGO = (byte*) 8192 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) VIC_CSEL +(const byte) VIC_CSEL#0 VIC_CSEL = (byte) 8 +(byte) VIC_MCM +(const byte) VIC_MCM#0 VIC_MCM = (byte) $10 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) +(label) fill::@1 +(label) fill::@return +(byte*) fill::addr +(byte*) fill::addr#0 addr zp ZP_WORD:4 2.0 +(byte*) fill::addr#1 addr zp ZP_WORD:4 16.5 +(byte*) fill::addr#2 addr zp ZP_WORD:4 17.5 +(byte*) fill::end +(byte*) fill::end#0 end zp ZP_WORD:2 2.6 +(word) fill::size +(word) fill::size#2 size zp ZP_WORD:2 2.0 +(byte*) fill::start +(byte) fill::val +(byte) fill::val#3 reg byte x 1.8333333333333333 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(byte) main::ch +(byte) main::ch#1 reg byte x 16.5 +(byte) main::ch#2 reg byte x 22.0 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) LOGO#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen + +reg byte x [ main::ch#2 main::ch#1 ] +zp ZP_WORD:2 [ fill::size#2 fill::end#0 ] +reg byte x [ fill::val#3 ] +zp ZP_WORD:4 [ fill::addr#2 fill::addr#0 fill::addr#1 ] diff --git a/src/test/ref/examples/sinplotter/sine-plotter.sym b/src/test/ref/examples/sinplotter/sine-plotter.sym index 1daabbadc..805b85039 100644 --- a/src/test/ref/examples/sinplotter/sine-plotter.sym +++ b/src/test/ref/examples/sinplotter/sine-plotter.sym @@ -1 +1,454 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BITMAP +(const byte*) BITMAP#0 BITMAP = (byte*) 8192 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte*) D011 +(const byte*) D011#0 D011 = (byte*) 53265 +(byte*) D016 +(const byte*) D016#0 D016 = (byte*) 53270 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(dword) PI2_u4f28 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword) $6487ed51 +(dword) PI_HALF_u4f28 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword) $1921fb54 +(dword) PI_u4f28 +(const dword) PI_u4f28#0 PI_u4f28 = (dword) $3243f6a9 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(word) SIN_SIZE +(const word) SIN_SIZE#0 SIN_SIZE = (word) $200 +(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2 +(byte) VIC_BMM +(const byte) VIC_BMM#0 VIC_BMM = (byte) $20 +(byte) VIC_CSEL +(const byte) VIC_CSEL#0 VIC_CSEL = (byte) 8 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(void()) bitmap_clear() +(word~) bitmap_clear::$3 $3 zp ZP_WORD:44 2.0 +(label) bitmap_clear::@1 +(label) bitmap_clear::@2 +(label) bitmap_clear::@3 +(label) bitmap_clear::@return +(byte*) bitmap_clear::bitmap +(byte*) bitmap_clear::bitmap#1 bitmap zp ZP_WORD:44 42.599999999999994 +(byte*) bitmap_clear::bitmap#2 bitmap zp ZP_WORD:44 157.0 +(byte*) bitmap_clear::bitmap#3 bitmap zp ZP_WORD:44 24.0 +(byte*~) bitmap_clear::bitmap#5 bitmap zp ZP_WORD:44 4.0 +(byte) bitmap_clear::x +(byte) bitmap_clear::x#1 reg byte x 151.5 +(byte) bitmap_clear::x#2 reg byte x 67.33333333333333 +(byte) bitmap_clear::y +(byte) bitmap_clear::y#1 y zp ZP_BYTE:43 16.5 +(byte) bitmap_clear::y#4 y zp ZP_BYTE:43 3.6666666666666665 +(void()) bitmap_init((byte*) bitmap_init::bitmap) +(byte~) bitmap_init::$4 reg byte a 22.0 +(byte~) bitmap_init::$5 reg byte a 22.0 +(byte~) bitmap_init::$6 reg byte a 22.0 +(byte~) bitmap_init::$7 $7 zp ZP_BYTE:68 5.5 +(label) bitmap_init::@1 +(label) bitmap_init::@2 +(label) bitmap_init::@3 +(label) bitmap_init::@4 +(label) bitmap_init::@5 +(label) bitmap_init::@6 +(label) bitmap_init::@return +(byte*) bitmap_init::bitmap +(byte) bitmap_init::bits +(byte) bitmap_init::bits#1 reg byte a 11.0 +(byte) bitmap_init::bits#3 reg byte a 16.5 +(byte) bitmap_init::bits#4 reg byte a 7.333333333333333 +(byte) bitmap_init::x +(byte) bitmap_init::x#1 reg byte x 16.5 +(byte) bitmap_init::x#2 reg byte x 5.5 +(byte) bitmap_init::y +(byte) bitmap_init::y#1 reg byte x 16.5 +(byte) bitmap_init::y#2 reg byte x 5.5 +(byte*) bitmap_init::yoffs +(byte*) bitmap_init::yoffs#1 yoffs zp ZP_WORD:46 22.0 +(byte*) bitmap_init::yoffs#2 yoffs zp ZP_WORD:46 6.875 +(byte*) bitmap_init::yoffs#4 yoffs zp ZP_WORD:46 11.0 +(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y) +(word~) bitmap_plot::$1 $1 zp ZP_WORD:52 4.0 +(byte~) bitmap_plot::$2 reg byte a 4.0 +(word~) bitmap_plot::$3 $3 zp ZP_WORD:50 1.0 +(label) bitmap_plot::@return +(byte*) bitmap_plot::plotter +(byte*) bitmap_plot::plotter#1 plotter zp ZP_WORD:50 3.0 +(word) bitmap_plot::x +(word) bitmap_plot::x#0 x zp ZP_WORD:4 11.0 +(word) bitmap_plot::x#1 x zp ZP_WORD:4 11.0 +(word) bitmap_plot::x#2 x zp ZP_WORD:4 6.5 +(byte) bitmap_plot::y +(byte) bitmap_plot::y#0 reg byte x 22.0 +(byte) bitmap_plot::y#1 reg byte x 22.0 +(byte) bitmap_plot::y#2 reg byte x 26.0 +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } +(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) +(label) div32u16u::@1 +(label) div32u16u::@2 +(label) div32u16u::@return +(dword) div32u16u::dividend +(word) div32u16u::divisor +(dword) div32u16u::quotient +(word) div32u16u::quotient_hi +(word) div32u16u::quotient_hi#0 quotient_hi zp ZP_WORD:66 0.8 +(word) div32u16u::quotient_lo +(word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:41 4.0 +(dword) div32u16u::return +(dword) div32u16u::return#0 return zp ZP_DWORD:54 1.3333333333333333 +(dword) div32u16u::return#2 return zp ZP_DWORD:54 4.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@6 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:39 2.75 +(word) divr16u::dividend#3 dividend zp ZP_WORD:39 5.0 +(word) divr16u::dividend#5 dividend zp ZP_WORD:39 2.0 +(word) divr16u::divisor +(byte) divr16u::i +(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:41 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:41 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:41 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:37 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:37 22.0 +(word) divr16u::rem#10 rem zp ZP_WORD:37 4.0 +(word) divr16u::rem#11 rem zp ZP_WORD:37 11.666666666666666 +(word) divr16u::rem#2 rem zp ZP_WORD:37 22.0 +(word) divr16u::rem#4 rem zp ZP_WORD:37 4.0 +(word) divr16u::rem#5 rem zp ZP_WORD:37 24.0 +(word) divr16u::rem#6 rem zp ZP_WORD:37 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:41 5.285714285714286 +(word) divr16u::return#2 return zp ZP_WORD:41 4.0 +(word) divr16u::return#3 return zp ZP_WORD:41 4.0 +(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) +(label) fill::@1 +(label) fill::@return +(byte*) fill::addr +(byte*) fill::addr#1 addr zp ZP_WORD:48 16.5 +(byte*) fill::addr#2 addr zp ZP_WORD:48 16.5 +(byte*) fill::end +(const byte*) fill::end#0 end = (const byte*) SCREEN#0+(const word) fill::size#0 +(word) fill::size +(const word) fill::size#0 size = (word) $3e8 +(byte*) fill::start +(byte) fill::val +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) BITMAP#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen +(label) main::vicSelectGfxBank1 +(byte~) main::vicSelectGfxBank1_$0 +(label) main::vicSelectGfxBank1_@1 +(byte*) main::vicSelectGfxBank1_gfx +(label) main::vicSelectGfxBank1_toDd001 +(word~) main::vicSelectGfxBank1_toDd001_$0 +(byte~) main::vicSelectGfxBank1_toDd001_$1 +(number~) main::vicSelectGfxBank1_toDd001_$2 +(number~) main::vicSelectGfxBank1_toDd001_$3 +(byte*) main::vicSelectGfxBank1_toDd001_gfx +(byte) main::vicSelectGfxBank1_toDd001_return +(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3 +(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b) +(word~) mul16s::$16 $16 zp ZP_WORD:60 4.0 +(word~) mul16s::$9 $9 zp ZP_WORD:60 4.0 +(label) mul16s::@1 +(label) mul16s::@2 +(label) mul16s::@3 +(label) mul16s::@4 +(label) mul16s::@return +(signed word) mul16s::a +(signed word) mul16s::a#0 a zp ZP_WORD:33 2.6 +(signed word) mul16s::b +(dword) mul16s::m +(dword) mul16s::m#0 m zp ZP_DWORD:16 2.0 +(dword) mul16s::m#1 m zp ZP_DWORD:16 4.0 +(dword) mul16s::m#4 m zp ZP_DWORD:16 4.0 +(signed dword) mul16s::return +(signed dword) mul16s::return#0 return zp ZP_DWORD:16 4.333333333333333 +(signed dword) mul16s::return#2 return zp ZP_DWORD:16 22.0 +(dword()) mul16u((word) mul16u::a , (word) mul16u::b) +(byte~) mul16u::$1 reg byte a 202.0 +(label) mul16u::@1 +(label) mul16u::@2 +(label) mul16u::@3 +(label) mul16u::@4 +(label) mul16u::@return +(word) mul16u::a +(word) mul16u::a#0 a zp ZP_WORD:22 101.0 +(word) mul16u::a#2 a zp ZP_WORD:22 2.0 +(word) mul16u::a#3 a zp ZP_WORD:22 67.66666666666666 +(word) mul16u::a#6 a zp ZP_WORD:22 6.0 +(word~) mul16u::a#8 a zp ZP_WORD:22 4.0 +(word) mul16u::b +(word) mul16u::b#1 b zp ZP_WORD:20 4.0 +(dword) mul16u::mb +(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:16 202.0 +(dword) mul16u::res#2 res zp ZP_DWORD:16 43.85714285714286 +(dword) mul16u::res#6 res zp ZP_DWORD:16 101.0 +(dword) mul16u::return +(dword) mul16u::return#2 return zp ZP_DWORD:16 4.0 +(dword) mul16u::return#3 return zp ZP_DWORD:16 4.0 +(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select) +(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:16 4.0 +(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:16 4.0 +(label) mulu16_sel::@1 +(label) mulu16_sel::@return +(word) mulu16_sel::return +(word) mulu16_sel::return#0 return zp ZP_WORD:64 4.0 +(word) mulu16_sel::return#1 return#1 zp ZP_WORD:35 4.0 +(word) mulu16_sel::return#10 return#10 zp ZP_WORD:35 4.0 +(word) mulu16_sel::return#11 return zp ZP_WORD:64 4.0 +(word) mulu16_sel::return#12 return zp ZP_WORD:64 1.714285714285714 +(word) mulu16_sel::return#2 return zp ZP_WORD:64 4.0 +(byte) mulu16_sel::select +(byte) mulu16_sel::select#5 reg byte x 0.3333333333333333 +(word) mulu16_sel::v1 +(word) mulu16_sel::v1#0 v1 zp ZP_WORD:35 2.0 +(word) mulu16_sel::v1#1 v1 zp ZP_WORD:35 2.0 +(word) mulu16_sel::v1#2 v1 zp ZP_WORD:35 4.0 +(word) mulu16_sel::v1#3 v1 zp ZP_WORD:35 2.0 +(word) mulu16_sel::v1#4 v1 zp ZP_WORD:35 2.0 +(word) mulu16_sel::v1#5 v1 zp ZP_WORD:35 12.0 +(word) mulu16_sel::v2 +(word) mulu16_sel::v2#0 v2 zp ZP_WORD:20 4.0 +(word) mulu16_sel::v2#1 v2 zp ZP_WORD:20 4.0 +(word) mulu16_sel::v2#3 v2 zp ZP_WORD:20 4.0 +(word) mulu16_sel::v2#4 v2 zp ZP_WORD:20 4.0 +(word) mulu16_sel::v2#5 v2 zp ZP_WORD:20 5.0 +(word) rem16u +(word) rem16u#1 rem16u zp ZP_WORD:37 0.8 +(void()) render_sine() +(signed word*~) render_sine::$0 $0 zp ZP_WORD:6 22.0 +(word~) render_sine::$10 $10 zp ZP_WORD:6 22.0 +(word~) render_sine::$11 $11 zp ZP_WORD:6 22.0 +(signed word*~) render_sine::$3 $3 zp ZP_WORD:6 22.0 +(label) render_sine::@1 +(label) render_sine::@2 +(label) render_sine::@3 +(label) render_sine::@4 +(label) render_sine::@5 +(label) render_sine::@6 +(label) render_sine::@7 +(label) render_sine::@return +(signed word) render_sine::sin2_val +(signed word) render_sine::sin2_val#0 sin2_val zp ZP_WORD:6 22.0 +(word) render_sine::sin_idx +(word) render_sine::sin_idx#1 sin_idx zp ZP_WORD:2 16.5 +(word) render_sine::sin_idx#2 sin_idx zp ZP_WORD:2 1.76 +(signed word) render_sine::sin_val +(signed word) render_sine::sin_val#0 sin_val zp ZP_WORD:6 22.0 +(word) render_sine::xpos +(word) render_sine::xpos#1 xpos zp ZP_WORD:4 11.0 +(word) render_sine::xpos#3 xpos zp ZP_WORD:4 2.0952380952380953 +(word) render_sine::xpos#8 xpos zp ZP_WORD:4 7.333333333333333 +(byte) render_sine::ypos +(byte) render_sine::ypos#0 reg byte x 11.0 +(byte) render_sine::ypos2 +(byte) render_sine::ypos2#0 reg byte x 11.0 +(signed word[$200]) sin +(const signed word[$200]) sin#0 sin = { fill( $200, 0) } +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$4 $4 zp ZP_DWORD:29 4.0 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@7 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#2 isUpper zp ZP_BYTE:28 0.06060606060606061 +(signed word) sin16s::return +(signed word) sin16s::return#0 return zp ZP_WORD:33 22.0 +(signed word) sin16s::return#1 return zp ZP_WORD:33 5.0 +(signed word~) sin16s::return#5 return zp ZP_WORD:33 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 sinx zp ZP_WORD:33 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 usinx zp ZP_WORD:33 0.3333333333333333 +(word) sin16s::usinx#1 usinx zp ZP_WORD:33 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 x zp ZP_DWORD:29 8.5 +(dword) sin16s::x#1 x zp ZP_DWORD:29 4.0 +(dword) sin16s::x#2 x zp ZP_DWORD:29 4.0 +(dword) sin16s::x#4 x zp ZP_DWORD:29 5.0 +(dword) sin16s::x#6 x zp ZP_DWORD:29 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 x1 zp ZP_WORD:62 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 x2 zp ZP_WORD:35 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 x3 zp ZP_WORD:35 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:64 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 x4 zp ZP_WORD:35 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 x5 zp ZP_WORD:64 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:64 4.0 +(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max) +(signed dword~) sin16s_gen2::$5 $5 zp ZP_DWORD:16 22.0 +(word~) sin16s_gen2::$6 $6 zp ZP_WORD:58 11.0 +(label) sin16s_gen2::@1 +(label) sin16s_gen2::@2 +(label) sin16s_gen2::@3 +(label) sin16s_gen2::@4 +(label) sin16s_gen2::@return +(signed word) sin16s_gen2::ampl +(const signed word) sin16s_gen2::ampl#0 ampl = (const signed word) sin16s_gen2::max#0-(const signed word) sin16s_gen2::min#0 +(word) sin16s_gen2::i +(word) sin16s_gen2::i#1 i zp ZP_WORD:14 16.5 +(word) sin16s_gen2::i#2 i zp ZP_WORD:14 1.8333333333333333 +(signed word) sin16s_gen2::max +(const signed word) sin16s_gen2::max#0 max = (signed word) $140 +(signed word) sin16s_gen2::min +(const signed word) sin16s_gen2::min#0 min = (signed word) -$140 +(signed word) sin16s_gen2::offs +(signed word*) sin16s_gen2::sintab +(signed word*) sin16s_gen2::sintab#0 sintab zp ZP_WORD:12 5.5 +(signed word*) sin16s_gen2::sintab#2 sintab zp ZP_WORD:12 3.3000000000000003 +(dword) sin16s_gen2::step +(dword) sin16s_gen2::step#0 step zp ZP_DWORD:54 0.8666666666666666 +(word) sin16s_gen2::wavelength +(dword) sin16s_gen2::x +(dword) sin16s_gen2::x#1 x zp ZP_DWORD:8 7.333333333333333 +(dword) sin16s_gen2::x#2 x zp ZP_DWORD:8 3.0 +(signed word*) sin2 +(const signed word*) sin2#0 sin2 = (signed word*) 5120 +(byte()) wrap_y((signed word) wrap_y::y) +(label) wrap_y::@1 +(label) wrap_y::@2 +(label) wrap_y::@3 +(label) wrap_y::@4 +(label) wrap_y::@5 +(label) wrap_y::@return +(byte) wrap_y::return +(byte) wrap_y::return#0 reg byte a 22.0 +(byte) wrap_y::return#1 reg byte a 22.0 +(byte) wrap_y::return#2 reg byte a 6.0 +(signed word) wrap_y::y +(signed word) wrap_y::y#0 y zp ZP_WORD:6 22.0 +(signed word) wrap_y::y#1 y zp ZP_WORD:6 22.0 +(signed word) wrap_y::y#2 y zp ZP_WORD:6 202.0 +(signed word) wrap_y::y#3 y zp ZP_WORD:6 202.0 +(signed word) wrap_y::y#4 y zp ZP_WORD:6 203.0 +(signed word) wrap_y::y#6 y zp ZP_WORD:6 202.0 +(signed word) wrap_y::y#9 y zp ZP_WORD:6 24.0 + +zp ZP_WORD:2 [ render_sine::sin_idx#2 render_sine::sin_idx#1 ] +zp ZP_WORD:4 [ render_sine::xpos#3 render_sine::xpos#8 render_sine::xpos#1 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 ] +reg byte x [ bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 ] +zp ZP_WORD:6 [ wrap_y::y#6 wrap_y::y#4 wrap_y::y#9 wrap_y::y#0 wrap_y::y#1 wrap_y::y#2 wrap_y::y#3 render_sine::sin_val#0 render_sine::sin2_val#0 render_sine::$10 render_sine::$0 render_sine::$11 render_sine::$3 ] +zp ZP_DWORD:8 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] +zp ZP_WORD:12 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] +zp ZP_WORD:14 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] +zp ZP_DWORD:16 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#3 mul16s::return#2 sin16s_gen2::$5 mulu16_sel::$0 mulu16_sel::$1 ] +zp ZP_WORD:20 [ mul16u::b#1 mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] +zp ZP_WORD:22 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] +zp ZP_DWORD:24 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] +zp ZP_BYTE:28 [ sin16s::isUpper#2 ] +zp ZP_DWORD:29 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$4 ] +zp ZP_WORD:33 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 mul16s::a#0 sin16s::usinx#0 ] +zp ZP_WORD:35 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 ] +reg byte x [ mulu16_sel::select#5 ] +zp ZP_WORD:37 [ 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 ] +zp ZP_WORD:39 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] +zp ZP_WORD:41 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +zp ZP_BYTE:43 [ bitmap_clear::y#4 bitmap_clear::y#1 ] +zp ZP_WORD:44 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::$3 ] +reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] +reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] +reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] +reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +zp ZP_WORD:46 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] +zp ZP_WORD:48 [ fill::addr#2 fill::addr#1 ] +reg byte a [ wrap_y::return#0 ] +reg byte x [ render_sine::ypos#0 ] +reg byte a [ wrap_y::return#1 ] +reg byte x [ render_sine::ypos2#0 ] +zp ZP_WORD:50 [ bitmap_plot::$3 bitmap_plot::plotter#1 ] +zp ZP_WORD:52 [ bitmap_plot::$1 ] +reg byte a [ bitmap_plot::$2 ] +reg byte a [ wrap_y::return#2 ] +zp ZP_DWORD:54 [ div32u16u::return#2 sin16s_gen2::step#0 div32u16u::return#0 ] +zp ZP_WORD:58 [ sin16s_gen2::$6 ] +zp ZP_WORD:60 [ mul16s::$9 mul16s::$16 ] +reg byte a [ mul16u::$1 ] +zp ZP_WORD:62 [ sin16s::x1#0 ] +zp ZP_WORD:64 [ mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 ] +zp ZP_WORD:66 [ div32u16u::quotient_hi#0 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] +zp ZP_BYTE:68 [ bitmap_init::$7 ] +reg byte a [ bitmap_init::$4 ] +reg byte a [ bitmap_init::$5 ] +reg byte a [ bitmap_init::$6 ] diff --git a/src/test/ref/examples/sinsprites/sinus-sprites.sym b/src/test/ref/examples/sinsprites/sinus-sprites.sym index 1daabbadc..426f2e6ad 100644 --- a/src/test/ref/examples/sinsprites/sinus-sprites.sym +++ b/src/test/ref/examples/sinsprites/sinus-sprites.sym @@ -1 +1,354 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CHARGEN +(const byte*) CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_EXPAND_X +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = (byte*) 53277 +(byte*) SPRITES_EXPAND_Y +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = (byte*) 53271 +(byte*) SPRITES_XMSB +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = (byte*) 53264 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(void()) addMEMtoFAC((byte*) addMEMtoFAC::mem) +(label) addMEMtoFAC::@1 +(label) addMEMtoFAC::@return +(byte*) addMEMtoFAC::mem +(void()) anim() +(byte~) anim::$6 $6 zp ZP_BYTE:5 101.0 +(byte~) anim::$7 reg byte a 202.0 +(byte~) anim::$9 reg byte a 202.0 +(label) anim::@1 +(label) anim::@10 +(label) anim::@2 +(label) anim::@3 +(label) anim::@4 +(label) anim::@5 +(label) anim::@6 +(label) anim::@7 +(label) anim::@8 +(label) anim::@9 +(label) anim::@return +(byte) anim::j +(byte) anim::j#1 j zp ZP_BYTE:8 151.5 +(byte) anim::j#2 j zp ZP_BYTE:8 11.882352941176471 +(byte) anim::j2 +(byte) anim::j2#1 j2 zp ZP_BYTE:6 67.33333333333333 +(byte) anim::j2#2 j2 zp ZP_BYTE:6 25.25 +(word) anim::x +(word) anim::x#0 x zp ZP_WORD:36 75.75 +(byte) anim::x_msb +(byte) anim::x_msb#1 x_msb zp ZP_BYTE:5 13.6 +(byte) anim::x_msb#2 x_msb zp ZP_BYTE:5 101.0 +(byte) anim::xidx +(byte) anim::xidx#0 xidx zp ZP_BYTE:4 2.0 +(byte) anim::xidx#1 xidx zp ZP_BYTE:4 202.0 +(byte) anim::xidx#2 xidx zp ZP_BYTE:4 202.0 +(byte) anim::xidx#3 xidx zp ZP_BYTE:4 38.125 +(byte) anim::xidx#5 xidx zp ZP_BYTE:4 37.875 +(byte) anim::yidx +(byte) anim::yidx#0 yidx zp ZP_BYTE:7 4.0 +(byte) anim::yidx#1 yidx zp ZP_BYTE:7 202.0 +(byte) anim::yidx#2 yidx zp ZP_BYTE:7 202.0 +(byte) anim::yidx#3 yidx zp ZP_BYTE:7 25.416666666666664 +(byte) anim::yidx#6 yidx zp ZP_BYTE:7 75.75 +(void()) clear_screen() +(label) clear_screen::@1 +(label) clear_screen::@return +(byte*) clear_screen::sc +(byte*) clear_screen::sc#1 sc zp ZP_WORD:9 16.5 +(byte*) clear_screen::sc#2 sc zp ZP_WORD:9 16.5 +(void()) divMEMbyFAC((byte*) divMEMbyFAC::mem) +(label) divMEMbyFAC::@1 +(label) divMEMbyFAC::@return +(byte*) divMEMbyFAC::mem +(byte*) divMEMbyFAC::mem#2 mem zp ZP_WORD:19 2.0 +(void()) gen_chargen_sprite((byte) gen_chargen_sprite::ch , (byte*) gen_chargen_sprite::sprite) +(word~) gen_chargen_sprite::$0 $0 zp ZP_WORD:40 4.0 +(word~) gen_chargen_sprite::$1 $1 zp ZP_WORD:40 4.0 +(byte~) gen_chargen_sprite::$3 reg byte a 2002.0 +(byte~) gen_chargen_sprite::$6 reg byte a 20002.0 +(label) gen_chargen_sprite::@1 +(label) gen_chargen_sprite::@10 +(label) gen_chargen_sprite::@2 +(label) gen_chargen_sprite::@3 +(label) gen_chargen_sprite::@4 +(label) gen_chargen_sprite::@5 +(label) gen_chargen_sprite::@6 +(label) gen_chargen_sprite::@7 +(label) gen_chargen_sprite::@8 +(label) gen_chargen_sprite::@9 +(label) gen_chargen_sprite::@return +(byte) gen_chargen_sprite::b +(byte) gen_chargen_sprite::b#1 reg byte x 15001.5 +(byte) gen_chargen_sprite::b#2 reg byte x 2000.2 +(byte) gen_chargen_sprite::bits +(byte) gen_chargen_sprite::bits#0 bits zp ZP_BYTE:25 202.0 +(byte) gen_chargen_sprite::bits#1 bits zp ZP_BYTE:25 667.3333333333334 +(byte) gen_chargen_sprite::bits#2 bits zp ZP_BYTE:25 182.58823529411765 +(byte) gen_chargen_sprite::c +(byte) gen_chargen_sprite::c#3 c zp ZP_BYTE:27 769.3076923076923 +(byte) gen_chargen_sprite::ch +(byte) gen_chargen_sprite::ch#0 reg byte x 5.5 +(byte*) gen_chargen_sprite::chargen +(byte*) gen_chargen_sprite::chargen#0 chargen zp ZP_WORD:40 3.678571428571429 +(byte) gen_chargen_sprite::s_gen +(byte) gen_chargen_sprite::s_gen#1 s_gen zp ZP_BYTE:28 10001.0 +(byte) gen_chargen_sprite::s_gen#3 s_gen zp ZP_BYTE:28 21003.0 +(byte) gen_chargen_sprite::s_gen#5 s_gen zp ZP_BYTE:28 400.4 +(byte) gen_chargen_sprite::s_gen#6 s_gen zp ZP_BYTE:28 3500.5 +(byte) gen_chargen_sprite::s_gen_cnt +(byte) gen_chargen_sprite::s_gen_cnt#1 reg byte y 15001.5 +(byte) gen_chargen_sprite::s_gen_cnt#3 reg byte y 7001.0 +(byte) gen_chargen_sprite::s_gen_cnt#4 reg byte y 400.4 +(byte) gen_chargen_sprite::s_gen_cnt#5 reg byte y 3500.5 +(byte*) gen_chargen_sprite::sprite +(byte*) gen_chargen_sprite::sprite#0 sprite zp ZP_WORD:29 2.1666666666666665 +(byte*) gen_chargen_sprite::sprite#1 sprite zp ZP_WORD:29 20002.0 +(byte*) gen_chargen_sprite::sprite#10 sprite zp ZP_WORD:29 420.59999999999997 +(byte*) gen_chargen_sprite::sprite#11 sprite zp ZP_WORD:29 102.0 +(byte*) gen_chargen_sprite::sprite#2 sprite zp ZP_WORD:29 67.33333333333333 +(byte*) gen_chargen_sprite::sprite#3 sprite zp ZP_WORD:29 7625.875 +(byte*) gen_chargen_sprite::sprite#4 sprite zp ZP_WORD:29 5184.166666666666 +(byte) gen_chargen_sprite::x +(byte) gen_chargen_sprite::x#1 x zp ZP_BYTE:26 1501.5 +(byte) gen_chargen_sprite::x#6 x zp ZP_BYTE:26 111.22222222222223 +(byte) gen_chargen_sprite::y +(byte) gen_chargen_sprite::y#1 y zp ZP_BYTE:24 151.5 +(byte) gen_chargen_sprite::y#2 y zp ZP_BYTE:24 13.173913043478262 +(void()) gen_sintab((byte*) gen_sintab::sintab , (byte) gen_sintab::length , (byte) gen_sintab::min , (byte) gen_sintab::max) +(word~) gen_sintab::$23 $23 zp ZP_WORD:38 11.0 +(byte~) gen_sintab::$24 reg byte a 22.0 +(label) gen_sintab::@1 +(label) gen_sintab::@10 +(label) gen_sintab::@11 +(label) gen_sintab::@12 +(label) gen_sintab::@13 +(label) gen_sintab::@14 +(label) gen_sintab::@15 +(label) gen_sintab::@16 +(label) gen_sintab::@17 +(label) gen_sintab::@18 +(label) gen_sintab::@19 +(label) gen_sintab::@2 +(label) gen_sintab::@20 +(label) gen_sintab::@21 +(label) gen_sintab::@3 +(label) gen_sintab::@4 +(label) gen_sintab::@5 +(label) gen_sintab::@6 +(label) gen_sintab::@7 +(label) gen_sintab::@8 +(label) gen_sintab::@9 +(label) gen_sintab::@return +(byte*) gen_sintab::f_2pi +(const byte*) gen_sintab::f_2pi#0 f_2pi = (byte*) 58085 +(byte[]) gen_sintab::f_amp +(const byte[]) gen_sintab::f_amp#0 f_amp = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) gen_sintab::f_i +(const byte[]) gen_sintab::f_i#0 f_i = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte[]) gen_sintab::f_min +(const byte[]) gen_sintab::f_min#0 f_min = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte) gen_sintab::i +(byte) gen_sintab::i#1 i zp ZP_BYTE:15 16.5 +(byte) gen_sintab::i#10 i zp ZP_BYTE:15 1.375 +(byte) gen_sintab::length +(byte) gen_sintab::length#10 length zp ZP_BYTE:12 0.22448979591836735 +(byte) gen_sintab::max +(byte) gen_sintab::max#2 reg byte x +(byte) gen_sintab::min +(byte) gen_sintab::min#2 min zp ZP_BYTE:11 +(byte*) gen_sintab::sintab +(byte*) gen_sintab::sintab#12 sintab zp ZP_WORD:13 0.22448979591836735 +(void()) gen_sprites() +(label) gen_sprites::@1 +(label) gen_sprites::@2 +(label) gen_sprites::@return +(byte[]) gen_sprites::cml +(const byte[]) gen_sprites::cml#0 cml = (string) "camelot" +(byte) gen_sprites::i +(byte) gen_sprites::i#1 i zp ZP_BYTE:21 16.5 +(byte) gen_sprites::i#2 i zp ZP_BYTE:21 6.6000000000000005 +(byte*) gen_sprites::spr +(byte*) gen_sprites::spr#1 spr zp ZP_WORD:22 7.333333333333333 +(byte*) gen_sprites::spr#2 spr zp ZP_WORD:22 8.25 +(word()) getFAC() +(label) getFAC::@return +(word) getFAC::return +(word) getFAC::return#0 return zp ZP_WORD:38 4.333333333333333 +(word) getFAC::return#2 return zp ZP_WORD:38 22.0 +(word) getFAC::w +(void()) init() +(label) init::@1 +(label) init::@2 +(label) init::@3 +(label) init::@4 +(label) init::@5 +(label) init::@6 +(label) init::@7 +(label) init::@8 +(label) init::@return +(byte) init::i +(byte) init::i#1 reg byte x 16.5 +(byte) init::i#2 reg byte x 14.666666666666666 +(void()) main() +(label) main::@1 +(label) main::@2 +(byte*) memHi +(const byte*) memHi#0 memHi = (byte*) 255 +(byte*) memLo +(const byte*) memLo#0 memLo = (byte*) 254 +(void()) mulFACbyMEM((byte*) mulFACbyMEM::mem) +(label) mulFACbyMEM::@1 +(label) mulFACbyMEM::@return +(byte*) mulFACbyMEM::mem +(byte*) mulFACbyMEM::mem#2 mem zp ZP_WORD:19 2.0 +(void()) place_sprites() +(label) place_sprites::@1 +(label) place_sprites::@return +(byte) place_sprites::col +(byte) place_sprites::col#1 col zp ZP_BYTE:35 4.4 +(byte) place_sprites::col#2 col zp ZP_BYTE:35 4.714285714285714 +(byte) place_sprites::j +(byte) place_sprites::j#1 j zp ZP_BYTE:32 16.5 +(byte) place_sprites::j#2 j zp ZP_BYTE:32 4.4 +(byte) place_sprites::j2 +(byte) place_sprites::j2#1 reg byte x 22.0 +(byte) place_sprites::j2#2 j2 zp ZP_BYTE:34 7.333333333333333 +(byte) place_sprites::j2#3 j2 zp ZP_BYTE:34 5.5 +(byte) place_sprites::spr_id +(byte) place_sprites::spr_id#1 spr_id zp ZP_BYTE:31 2.2 +(byte) place_sprites::spr_id#2 spr_id zp ZP_BYTE:31 16.5 +(byte) place_sprites::spr_x +(byte) place_sprites::spr_x#1 spr_x zp ZP_BYTE:33 3.6666666666666665 +(byte) place_sprites::spr_x#2 spr_x zp ZP_BYTE:33 5.5 +(byte*) place_sprites::sprites_ptr +(const byte*) place_sprites::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word) $3f8 +(void()) prepareMEM((byte*) prepareMEM::mem) +(byte~) prepareMEM::$0 reg byte a 4.0 +(byte~) prepareMEM::$1 reg byte a 4.0 +(label) prepareMEM::@return +(byte*) prepareMEM::mem +(byte*) prepareMEM::mem#1 mem zp ZP_WORD:19 4.0 +(byte*) prepareMEM::mem#3 mem zp ZP_WORD:19 4.0 +(byte*) prepareMEM::mem#4 mem zp ZP_WORD:19 4.0 +(byte*) prepareMEM::mem#5 mem zp ZP_WORD:19 3.9999999999999996 +(byte*~) prepareMEM::mem#8 mem zp ZP_WORD:19 4.0 +(byte*) progress_cursor +(byte*) progress_cursor#10 progress_cursor zp ZP_WORD:17 4.0 +(byte*) progress_cursor#11 progress_cursor zp ZP_WORD:17 2.8333333333333335 +(byte*) progress_cursor#34 progress_cursor zp ZP_WORD:17 0.7307692307692306 +(byte) progress_idx +(byte) progress_idx#10 progress_idx zp ZP_BYTE:16 3.0 +(byte) progress_idx#12 progress_idx zp ZP_BYTE:16 2.5 +(byte) progress_idx#34 progress_idx zp ZP_BYTE:16 0.5652173913043479 +(void()) progress_inc() +(label) progress_inc::@1 +(label) progress_inc::@2 +(label) progress_inc::@return +(byte[]) progress_inc::progress_chars +(const byte[]) progress_inc::progress_chars#0 progress_chars = { (byte) $20, (byte) $65, (byte) $74, (byte) $75, (byte) $61, (byte) $f6, (byte) $e7, (byte) $ea, (byte) $e0 } +(void()) progress_init((byte*) progress_init::line) +(label) progress_init::@return +(byte*) progress_init::line +(byte*) progress_init::line#2 line zp ZP_WORD:17 0.06896551724137931 +(void()) setARGtoFAC() +(label) setARGtoFAC::@return +(void()) setFAC((word) setFAC::w) +(label) setFAC::@1 +(label) setFAC::@return +(word) setFAC::w +(word) setFAC::w#0 w zp ZP_WORD:19 4.0 +(word) setFAC::w#1 w zp ZP_WORD:19 4.0 +(word) setFAC::w#3 w zp ZP_WORD:19 22.0 +(word) setFAC::w#4 w zp ZP_WORD:19 22.0 +(word) setFAC::w#5 w zp ZP_WORD:19 26.0 +(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem) +(label) setMEMtoFAC::@1 +(label) setMEMtoFAC::@return +(byte*) setMEMtoFAC::mem +(byte*) setMEMtoFAC::mem#5 mem zp ZP_WORD:19 2.0 +(void()) sinFAC() +(label) sinFAC::@return +(byte) sin_idx_x +(byte) sin_idx_x#11 sin_idx_x zp ZP_BYTE:2 1.625 +(byte) sin_idx_x#13 sin_idx_x zp ZP_BYTE:2 0.5769230769230769 +(byte) sin_idx_x#3 sin_idx_x zp ZP_BYTE:2 2.0 +(byte) sin_idx_y +(byte) sin_idx_y#11 sin_idx_y zp ZP_BYTE:3 3.25 +(byte) sin_idx_y#13 sin_idx_y zp ZP_BYTE:3 0.49999999999999994 +(byte) sin_idx_y#3 sin_idx_y zp ZP_BYTE:3 2.0 +(byte) sinlen_x +(const byte) sinlen_x#0 sinlen_x = (byte) $dd +(byte) sinlen_y +(const byte) sinlen_y#0 sinlen_y = (byte) $c5 +(byte[$dd]) sintab_x +(const byte[$dd]) sintab_x#0 sintab_x = { fill( $dd, 0) } +(byte[$c5]) sintab_y +(const byte[$c5]) sintab_y#0 sintab_y = { fill( $c5, 0) } +(byte*) sprites +(const byte*) sprites#0 sprites = (byte*) 8192 +(void()) subFACfromARG() +(label) subFACfromARG::@return + +zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ] +zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ] +zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ] +zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 anim::$6 ] +zp ZP_BYTE:6 [ anim::j2#2 anim::j2#1 ] +zp ZP_BYTE:7 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ] +zp ZP_BYTE:8 [ anim::j#2 anim::j#1 ] +reg byte x [ init::i#2 init::i#1 ] +zp ZP_WORD:9 [ clear_screen::sc#2 clear_screen::sc#1 ] +reg byte x [ gen_sintab::max#2 ] +zp ZP_BYTE:11 [ gen_sintab::min#2 ] +zp ZP_BYTE:12 [ gen_sintab::length#10 ] +zp ZP_WORD:13 [ gen_sintab::sintab#12 ] +zp ZP_BYTE:15 [ gen_sintab::i#10 gen_sintab::i#1 ] +zp ZP_BYTE:16 [ progress_idx#34 progress_idx#12 progress_idx#10 ] +zp ZP_WORD:17 [ progress_cursor#34 progress_init::line#2 progress_cursor#11 progress_cursor#10 ] +zp ZP_WORD:19 [ prepareMEM::mem#5 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#8 prepareMEM::mem#1 mulFACbyMEM::mem#2 divMEMbyFAC::mem#2 setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 setMEMtoFAC::mem#5 ] +zp ZP_BYTE:21 [ gen_sprites::i#2 gen_sprites::i#1 ] +zp ZP_WORD:22 [ gen_sprites::spr#2 gen_sprites::spr#1 ] +zp ZP_BYTE:24 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ] +zp ZP_BYTE:25 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ] +zp ZP_BYTE:26 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ] +zp ZP_BYTE:27 [ gen_chargen_sprite::c#3 ] +zp ZP_BYTE:28 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ] +reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ] +reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ] +zp ZP_WORD:29 [ gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 ] +zp ZP_BYTE:31 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ] +zp ZP_BYTE:32 [ place_sprites::j#2 place_sprites::j#1 ] +zp ZP_BYTE:33 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ] +zp ZP_BYTE:34 [ place_sprites::j2#3 place_sprites::j2#2 ] +zp ZP_BYTE:35 [ place_sprites::col#2 place_sprites::col#1 ] +zp ZP_WORD:36 [ anim::x#0 ] +reg byte a [ anim::$7 ] +reg byte a [ anim::$9 ] +zp ZP_WORD:38 [ getFAC::return#2 gen_sintab::$23 getFAC::return#0 ] +reg byte a [ gen_sintab::$24 ] +reg byte a [ prepareMEM::$0 ] +reg byte a [ prepareMEM::$1 ] +reg byte x [ gen_chargen_sprite::ch#0 ] +zp ZP_WORD:40 [ gen_chargen_sprite::$0 gen_chargen_sprite::$1 gen_chargen_sprite::chargen#0 ] +reg byte a [ gen_chargen_sprite::$3 ] +reg byte a [ gen_chargen_sprite::$6 ] +reg byte x [ place_sprites::j2#1 ] diff --git a/src/test/ref/fibmem.sym b/src/test/ref/fibmem.sym index 1daabbadc..680252902 100644 --- a/src/test/ref/fibmem.sym +++ b/src/test/ref/fibmem.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[$f]) fibs +(const byte[$f]) fibs#0 fibs = (byte*) 4352 +(void()) main() +(byte~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 18.333333333333332 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$2 ] diff --git a/src/test/ref/fillscreen.sym b/src/test/ref/fillscreen.sym index 1daabbadc..068a491ad 100644 --- a/src/test/ref/fillscreen.sym +++ b/src/test/ref/fillscreen.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) fillscreen((byte) fillscreen::c) +(label) fillscreen::@1 +(label) fillscreen::@return +(byte*) fillscreen::SCREEN2 +(const byte*) fillscreen::SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(word) $100 +(byte*) fillscreen::SCREEN3 +(const byte*) fillscreen::SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(word) $200 +(byte*) fillscreen::SCREEN4 +(const byte*) fillscreen::SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(word) $3e8 +(byte) fillscreen::c +(byte) fillscreen::c#0 reg byte a 5.111111111111112 +(byte) fillscreen::j +(byte) fillscreen::j#1 reg byte x 16.5 +(byte) fillscreen::j#2 reg byte x 13.2 +(void()) main() +(label) main::@return +(byte) main::c +(byte) main::c#0 reg byte a 4.0 + +reg byte x [ fillscreen::j#2 fillscreen::j#1 ] +reg byte a [ main::c#0 ] +reg byte a [ fillscreen::c#0 ] diff --git a/src/test/ref/flipper-rex2.sym b/src/test/ref/flipper-rex2.sym index 1daabbadc..7e9d46e91 100644 --- a/src/test/ref/flipper-rex2.sym +++ b/src/test/ref/flipper-rex2.sym @@ -1 +1,80 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[$10*$10]) buffer1 +(const byte[$10*$10]) buffer1#0 buffer1 = { fill( $10*$10, 0) } +(byte[$10*$10]) buffer2 +(const byte[$10*$10]) buffer2#0 buffer2 = { fill( $10*$10, 0) } +(void()) flip() +(label) flip::@1 +(label) flip::@2 +(label) flip::@3 +(label) flip::@4 +(label) flip::@return +(byte) flip::c +(byte) flip::c#1 c zp ZP_BYTE:6 1501.5 +(byte) flip::c#2 c zp ZP_BYTE:6 500.5 +(byte) flip::dstIdx +(byte) flip::dstIdx#1 reg byte x 701.0 +(byte) flip::dstIdx#2 reg byte x 67.33333333333333 +(byte) flip::dstIdx#3 reg byte x 1034.6666666666667 +(byte) flip::dstIdx#5 reg byte x 202.0 +(byte) flip::i +(byte) flip::i#1 reg byte x 151.5 +(byte) flip::i#2 reg byte x 202.0 +(byte) flip::r +(byte) flip::r#1 r zp ZP_BYTE:5 151.5 +(byte) flip::r#4 r zp ZP_BYTE:5 25.25 +(byte) flip::srcIdx +(byte) flip::srcIdx#1 reg byte y 300.42857142857144 +(byte) flip::srcIdx#2 reg byte y 1552.0 +(byte) flip::srcIdx#3 reg byte y 202.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(byte) main::c +(byte) main::c#1 reg byte x 151.5 +(byte) main::c#4 reg byte x 67.33333333333333 +(void()) plot() +(label) plot::@1 +(label) plot::@2 +(label) plot::@3 +(label) plot::@return +(byte) plot::i +(byte) plot::i#1 reg byte x 350.5 +(byte) plot::i#2 reg byte x 1552.0 +(byte) plot::i#3 reg byte x 202.0 +(byte*) plot::line +(byte*) plot::line#1 line zp ZP_WORD:2 67.33333333333333 +(byte*) plot::line#4 line zp ZP_WORD:2 200.50000000000003 +(byte) plot::x +(byte) plot::x#1 reg byte y 1501.5 +(byte) plot::x#2 reg byte y 1001.0 +(byte) plot::y +(byte) plot::y#1 y zp ZP_BYTE:4 151.5 +(byte) plot::y#4 y zp ZP_BYTE:4 28.857142857142858 +(void()) prepare() +(label) prepare::@1 +(label) prepare::@return +(byte) prepare::i +(byte) prepare::i#1 reg byte x 16.5 +(byte) prepare::i#2 reg byte x 22.0 + +reg byte x [ main::c#4 main::c#1 ] +zp ZP_WORD:2 [ plot::line#4 plot::line#1 ] +zp ZP_BYTE:4 [ plot::y#4 plot::y#1 ] +reg byte x [ plot::i#2 plot::i#3 plot::i#1 ] +reg byte y [ plot::x#2 plot::x#1 ] +zp ZP_BYTE:5 [ flip::r#4 flip::r#1 ] +reg byte y [ flip::srcIdx#2 flip::srcIdx#3 flip::srcIdx#1 ] +reg byte x [ flip::dstIdx#3 flip::dstIdx#5 flip::dstIdx#2 flip::dstIdx#1 ] +zp ZP_BYTE:6 [ flip::c#2 flip::c#1 ] +reg byte x [ flip::i#2 flip::i#1 ] +reg byte x [ prepare::i#2 prepare::i#1 ] diff --git a/src/test/ref/for-empty-increment.sym b/src/test/ref/for-empty-increment.sym index 1daabbadc..eaca2c585 100644 --- a/src/test/ref/for-empty-increment.sym +++ b/src/test/ref/for-empty-increment.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-empty-init.sym b/src/test/ref/for-empty-init.sym index 1daabbadc..eaca2c585 100644 --- a/src/test/ref/for-empty-init.sym +++ b/src/test/ref/for-empty-init.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-two-vars.sym b/src/test/ref/for-two-vars.sym index 1daabbadc..9a66cb00f 100644 --- a/src/test/ref/for-two-vars.sym +++ b/src/test/ref/for-two-vars.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 16.5 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 11.0 +(byte*) main::sc#2 sc zp ZP_WORD:2 11.0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] diff --git a/src/test/ref/forclassicmin.sym b/src/test/ref/forclassicmin.sym index 1daabbadc..9e993f411 100644 --- a/src/test/ref/forclassicmin.sym +++ b/src/test/ref/forclassicmin.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/forincrementassign.sym b/src/test/ref/forincrementassign.sym index 1daabbadc..2ff996978 100644 --- a/src/test/ref/forincrementassign.sym +++ b/src/test/ref/forincrementassign.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte a 16.5 +(byte) main::i#2 reg byte a 22.0 + +reg byte a [ main::i#2 main::i#1 ] diff --git a/src/test/ref/forrangedwords.sym b/src/test/ref/forrangedwords.sym index 1daabbadc..649c59a2c 100644 --- a/src/test/ref/forrangedwords.sym +++ b/src/test/ref/forrangedwords.sym @@ -1 +1,26 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$1 reg byte a 22.0 +(byte~) main::$3 reg byte a 22.0 +(byte~) main::$4 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(signed word) main::sw +(signed word) main::sw#1 sw zp ZP_WORD:4 16.5 +(signed word) main::sw#2 sw zp ZP_WORD:4 8.8 +(word) main::w +(word) main::w#1 w zp ZP_WORD:2 16.5 +(word) main::w#2 w zp ZP_WORD:2 8.8 + +zp ZP_WORD:2 [ main::w#2 main::w#1 ] +zp ZP_WORD:4 [ main::sw#2 main::sw#1 ] +reg byte a [ main::$0 ] +reg byte a [ main::$1 ] +reg byte a [ main::$3 ] +reg byte a [ main::$4 ] diff --git a/src/test/ref/forrangemin.sym b/src/test/ref/forrangemin.sym index 1daabbadc..1b9836051 100644 --- a/src/test/ref/forrangemin.sym +++ b/src/test/ref/forrangemin.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN1 +(const byte*) SCREEN1#0 SCREEN1 = (byte*) 1024 +(byte*) SCREEN2 +(const byte*) SCREEN2#0 SCREEN2 = (byte*) 1280 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte) main::j +(byte) main::j#2 reg byte x 16.5 +(byte) main::j#3 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ main::j#3 main::j#2 ] diff --git a/src/test/ref/forrangesymbolic.sym b/src/test/ref/forrangesymbolic.sym index 1daabbadc..82c06d23f 100644 --- a/src/test/ref/forrangesymbolic.sym +++ b/src/test/ref/forrangesymbolic.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::BITMAP +(const byte*) main::BITMAP#0 BITMAP = (byte*) 8192 +(byte*) main::b +(byte*) main::b#1 b zp ZP_WORD:2 16.5 +(byte*) main::b#2 b zp ZP_WORD:2 16.5 + +zp ZP_WORD:2 [ main::b#2 main::b#1 ] diff --git a/src/test/ref/fragment-synth.sym b/src/test/ref/fragment-synth.sym index 1daabbadc..98744eecc 100644 --- a/src/test/ref/fragment-synth.sym +++ b/src/test/ref/fragment-synth.sym @@ -1 +1,34 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte()) fct((byte) fct::x , (byte*) fct::z) +(label) fct::@return +(byte) fct::a !reg byte a +(byte) fct::return +(byte) fct::return#0 reg byte a 4.0 +(byte) fct::return#1 reg byte a 4.0 +(byte) fct::return#2 reg byte a 1.5 +(byte) fct::x !reg byte x +(byte) fct::x#2 !reg byte x 2.0 +(byte*) fct::z +(byte*) fct::z#2 z zp ZP_WORD:2 2.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::a1 +(byte) main::a1#0 reg byte a 4.0 +(byte) main::a2 +(byte) main::a2#0 reg byte a 4.0 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 +(byte) main::x +(byte*) main::z + +reg byte x [ fct::x#2 ] +zp ZP_WORD:2 [ fct::z#2 ] +reg byte a [ fct::return#0 ] +reg byte a [ main::a1#0 ] +reg byte a [ fct::return#1 ] +reg byte a [ main::a2#0 ] +reg byte a [ fct::return#2 ] diff --git a/src/test/ref/fragment-variations.sym b/src/test/ref/fragment-variations.sym index 1daabbadc..e3b066049 100644 --- a/src/test/ref/fragment-variations.sym +++ b/src/test/ref/fragment-variations.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_DWORD SIZEOF_DWORD = (byte) 4 +(void()) main() +(dword~) main::$0 $0 zp ZP_DWORD:2 4.0 +(dword~) main::$1 $1 zp ZP_DWORD:2 4.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(dword*) main::screen +(const dword*) main::screen#0 screen = (dword*) 1024 +(word) main::w +(dword()) mul16u((word) mul16u::b , (word) mul16u::a) +(label) mul16u::@return +(word) mul16u::a +(word) mul16u::a#2 a zp ZP_WORD:6 2.0 +(word) mul16u::b +(dword) mul16u::mb +(dword) mul16u::mb#0 mb zp ZP_DWORD:2 2.0 +(dword) mul16u::return +(dword) mul16u::return#0 return zp ZP_DWORD:2 4.0 +(dword) mul16u::return#1 return zp ZP_DWORD:2 4.0 +(dword) mul16u::return#2 return zp ZP_DWORD:2 1.5 + +zp ZP_DWORD:2 [ mul16u::mb#0 mul16u::return#2 mul16u::return#0 main::$0 mul16u::return#1 main::$1 ] +zp ZP_WORD:6 [ mul16u::a#2 ] diff --git a/src/test/ref/function-pointer-noarg-2.sym b/src/test/ref/function-pointer-noarg-2.sym index 1daabbadc..69bf21ff2 100644 --- a/src/test/ref/function-pointer-noarg-2.sym +++ b/src/test/ref/function-pointer-noarg-2.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 8.25 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-3.sym b/src/test/ref/function-pointer-noarg-3.sym index 1daabbadc..c62d19e7c 100644 --- a/src/test/ref/function-pointer-noarg-3.sym +++ b/src/test/ref/function-pointer-noarg-3.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(void()) fn2() +(label) fn2::@return +(byte*) fn2::BGCOL +(const byte*) fn2::BGCOL#0 BGCOL = (byte*) 53281 +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(void()*) main::f +(void()*) main::f#3 f zp ZP_WORD:2 +(byte) main::i +(byte) main::i#1 reg byte x 5.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::f#3 ] +reg byte a [ main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-call-10.sym b/src/test/ref/function-pointer-noarg-call-10.sym index 1daabbadc..83da39677 100644 --- a/src/test/ref/function-pointer-noarg-call-10.sym +++ b/src/test/ref/function-pointer-noarg-call-10.sym @@ -1 +1,41 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) do10((void()*) do10::fn) +(label) do10::@1 +(label) do10::@return +(void()*) do10::fn +(void()*) do10::fn#3 fn zp ZP_WORD:2 +(byte) do10::i +(byte) do10::i#1 i zp ZP_BYTE:4 16.5 +(byte) do10::i#2 i zp ZP_BYTE:4 11.0 +(void()) hello() +(label) hello::@return +(const string) hello::msg msg = (string) "hello @" +(byte) idx +(byte) idx#11 idx zp ZP_BYTE:7 17.5 +(byte) idx#12 idx zp ZP_BYTE:7 7.333333333333333 +(byte) idx#16 idx zp ZP_BYTE:7 1.3333333333333333 +(void()) main() +(label) main::@1 +(label) main::@return +(void()) print((byte*) print::msg) +(label) print::@1 +(label) print::@return +(byte) print::i +(byte) print::i#1 reg byte y 16.5 +(byte) print::i#2 reg byte y 11.0 +(byte*) print::msg +(byte*) print::msg#3 msg zp ZP_WORD:5 3.6666666666666665 +(void()) world() +(label) world::@return +(const string) world::msg msg = (string) "world @" + +zp ZP_WORD:2 [ do10::fn#3 ] +zp ZP_BYTE:4 [ do10::i#2 do10::i#1 ] +zp ZP_WORD:5 [ print::msg#3 ] +reg byte y [ print::i#2 print::i#1 ] +zp ZP_BYTE:7 [ idx#11 idx#16 idx#12 ] diff --git a/src/test/ref/function-pointer-noarg-call-2.sym b/src/test/ref/function-pointer-noarg-call-2.sym index 1daabbadc..e6691e913 100644 --- a/src/test/ref/function-pointer-noarg-call-2.sym +++ b/src/test/ref/function-pointer-noarg-call-2.sym @@ -1 +1,26 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(void()) fn2() +(label) fn2::@return +(byte*) fn2::BGCOL +(const byte*) fn2::BGCOL#0 BGCOL = (byte*) 53281 +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(void()*) main::f +(void()*) main::f#3 f zp ZP_WORD:3 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 5.5 +(byte) main::i#2 i zp ZP_BYTE:2 22.0 + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +zp ZP_WORD:3 [ main::f#3 ] +reg byte a [ main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-call-3.sym b/src/test/ref/function-pointer-noarg-call-3.sym index 1daabbadc..154adafc4 100644 --- a/src/test/ref/function-pointer-noarg-call-3.sym +++ b/src/test/ref/function-pointer-noarg-call-3.sym @@ -1 +1,33 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(void()) fn2() +(label) fn2::@return +(byte*) fn2::BGCOL +(const byte*) fn2::BGCOL#0 BGCOL = (byte*) 53281 +(void()*()) getfn((byte) getfn::b) +(byte~) getfn::$0 reg byte a 4.0 +(label) getfn::@1 +(label) getfn::@return +(byte) getfn::b +(byte) getfn::b#0 reg byte a 13.0 +(void()*) getfn::return +(void()*) getfn::return#0 return zp ZP_WORD:3 22.0 +(void()*) getfn::return#3 return zp ZP_WORD:3 3.6666666666666665 +(void()) main() +(void()*~) main::$1 $1 zp ZP_WORD:3 11.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 5.5 +(byte) main::i#2 i zp ZP_BYTE:2 22.0 + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +zp ZP_WORD:3 [ getfn::return#3 getfn::return#0 main::$1 ] +reg byte a [ getfn::b#0 ] +reg byte a [ getfn::$0 ] diff --git a/src/test/ref/function-pointer-noarg-call-4.sym b/src/test/ref/function-pointer-noarg-call-4.sym index 1daabbadc..078eb595d 100644 --- a/src/test/ref/function-pointer-noarg-call-4.sym +++ b/src/test/ref/function-pointer-noarg-call-4.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(void()*()) getfn((byte) getfn::b) +(label) getfn::@return +(byte) getfn::b +(void()*) getfn::return +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(byte) main::i +(byte) main::i#1 reg byte x 5.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-5.sym b/src/test/ref/function-pointer-noarg-call-5.sym index 1daabbadc..93f28badf 100644 --- a/src/test/ref/function-pointer-noarg-call-5.sym +++ b/src/test/ref/function-pointer-noarg-call-5.sym @@ -1 +1,28 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(void()) fn2() +(label) fn2::@return +(byte*) fn2::BGCOL +(const byte*) fn2::BGCOL#0 BGCOL = (byte*) 53281 +(void()*[2]) fns +(const void()*[2]) fns#0 fns = { &(void()) fn1(), &(void()) fn2() } +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(void()*) main::f +(void()*) main::f#0 f zp ZP_WORD:3 11.0 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 6.6000000000000005 +(byte) main::i#2 i zp ZP_BYTE:2 22.0 + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +reg byte a [ main::$0 ] +reg byte a [ main::$2 ] +zp ZP_WORD:3 [ main::f#0 ] diff --git a/src/test/ref/function-pointer-noarg-call-6.sym b/src/test/ref/function-pointer-noarg-call-6.sym index 1daabbadc..7b8145fc7 100644 --- a/src/test/ref/function-pointer-noarg-call-6.sym +++ b/src/test/ref/function-pointer-noarg-call-6.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@1 +(label) fn1::@return +(byte*) fn1::screen +(byte*) fn1::screen#1 screen zp ZP_WORD:4 151.5 +(byte*) fn1::screen#2 screen zp ZP_WORD:4 202.0 +(void()) main() +(label) main::@1 +(label) main::@return +(void()*) main::cls +(byte*) main::cols +(byte*) main::cols#1 cols zp ZP_WORD:2 16.5 +(byte*) main::cols#2 cols zp ZP_WORD:2 14.666666666666666 + +zp ZP_WORD:2 [ main::cols#2 main::cols#1 ] +zp ZP_WORD:4 [ fn1::screen#2 fn1::screen#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-7.sym b/src/test/ref/function-pointer-noarg-call-7.sym index 1daabbadc..91e8a65b7 100644 --- a/src/test/ref/function-pointer-noarg-call-7.sym +++ b/src/test/ref/function-pointer-noarg-call-7.sym @@ -1 +1,33 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) do10((void()*) do10::fn) +(label) do10::@1 +(label) do10::@return +(void()*) do10::fn +(byte) do10::i +(byte) do10::i#1 i zp ZP_BYTE:2 16.5 +(byte) do10::i#2 i zp ZP_BYTE:2 11.0 +(void()) hello() +(label) hello::@1 +(label) hello::@return +(byte) hello::i +(byte) hello::i#1 reg byte x 151.5 +(byte) hello::i#2 reg byte x 101.0 +(byte) idx +(byte) idx#0 idx zp ZP_BYTE:3 0.26666666666666666 +(byte) idx#1 idx zp ZP_BYTE:3 67.33333333333333 +(byte) idx#3 idx zp ZP_BYTE:3 152.5 +(byte~) idx#7 idx zp ZP_BYTE:3 4.0 +(void()) main() +(label) main::@return +(void()*) main::f +(byte[]) msg +(const byte[]) msg#0 msg = (string) "hello @" + +zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ] +reg byte x [ hello::i#2 hello::i#1 ] +zp ZP_BYTE:3 [ idx#0 idx#3 idx#7 idx#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-8.sym b/src/test/ref/function-pointer-noarg-call-8.sym index 1daabbadc..603f10f59 100644 --- a/src/test/ref/function-pointer-noarg-call-8.sym +++ b/src/test/ref/function-pointer-noarg-call-8.sym @@ -1 +1,41 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) do10((void()*) do10::fn) +(label) do10::@1 +(label) do10::@return +(void()*) do10::fn +(byte) do10::i +(byte) do10::i#1 i zp ZP_BYTE:2 16.5 +(byte) do10::i#2 i zp ZP_BYTE:2 11.0 +(void()) hello() +(label) hello::@1 +(label) hello::@return +(byte) hello::i +(byte) hello::i#1 reg byte y 151.5 +(byte) hello::i#2 reg byte y 101.0 +(byte) idx +(byte) idx#0 idx zp ZP_BYTE:5 0.2222222222222222 +(byte) idx#1 idx zp ZP_BYTE:5 67.33333333333333 +(byte) idx#3 idx zp ZP_BYTE:5 152.5 +(byte~) idx#7 idx zp ZP_BYTE:5 4.0 +(void()) main() +(label) main::@1 +(label) main::@return +(void()*) main::f +(byte*) msg +(byte*) msg#0 msg zp ZP_WORD:3 20.0 +(byte*) msg#1 msg zp ZP_WORD:3 20.0 +(byte*) msg#10 msg zp ZP_WORD:3 10.736842105263158 +(byte[]) msg1 +(const byte[]) msg1#0 msg1 = (string) "hello @" +(byte[]) msg2 +(const byte[]) msg2#0 msg2 = (string) "world @" + +zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ] +reg byte y [ hello::i#2 hello::i#1 ] +zp ZP_WORD:3 [ msg#0 msg#1 msg#10 ] +zp ZP_BYTE:5 [ idx#0 idx#3 idx#7 idx#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-9.sym b/src/test/ref/function-pointer-noarg-call-9.sym index 1daabbadc..fe06c10d1 100644 --- a/src/test/ref/function-pointer-noarg-call-9.sym +++ b/src/test/ref/function-pointer-noarg-call-9.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) fn1() +(label) fn1::@return +(byte) idx +(byte) idx#0 idx zp ZP_BYTE:2 1.0 +(byte) idx#1 idx zp ZP_BYTE:2 20.0 +(void()) main() +(label) main::@return +(void()*) main::f + +zp ZP_BYTE:2 [ idx#0 idx#1 ] diff --git a/src/test/ref/function-pointer-noarg-call.sym b/src/test/ref/function-pointer-noarg-call.sym index 1daabbadc..8312e551f 100644 --- a/src/test/ref/function-pointer-noarg-call.sym +++ b/src/test/ref/function-pointer-noarg-call.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(void()) main() +(label) main::@return +(void()*) main::f + diff --git a/src/test/ref/function-pointer-noarg.sym b/src/test/ref/function-pointer-noarg.sym index 1daabbadc..5c0277c23 100644 --- a/src/test/ref/function-pointer-noarg.sym +++ b/src/test/ref/function-pointer-noarg.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(void()) fn2() +(label) fn2::@return +(byte*) fn2::BGCOL +(const byte*) fn2::BGCOL#0 BGCOL = (byte*) 53281 +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(void()*) main::f + diff --git a/src/test/ref/function-pointer-return.sym b/src/test/ref/function-pointer-return.sym index 1daabbadc..6b1f62913 100644 --- a/src/test/ref/function-pointer-return.sym +++ b/src/test/ref/function-pointer-return.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte()) fn1() +(label) fn1::@return +(byte*) fn1::BORDERCOL +(const byte*) fn1::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte) fn1::return +(byte()) fn2() +(label) fn2::@return +(byte*) fn2::BGCOL +(const byte*) fn2::BGCOL#0 BGCOL = (byte*) 53281 +(byte) fn2::return +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$4 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte()*) main::f +(byte()*) main::f#3 f zp ZP_WORD:2 +(byte) main::i +(byte) main::i#1 reg byte x 4.714285714285714 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::f#3 ] +reg byte a [ main::$0 ] +reg byte a [ main::$4 ] diff --git a/src/test/ref/gfxbank.sym b/src/test/ref/gfxbank.sym index 1daabbadc..519eb256d 100644 --- a/src/test/ref/gfxbank.sym +++ b/src/test/ref/gfxbank.sym @@ -1 +1,23 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(void()) main() +(label) main::@return +(byte*) main::PLAYFIELD_CHARSET +(label) main::vicSelectGfxBank1 +(byte~) main::vicSelectGfxBank1_$0 +(label) main::vicSelectGfxBank1_@1 +(byte*) main::vicSelectGfxBank1_gfx +(label) main::vicSelectGfxBank1_toDd001 +(word~) main::vicSelectGfxBank1_toDd001_$0 +(byte~) main::vicSelectGfxBank1_toDd001_$1 +(number~) main::vicSelectGfxBank1_toDd001_$2 +(number~) main::vicSelectGfxBank1_toDd001_$3 +(byte*) main::vicSelectGfxBank1_toDd001_gfx +(byte) main::vicSelectGfxBank1_toDd001_return +(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3 + diff --git a/src/test/ref/global-pc.sym b/src/test/ref/global-pc.sym index 1daabbadc..65f376eb6 100644 --- a/src/test/ref/global-pc.sym +++ b/src/test/ref/global-pc.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(void()) main() +(label) main::@1 +(byte) main::col +(byte) main::col#0 reg byte a 22.0 + +reg byte a [ main::col#0 ] diff --git a/src/test/ref/halfscii.sym b/src/test/ref/halfscii.sym index 1daabbadc..eefd5a6c2 100644 --- a/src/test/ref/halfscii.sym +++ b/src/test/ref/halfscii.sym @@ -1 +1,111 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) CHARGEN +(const byte*) CHARGEN#0 CHARGEN = (byte*) 53248 +(byte*) CHARSET4 +(const byte*) CHARSET4#0 CHARSET4 = (byte*) 10240 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) bits_count +(const byte[]) bits_count#0 bits_count = { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } +(void()) main() +(byte~) main::$1 $1 zp ZP_BYTE:8 7.333333333333333 +(byte~) main::$11 $11 zp ZP_BYTE:9 7.333333333333333 +(byte~) main::$12 reg byte a 22.0 +(byte~) main::$13 reg byte a 22.0 +(byte~) main::$14 reg byte a 22.0 +(byte~) main::$15 reg byte a 22.0 +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$20 reg byte a 22.0 +(byte~) main::$21 $21 zp ZP_BYTE:10 7.333333333333333 +(byte~) main::$22 reg byte a 22.0 +(byte~) main::$23 reg byte a 22.0 +(byte~) main::$24 reg byte a 22.0 +(byte~) main::$29 reg byte a 22.0 +(byte~) main::$3 reg byte a 22.0 +(byte~) main::$30 $30 zp ZP_BYTE:11 11.0 +(byte~) main::$31 reg byte a 22.0 +(byte~) main::$32 reg byte a 22.0 +(byte~) main::$4 reg byte a 22.0 +(byte~) main::$5 reg byte a 22.0 +(byte~) main::$6 reg byte a 22.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::bits +(byte) main::bits#0 reg byte a 22.0 +(byte) main::bits#1 reg byte a 22.0 +(byte) main::bits#2 reg byte a 22.0 +(byte) main::bits#3 reg byte a 22.0 +(byte) main::bits_gen +(byte) main::bits_gen#1 reg byte x 4.125 +(byte) main::bits_gen#11 reg byte x 33.0 +(byte) main::bits_gen#13 reg byte x 33.0 +(byte) main::bits_gen#14 reg byte x 4.125 +(byte) main::bits_gen#15 reg byte x 33.0 +(byte) main::bits_gen#16 reg byte x 4.714285714285714 +(byte) main::bits_gen#4 reg byte x 22.0 +(byte) main::bits_gen#6 reg byte x 22.0 +(byte) main::bits_gen#7 reg byte a 22.0 +(byte) main::bits_gen#8 reg byte x 22.0 +(byte) main::bits_gen#9 reg byte a 11.0 +(byte*) main::chargen +(byte*) main::chargen#1 chargen zp ZP_WORD:2 16.5 +(byte*) main::chargen#10 chargen zp ZP_WORD:2 1.75 +(byte*) main::chargen1 +(byte*) main::chargen1#0 chargen1 zp ZP_WORD:6 1.6176470588235294 +(byte*) main::charset4 +(byte*) main::charset4#1 charset4 zp ZP_WORD:4 7.333333333333333 +(byte*) main::charset4#10 charset4 zp ZP_WORD:4 0.7674418604651163 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 + +zp ZP_WORD:2 [ main::chargen#10 main::chargen#1 ] +zp ZP_WORD:4 [ main::charset4#10 main::charset4#1 ] +reg byte a [ main::bits_gen#9 ] +reg byte x [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] +reg byte x [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] +reg byte x [ main::bits_gen#15 main::bits_gen#16 main::bits_gen#8 ] +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:6 [ main::chargen1#0 ] +zp ZP_BYTE:8 [ main::$1 ] +reg byte a [ main::$2 ] +reg byte a [ main::$3 ] +reg byte a [ main::$4 ] +reg byte a [ main::$5 ] +reg byte a [ main::$6 ] +reg byte a [ main::bits#0 ] +zp ZP_BYTE:9 [ main::$11 ] +reg byte a [ main::$12 ] +reg byte a [ main::$13 ] +reg byte a [ main::$14 ] +reg byte a [ main::$15 ] +reg byte a [ main::bits#1 ] +reg byte a [ main::$20 ] +zp ZP_BYTE:10 [ main::$21 ] +reg byte a [ main::$22 ] +reg byte a [ main::$23 ] +reg byte a [ main::$24 ] +reg byte a [ main::bits#2 ] +reg byte a [ main::$29 ] +zp ZP_BYTE:11 [ main::$30 ] +reg byte a [ main::$31 ] +reg byte a [ main::$32 ] +reg byte a [ main::bits#3 ] +reg byte a [ main::bits_gen#7 ] diff --git a/src/test/ref/helloworld0.sym b/src/test/ref/helloworld0.sym index 1daabbadc..831844e69 100644 --- a/src/test/ref/helloworld0.sym +++ b/src/test/ref/helloworld0.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte[]) msg +(const byte[]) msg#0 msg = (string) "hello world!@" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/helloworld2-inline.sym b/src/test/ref/helloworld2-inline.sym index 1daabbadc..b9c695cd3 100644 --- a/src/test/ref/helloworld2-inline.sym +++ b/src/test/ref/helloworld2-inline.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::hello +(const byte*) main::hello#0 hello = (string) "hello world!@" +(label) main::print21 +(bool~) main::print21_$0 +(label) main::print21_@1 +(byte*) main::print21_at +(byte) main::print21_i +(byte) main::print21_i#1 reg byte y 16.5 +(byte) main::print21_i#2 reg byte y 11.0 +(byte) main::print21_j +(byte) main::print21_j#1 reg byte x 7.333333333333333 +(byte) main::print21_j#2 reg byte x 16.5 +(byte*) main::print21_msg +(label) main::print22 +(bool~) main::print22_$0 +(label) main::print22_@1 +(byte*) main::print22_at +(const byte*) main::print22_at#0 print22_at = (const byte*) screen#0+(byte) $50 +(byte) main::print22_i +(byte) main::print22_i#1 reg byte y 16.5 +(byte) main::print22_i#2 reg byte y 11.0 +(byte) main::print22_j +(byte) main::print22_j#1 reg byte x 7.333333333333333 +(byte) main::print22_j#2 reg byte x 16.5 +(byte*) main::print22_msg +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + +reg byte y [ main::print21_i#2 main::print21_i#1 ] +reg byte x [ main::print21_j#2 main::print21_j#1 ] +reg byte y [ main::print22_i#2 main::print22_i#1 ] +reg byte x [ main::print22_j#2 main::print22_j#1 ] diff --git a/src/test/ref/helloworld2.sym b/src/test/ref/helloworld2.sym index 1daabbadc..34112b674 100644 --- a/src/test/ref/helloworld2.sym +++ b/src/test/ref/helloworld2.sym @@ -1 +1,26 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::hello +(const byte*) main::hello#0 hello = (string) "hello world!@" +(void()) print2((byte*) print2::at , (byte*) print2::msg) +(label) print2::@1 +(label) print2::@return +(byte*) print2::at +(byte*) print2::at#3 at zp ZP_WORD:2 1.8333333333333333 +(byte) print2::i +(byte) print2::i#1 reg byte x 16.5 +(byte) print2::i#2 reg byte x 11.0 +(byte) print2::j +(byte) print2::j#1 reg byte y 7.333333333333333 +(byte) print2::j#2 reg byte y 16.5 +(byte*) print2::msg +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + +zp ZP_WORD:2 [ print2::at#3 ] +reg byte x [ print2::i#2 print2::i#1 ] +reg byte y [ print2::j#2 print2::j#1 ] diff --git a/src/test/ref/hex2dec-ptrptr.sym b/src/test/ref/hex2dec-ptrptr.sym index 1daabbadc..124ca6044 100644 --- a/src/test/ref/hex2dec-ptrptr.sym +++ b/src/test/ref/hex2dec-ptrptr.sym @@ -1 +1,72 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[]) DIGITS +(const byte[]) DIGITS#0 DIGITS = (string) "0123456789abcdef@" +(void()) cls() +(label) cls::@1 +(label) cls::@return +(byte*) cls::sc +(byte*) cls::sc#1 sc zp ZP_WORD:6 16.5 +(byte*) cls::sc#2 sc zp ZP_WORD:6 16.5 +(byte*) cls::screen +(const byte*) cls::screen#0 screen = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte*) main::screen +(byte()) utoa16n((byte) utoa16n::nybble , (word**) utoa16n::dst , (byte) utoa16n::started) +(label) utoa16n::@1 +(label) utoa16n::@2 +(label) utoa16n::@3 +(label) utoa16n::@return +(word**) utoa16n::dst +(byte) utoa16n::nybble +(byte) utoa16n::nybble#0 reg byte a 4.0 +(byte) utoa16n::nybble#1 reg byte a 2.0 +(byte) utoa16n::nybble#2 reg byte a 2.0 +(byte) utoa16n::nybble#3 reg byte a 4.0 +(byte) utoa16n::nybble#4 reg byte a 2.4 +(byte) utoa16n::return +(byte) utoa16n::return#0 reg byte x 4.0 +(byte) utoa16n::return#1 reg byte x 4.0 +(byte) utoa16n::return#4 reg byte x 1.1428571428571428 +(byte) utoa16n::started +(byte) utoa16n::started#1 reg byte x 4.0 +(byte) utoa16n::started#2 reg byte x 4.0 +(byte) utoa16n::started#7 reg byte x 2.0 +(void()) utoa16w((word) utoa16w::value , (byte*) utoa16w::dst) +(byte~) utoa16w::$0 reg byte a 4.0 +(byte~) utoa16w::$12 reg byte a 4.0 +(byte~) utoa16w::$4 reg byte a 4.0 +(byte~) utoa16w::$8 reg byte a 4.0 +(label) utoa16w::@1 +(label) utoa16w::@2 +(label) utoa16w::@3 +(label) utoa16w::@4 +(label) utoa16w::@return +(byte*) utoa16w::dst +(byte*) utoa16w::dst#5 dst zp ZP_WORD:4 0.07407407407407407 +(byte) utoa16w::started +(byte) utoa16w::started#1 reg byte x 1.3333333333333333 +(byte) utoa16w::started#2 reg byte x 1.3333333333333333 +(word) utoa16w::value +(word) utoa16w::value#5 value zp ZP_WORD:2 0.5 + +zp ZP_WORD:2 [ utoa16w::value#5 ] +zp ZP_WORD:4 [ utoa16w::dst#5 ] +reg byte a [ utoa16n::nybble#4 utoa16n::nybble#0 utoa16n::nybble#1 utoa16n::nybble#2 utoa16n::nybble#3 ] +reg byte x [ utoa16n::return#4 utoa16n::started#7 utoa16n::started#1 utoa16n::started#2 ] +zp ZP_WORD:6 [ cls::sc#2 cls::sc#1 ] +reg byte a [ utoa16w::$0 ] +reg byte x [ utoa16n::return#0 ] +reg byte x [ utoa16w::started#1 ] +reg byte a [ utoa16w::$4 ] +reg byte x [ utoa16n::return#1 ] +reg byte x [ utoa16w::started#2 ] +reg byte a [ utoa16w::$8 ] +reg byte a [ utoa16w::$12 ] diff --git a/src/test/ref/hex2dec.sym b/src/test/ref/hex2dec.sym index 1daabbadc..1289571ec 100644 --- a/src/test/ref/hex2dec.sym +++ b/src/test/ref/hex2dec.sym @@ -1 +1,148 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[]) DIGITS +(const byte[]) DIGITS#0 DIGITS = (string) "0123456789abcdef@" +(word[]) UTOA10_SUB +(const word[]) UTOA10_SUB#0 UTOA10_SUB = { (word) $7530, (word) $2710, (word) $bb8, (word) $3e8, (word) $12c, (word) $64, (word) $1e, (word) $a } +(byte[]) UTOA10_VAL +(const byte[]) UTOA10_VAL#0 UTOA10_VAL = { (byte) 3, (byte) 1, (byte) 3, (byte) 1, (byte) 3, (byte) 1, (byte) 3, (byte) 1 } +(byte*) bordercol +(const byte*) bordercol#0 bordercol = (byte*) 53280 +(void()) cls() +(label) cls::@1 +(label) cls::@return +(byte*) cls::sc +(byte*) cls::sc#1 sc zp ZP_WORD:12 16.5 +(byte*) cls::sc#2 sc zp ZP_WORD:12 16.5 +(byte*) cls::screen +(const byte*) cls::screen#0 screen = (byte*) 1024 +(byte*) control +(const byte*) control#0 control = (byte*) 53265 +(void()) main() +(byte~) main::$1 $1 zp ZP_BYTE:14 101.0 +(byte~) main::$2 reg byte a 202.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(byte) main::i +(byte) main::i#1 reg byte x 151.5 +(byte) main::i#2 reg byte x 202.0 +(byte[]) main::msg +(const byte[]) main::msg#0 msg = (string) "raster lines@" +(byte) main::rst +(byte) main::rst#0 reg byte a 202.0 +(byte*) main::screen +(byte) main::time +(byte) main::time#0 reg byte a 11.0 +(byte) main::time_end +(byte) main::time_end#0 reg byte x 11.0 +(byte) main::time_start +(byte) main::time_start#0 time_start zp ZP_BYTE:15 1.8333333333333333 +(byte*) raster +(const byte*) raster#0 raster = (byte*) 53266 +(void()) utoa10w((word) utoa10w::value , (byte*) utoa10w::dst) +(byte~) utoa10w::$0 reg byte a 4.0 +(byte~) utoa10w::$2 reg byte a 202.0 +(byte~) utoa10w::$8 reg byte a 202.0 +(byte~) utoa10w::$9 reg byte a 202.0 +(label) utoa10w::@1 +(label) utoa10w::@2 +(label) utoa10w::@3 +(label) utoa10w::@4 +(label) utoa10w::@5 +(label) utoa10w::@6 +(label) utoa10w::@7 +(label) utoa10w::@8 +(label) utoa10w::@return +(byte) utoa10w::bStarted +(byte) utoa10w::bStarted#2 bStarted zp ZP_BYTE:5 20.2 +(byte) utoa10w::digit +(byte) utoa10w::digit#1 digit zp ZP_BYTE:4 67.33333333333333 +(byte) utoa10w::digit#3 digit zp ZP_BYTE:4 84.16666666666666 +(byte) utoa10w::digit#7 digit zp ZP_BYTE:4 67.33333333333333 +(byte*) utoa10w::dst +(byte*) utoa10w::dst#1 dst zp ZP_WORD:6 202.0 +(byte*) utoa10w::dst#11 dst zp ZP_WORD:6 72.14285714285714 +(byte*) utoa10w::dst#2 dst zp ZP_WORD:6 4.0 +(byte*) utoa10w::dst#4 dst zp ZP_WORD:6 61.39999999999999 +(byte*) utoa10w::dst#7 dst zp ZP_WORD:6 303.0 +(byte) utoa10w::i +(byte) utoa10w::i#1 reg byte x 151.5 +(byte) utoa10w::i#2 reg byte x 55.090909090909086 +(word) utoa10w::value +(word) utoa10w::value#0 value zp ZP_WORD:2 6.5 +(word) utoa10w::value#1 value zp ZP_WORD:2 202.0 +(word) utoa10w::value#10 value zp ZP_WORD:2 21.78571428571429 +(byte()) utoa16n((byte) utoa16n::nybble , (word**) utoa16n::dst , (byte) utoa16n::started) +(label) utoa16n::@1 +(label) utoa16n::@2 +(label) utoa16n::@3 +(label) utoa16n::@return +(word**) utoa16n::dst +(byte) utoa16n::nybble +(byte) utoa16n::nybble#0 reg byte a 4.0 +(byte) utoa16n::nybble#1 reg byte a 2.0 +(byte) utoa16n::nybble#2 reg byte a 2.0 +(byte) utoa16n::nybble#3 reg byte a 4.0 +(byte) utoa16n::nybble#4 reg byte a 2.4 +(byte) utoa16n::return +(byte) utoa16n::return#0 reg byte x 4.0 +(byte) utoa16n::return#1 reg byte x 4.0 +(byte) utoa16n::return#4 reg byte x 1.1428571428571428 +(byte) utoa16n::started +(byte) utoa16n::started#1 reg byte x 4.0 +(byte) utoa16n::started#2 reg byte x 4.0 +(byte) utoa16n::started#7 reg byte x 2.0 +(void()) utoa16w((word) utoa16w::value , (byte*) utoa16w::dst) +(byte~) utoa16w::$0 reg byte a 4.0 +(byte~) utoa16w::$12 reg byte a 4.0 +(byte~) utoa16w::$4 reg byte a 4.0 +(byte~) utoa16w::$8 reg byte a 4.0 +(label) utoa16w::@1 +(label) utoa16w::@2 +(label) utoa16w::@3 +(label) utoa16w::@4 +(label) utoa16w::@return +(byte*) utoa16w::dst +(byte*) utoa16w::dst#5 dst zp ZP_WORD:10 0.07407407407407407 +(byte) utoa16w::started +(byte) utoa16w::started#1 reg byte x 1.3333333333333333 +(byte) utoa16w::started#2 reg byte x 1.3333333333333333 +(word) utoa16w::value +(word) utoa16w::value#5 value zp ZP_WORD:8 0.5 + +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ utoa10w::i#2 utoa10w::i#1 ] +zp ZP_WORD:2 [ utoa10w::value#10 utoa10w::value#0 utoa10w::value#1 ] +zp ZP_BYTE:4 [ utoa10w::digit#3 utoa10w::digit#7 utoa10w::digit#1 ] +zp ZP_BYTE:5 [ utoa10w::bStarted#2 ] +zp ZP_WORD:6 [ utoa10w::dst#7 utoa10w::dst#11 utoa10w::dst#4 utoa10w::dst#1 utoa10w::dst#2 ] +zp ZP_WORD:8 [ utoa16w::value#5 ] +zp ZP_WORD:10 [ utoa16w::dst#5 ] +reg byte a [ utoa16n::nybble#4 utoa16n::nybble#0 utoa16n::nybble#1 utoa16n::nybble#2 utoa16n::nybble#3 ] +reg byte x [ utoa16n::return#4 utoa16n::started#7 utoa16n::started#1 utoa16n::started#2 ] +zp ZP_WORD:12 [ cls::sc#2 cls::sc#1 ] +zp ZP_BYTE:14 [ main::$1 ] +reg byte a [ main::$2 ] +reg byte a [ main::rst#0 ] +zp ZP_BYTE:15 [ main::time_start#0 ] +reg byte x [ main::time_end#0 ] +reg byte a [ main::time#0 ] +reg byte a [ utoa10w::$8 ] +reg byte a [ utoa10w::$2 ] +reg byte a [ utoa10w::$0 ] +reg byte a [ utoa10w::$9 ] +reg byte a [ utoa16w::$0 ] +reg byte x [ utoa16n::return#0 ] +reg byte x [ utoa16w::started#1 ] +reg byte a [ utoa16w::$4 ] +reg byte x [ utoa16n::return#1 ] +reg byte x [ utoa16w::started#2 ] +reg byte a [ utoa16w::$8 ] +reg byte a [ utoa16w::$12 ] diff --git a/src/test/ref/ifmin.sym b/src/test/ref/ifmin.sym index 1daabbadc..efcd1b0d0 100644 --- a/src/test/ref/ifmin.sym +++ b/src/test/ref/ifmin.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 14.666666666666666 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/immzero.sym b/src/test/ref/immzero.sym index 1daabbadc..b067eec77 100644 --- a/src/test/ref/immzero.sym +++ b/src/test/ref/immzero.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::j +(byte) main::j#1 reg byte x 16.5 +(byte) main::j#2 reg byte x 16.5 +(word) main::w +(word) main::w#1 w zp ZP_WORD:2 7.333333333333333 +(word) main::w#2 w zp ZP_WORD:2 22.0 + +zp ZP_WORD:2 [ main::w#2 main::w#1 ] +reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/importing.sym b/src/test/ref/importing.sym index 1daabbadc..68aef9f04 100644 --- a/src/test/ref/importing.sym +++ b/src/test/ref/importing.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(void()) main() +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/incd020.sym b/src/test/ref/incd020.sym index 1daabbadc..1dcc7f20a 100644 --- a/src/test/ref/incd020.sym +++ b/src/test/ref/incd020.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(void()) main() +(label) main::@1 + diff --git a/src/test/ref/incrementinarray.sym b/src/test/ref/incrementinarray.sym index 1daabbadc..c0dd42449 100644 --- a/src/test/ref/incrementinarray.sym +++ b/src/test/ref/incrementinarray.sym @@ -1 +1,46 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 4.4 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:6 101.0 +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:6 40.6 +(byte*) print_char_cursor#25 print_char_cursor zp ZP_WORD:6 6.5 +(byte*~) print_char_cursor#31 print_char_cursor zp ZP_WORD:6 22.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:8 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:8 16.5 +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 40.625 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:2 3.25 +(byte*) print_line_cursor#9 print_line_cursor zp ZP_WORD:2 204.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:4 202.0 +(byte*) print_str::str#2 str zp ZP_WORD:4 101.0 +(byte[]) txt +(const byte[]) txt#0 txt = (string) "camelot@" + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] +zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ] +zp ZP_WORD:6 [ print_char_cursor#12 print_char_cursor#25 print_char_cursor#31 print_char_cursor#1 ] +zp ZP_WORD:8 [ print_cls::sc#2 print_cls::sc#1 ] diff --git a/src/test/ref/infloop-error.sym b/src/test/ref/infloop-error.sym index 1daabbadc..24a939518 100644 --- a/src/test/ref/infloop-error.sym +++ b/src/test/ref/infloop-error.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(byte) main::max +(byte) main::max#2 reg byte y 5.5 +(byte) main::max#3 reg byte y 11.0 +(byte~) main::max#9 reg byte y 22.0 +(byte) main::min +(byte) main::min#2 reg byte x 11.0 +(byte) main::min#3 reg byte x 6.285714285714286 +(byte~) main::min#9 reg byte x 22.0 +(byte) main::pos +(byte) main::pos#1 reg byte a 7.699999999999999 +(byte) main::pos#2 reg byte a 22.0 + +reg byte a [ main::pos#2 main::pos#1 ] +reg byte x [ main::min#2 main::min#3 main::min#9 ] +reg byte y [ main::max#2 main::max#3 main::max#9 ] diff --git a/src/test/ref/init-volatiles.sym b/src/test/ref/init-volatiles.sym index 1daabbadc..86974fb51 100644 --- a/src/test/ref/init-volatiles.sym +++ b/src/test/ref/init-volatiles.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) x +(byte) x#0 x zp ZP_BYTE:2 1.3333333333333333 +(byte) x#1 x zp ZP_BYTE:2 16.5 +(byte) x#2 x zp ZP_BYTE:2 20.0 +(byte) x#5 x zp ZP_BYTE:2 24.0 + +zp ZP_BYTE:2 [ x#5 x#0 x#1 x#2 ] diff --git a/src/test/ref/inline-asm-clobber-none.sym b/src/test/ref/inline-asm-clobber-none.sym index 1daabbadc..82c806ec4 100644 --- a/src/test/ref/inline-asm-clobber-none.sym +++ b/src/test/ref/inline-asm-clobber-none.sym @@ -1 +1,23 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte a 16.5 +(byte) main::i#6 reg byte a 2.75 +(byte) main::j +(byte) main::j#1 reg byte x 151.5 +(byte) main::j#4 reg byte x 40.4 +(byte) main::k +(byte) main::k#1 reg byte y 1501.5 +(byte) main::k#2 reg byte y 1001.0 + +reg byte a [ main::i#6 main::i#1 ] +reg byte x [ main::j#4 main::j#1 ] +reg byte y [ main::k#2 main::k#1 ] diff --git a/src/test/ref/inline-asm-clobber.sym b/src/test/ref/inline-asm-clobber.sym index 1daabbadc..974091f76 100644 --- a/src/test/ref/inline-asm-clobber.sym +++ b/src/test/ref/inline-asm-clobber.sym @@ -1 +1,30 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#4 reg byte x 24.599999999999998 +(byte) main::j +(byte) main::j#1 reg byte a 151.5 +(byte) main::j#2 reg byte a 151.5 +(byte) main::k +(byte) main::k#1 reg byte y 16.5 +(byte) main::k#4 reg byte y 20.499999999999996 +(byte) main::l +(byte) main::l#1 l zp ZP_BYTE:2 151.5 +(byte) main::l#2 l zp ZP_BYTE:2 101.0 + +reg byte x [ main::i#4 main::i#1 ] +reg byte a [ main::j#2 main::j#1 ] +reg byte y [ main::k#4 main::k#1 ] +zp ZP_BYTE:2 [ main::l#2 main::l#1 ] diff --git a/src/test/ref/inline-asm-jsr-clobber.sym b/src/test/ref/inline-asm-jsr-clobber.sym index 1daabbadc..569379de2 100644 --- a/src/test/ref/inline-asm-jsr-clobber.sym +++ b/src/test/ref/inline-asm-jsr-clobber.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 16.5 +(byte) main::i#2 i zp ZP_BYTE:2 11.0 + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inline-asm-label.sym b/src/test/ref/inline-asm-label.sym index 1daabbadc..fdc060cb4 100644 --- a/src/test/ref/inline-asm-label.sym +++ b/src/test/ref/inline-asm-label.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return +(byte[]) table +(const byte[]) table#0 table = (string) "cml!" + diff --git a/src/test/ref/inline-asm-optimized.sym b/src/test/ref/inline-asm-optimized.sym index 1daabbadc..d0863c4b5 100644 --- a/src/test/ref/inline-asm-optimized.sym +++ b/src/test/ref/inline-asm-optimized.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/inline-asm-ref-scoped.sym b/src/test/ref/inline-asm-ref-scoped.sym index 1daabbadc..24ed4f685 100644 --- a/src/test/ref/inline-asm-ref-scoped.sym +++ b/src/test/ref/inline-asm-ref-scoped.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(void()) sub() +(label) sub::@return + diff --git a/src/test/ref/inline-asm-refout-const.sym b/src/test/ref/inline-asm-refout-const.sym index 1daabbadc..fdc060cb4 100644 --- a/src/test/ref/inline-asm-refout-const.sym +++ b/src/test/ref/inline-asm-refout-const.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return +(byte[]) table +(const byte[]) table#0 table = (string) "cml!" + diff --git a/src/test/ref/inline-asm-refout.sym b/src/test/ref/inline-asm-refout.sym index 1daabbadc..f3e81b2f7 100644 --- a/src/test/ref/inline-asm-refout.sym +++ b/src/test/ref/inline-asm-refout.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) table +(const byte[]) table#0 table = (string) "cml!" + diff --git a/src/test/ref/inline-asm.sym b/src/test/ref/inline-asm.sym index 1daabbadc..5b1ee8133 100644 --- a/src/test/ref/inline-asm.sym +++ b/src/test/ref/inline-asm.sym @@ -1 +1,6 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return + diff --git a/src/test/ref/inline-assignment.sym b/src/test/ref/inline-assignment.sym index 1daabbadc..2e0961fb0 100644 --- a/src/test/ref/inline-assignment.sym +++ b/src/test/ref/inline-assignment.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::a +(byte) main::a#1 reg byte x 22.0 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 + +reg byte x [ main::a#1 main::i#1 ] diff --git a/src/test/ref/inline-function-if.sym b/src/test/ref/inline-function-if.sym index 1daabbadc..f834ae9ae 100644 --- a/src/test/ref/inline-function-if.sym +++ b/src/test/ref/inline-function-if.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(label) main::toUpper1 +(bool~) main::toUpper1_$0 +(bool) main::toUpper1_bo +(byte) main::toUpper1_ch +(const byte) main::toUpper1_ch#0 toUpper1_ch = (byte) 'c' +(byte) main::toUpper1_res +(byte) main::toUpper1_return +(const byte) main::toUpper1_return#0 toUpper1_return = (const byte) main::toUpper1_ch#0+(byte) $40 +(label) main::toUpper2 +(bool~) main::toUpper2_$0 +(bool) main::toUpper2_bo +(byte) main::toUpper2_ch +(const byte) main::toUpper2_ch#0 toUpper2_ch = (byte) 'm' +(byte) main::toUpper2_res +(byte) main::toUpper2_return +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/inline-function-level2.sym b/src/test/ref/inline-function-level2.sym index 1daabbadc..45eaa4690 100644 --- a/src/test/ref/inline-function-level2.sym +++ b/src/test/ref/inline-function-level2.sym @@ -1 +1,72 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) cur_line +(byte*) cur_line#1 cur_line zp ZP_WORD:6 7.333333333333333 +(byte*) cur_line#10 cur_line#10 zp ZP_WORD:10 8.25 +(byte*) cur_line#11 cur_line#11 zp ZP_WORD:10 7.333333333333333 +(byte*) cur_line#13 cur_line zp ZP_WORD:6 8.25 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(label) main::line1 +(byte~) main::line1_$0 +(bool~) main::line1_$2 +(label) main::line1_@1 +(byte) main::line1_ch +(const byte) main::line1_ch#0 line1_ch = (byte) '*' +(byte) main::line1_i +(byte) main::line1_i#1 reg byte x 16.5 +(byte) main::line1_i#2 reg byte x 4.4 +(word) main::line1_pos +(word) main::line1_pos#1 line1_pos zp ZP_WORD:4 5.5 +(word) main::line1_pos#2 line1_pos zp ZP_WORD:4 11.0 +(byte) main::line1_xadd +(const byte) main::line1_xadd#0 line1_xadd = (byte) $40 +(byte) main::line1_xpos +(const byte) main::line1_xpos#0 line1_xpos = (byte) 2 +(byte) main::line1_ysize +(const byte) main::line1_ysize#0 line1_ysize = (byte) $a +(label) main::line2 +(byte~) main::line2_$0 +(bool~) main::line2_$2 +(label) main::line2_@1 +(byte) main::line2_ch +(const byte) main::line2_ch#0 line2_ch = (byte) '.' +(byte) main::line2_i +(byte) main::line2_i#1 reg byte x 16.5 +(byte) main::line2_i#2 reg byte x 4.4 +(word) main::line2_pos +(word) main::line2_pos#1 line2_pos zp ZP_WORD:8 5.5 +(word) main::line2_pos#2 line2_pos zp ZP_WORD:8 11.0 +(byte) main::line2_xadd +(const byte) main::line2_xadd#0 line2_xadd = (byte) $80 +(byte) main::line2_xpos +(const byte) main::line2_xpos#0 line2_xpos = (byte) 4 +(byte) main::line2_ysize +(const byte) main::line2_ysize#0 line2_ysize = (byte) $f +(label) main::plot1 +(byte*~) main::plot1_$0 +(byte) main::plot1_ch +(byte) main::plot1_xpos +(byte) main::plot1_xpos#0 reg byte a 22.0 +(label) main::plot2 +(byte*~) main::plot2_$0 +(byte) main::plot2_ch +(byte) main::plot2_xpos +(byte) main::plot2_xpos#0 reg byte a 22.0 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) main::sc#2 sc zp ZP_WORD:2 16.5 + +zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] +zp ZP_WORD:4 [ main::line1_pos#2 main::line1_pos#1 ] +zp ZP_WORD:6 [ cur_line#13 cur_line#1 ] +reg byte x [ main::line1_i#2 main::line1_i#1 ] +zp ZP_WORD:8 [ main::line2_pos#2 main::line2_pos#1 ] +zp ZP_WORD:10 [ cur_line#10 cur_line#11 ] +reg byte x [ main::line2_i#2 main::line2_i#1 ] +reg byte a [ main::plot1_xpos#0 ] +reg byte a [ main::plot2_xpos#0 ] diff --git a/src/test/ref/inline-function-min.sym b/src/test/ref/inline-function-min.sym index 1daabbadc..b061c25fe 100644 --- a/src/test/ref/inline-function-min.sym +++ b/src/test/ref/inline-function-min.sym @@ -1 +1,35 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(label) main::sum1 +(byte~) main::sum1_$0 +(byte) main::sum1_a +(const byte) main::sum1_a#0 sum1_a = (byte) 2 +(byte) main::sum1_b +(const byte) main::sum1_b#0 sum1_b = (byte) 1 +(byte) main::sum1_return +(const byte) main::sum1_return#0 sum1_return = (const byte) main::sum1_a#0+(const byte) main::sum1_b#0 +(label) main::sum2 +(byte~) main::sum2_$0 +(byte) main::sum2_a +(const byte) main::sum2_a#0 sum2_a = (byte) $a +(byte) main::sum2_b +(const byte) main::sum2_b#0 sum2_b = (byte) 3 +(byte) main::sum2_return +(const byte) main::sum2_return#0 sum2_return = (const byte) main::sum2_a#0+(const byte) main::sum2_b#0 +(label) main::sum3 +(byte~) main::sum3_$0 +(byte) main::sum3_a +(const byte) main::sum3_a#0 sum3_a = (byte) 4 +(byte) main::sum3_b +(const byte) main::sum3_b#0 sum3_b = (byte) 8 +(byte) main::sum3_return +(const byte) main::sum3_return#0 sum3_return = (const byte) main::sum3_a#0+(const byte) main::sum3_b#0 +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/inline-function-print.sym b/src/test/ref/inline-function-print.sym index 1daabbadc..d27c81ce9 100644 --- a/src/test/ref/inline-function-print.sym +++ b/src/test/ref/inline-function-print.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::hello +(const byte*) main::hello#0 hello = (string) "hello world!@" +(label) main::print1 +(bool~) main::print1_$0 +(label) main::print1_@1 +(byte*) main::print1_at +(byte) main::print1_i +(byte) main::print1_i#1 reg byte y 16.5 +(byte) main::print1_i#2 reg byte y 11.0 +(byte) main::print1_j +(byte) main::print1_j#1 reg byte x 7.333333333333333 +(byte) main::print1_j#2 reg byte x 16.5 +(byte*) main::print1_msg +(label) main::print2 +(bool~) main::print2_$0 +(label) main::print2_@1 +(byte*) main::print2_at +(const byte*) main::print2_at#0 print2_at = (const byte*) screen#0+(byte)(number) 2*(number) $28 +(byte) main::print2_i +(byte) main::print2_i#1 reg byte y 16.5 +(byte) main::print2_i#2 reg byte y 11.0 +(byte) main::print2_j +(byte) main::print2_j#1 reg byte x 7.333333333333333 +(byte) main::print2_j#2 reg byte x 16.5 +(byte*) main::print2_msg +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + +reg byte y [ main::print1_i#2 main::print1_i#1 ] +reg byte x [ main::print1_j#2 main::print1_j#1 ] +reg byte y [ main::print2_i#2 main::print2_i#1 ] +reg byte x [ main::print2_j#2 main::print2_j#1 ] diff --git a/src/test/ref/inline-function.sym b/src/test/ref/inline-function.sym index 1daabbadc..769e5ea82 100644 --- a/src/test/ref/inline-function.sym +++ b/src/test/ref/inline-function.sym @@ -1 +1,43 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) charset1 +(const byte*) charset1#0 charset1 = (byte*) 4096 +(byte*) charset2 +(const byte*) charset2#0 charset2 = (byte*) 6144 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(word~) main::toD0181_$2 +(number~) main::toD0181_$3 +(number~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(byte*) main::toD0181_charset +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = (byte)(word)(const byte*) screen#0/(byte) $40|(word)(const byte*) charset1#0/(word) $400 +(byte*) main::toD0181_screen +(label) main::toD0182 +(word~) main::toD0182_$0 +(number~) main::toD0182_$1 +(word~) main::toD0182_$2 +(number~) main::toD0182_$3 +(number~) main::toD0182_$4 +(byte~) main::toD0182_$5 +(byte*) main::toD0182_charset +(byte) main::toD0182_return +(const byte) main::toD0182_return#0 toD0182_return = (byte)(word)(const byte*) screen#0/(byte) $40|(word)(const byte*) charset2#0/(word) $400 +(byte*) main::toD0182_screen +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/inline-kasm-clobber.sym b/src/test/ref/inline-kasm-clobber.sym index 1daabbadc..ca2ed830f 100644 --- a/src/test/ref/inline-kasm-clobber.sym +++ b/src/test/ref/inline-kasm-clobber.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte) main::k +(byte) main::k#1 k zp ZP_BYTE:2 16.5 +(byte) main::k#6 k zp ZP_BYTE:2 2.75 +(byte) main::l +(byte) main::l#1 l zp ZP_BYTE:3 151.5 +(byte) main::l#4 l zp ZP_BYTE:3 40.4 +(byte) main::m +(byte) main::m#1 reg byte y 1501.5 +(byte) main::m#2 reg byte y 1001.0 + +zp ZP_BYTE:2 [ main::k#6 main::k#1 ] +zp ZP_BYTE:3 [ main::l#4 main::l#1 ] +reg byte y [ main::m#2 main::m#1 ] diff --git a/src/test/ref/inline-kasm-data.sym b/src/test/ref/inline-kasm-data.sym index 1daabbadc..919b64b4c 100644 --- a/src/test/ref/inline-kasm-data.sym +++ b/src/test/ref/inline-kasm-data.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::cols +(byte*) main::cols#1 cols zp ZP_WORD:4 7.333333333333333 +(byte*) main::cols#2 cols zp ZP_WORD:4 6.6000000000000005 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 5.5 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 4.4 +(byte*) main::screen#2 screen zp ZP_WORD:2 11.0 +(byte) main::sin +(byte) main::sin#0 reg byte y 11.0 +(byte*) sintab +(const byte*) sintab#0 sintab = (byte*) 4096 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::screen#2 main::screen#1 ] +zp ZP_WORD:4 [ main::cols#2 main::cols#1 ] +reg byte y [ main::sin#0 ] diff --git a/src/test/ref/inline-kasm-loop.sym b/src/test/ref/inline-kasm-loop.sym index 1daabbadc..7a8b5d97b 100644 --- a/src/test/ref/inline-kasm-loop.sym +++ b/src/test/ref/inline-kasm-loop.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 + diff --git a/src/test/ref/inline-kasm-refout.sym b/src/test/ref/inline-kasm-refout.sym index 1daabbadc..f3e81b2f7 100644 --- a/src/test/ref/inline-kasm-refout.sym +++ b/src/test/ref/inline-kasm-refout.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) table +(const byte[]) table#0 table = (string) "cml!" + diff --git a/src/test/ref/inline-kasm-resource.sym b/src/test/ref/inline-kasm-resource.sym index 1daabbadc..ab3695dd9 100644 --- a/src/test/ref/inline-kasm-resource.sym +++ b/src/test/ref/inline-kasm-resource.sym @@ -1 +1,16 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = (byte*) 3072 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/inline-pointer-0.sym b/src/test/ref/inline-pointer-0.sym index 1daabbadc..17388427b 100644 --- a/src/test/ref/inline-pointer-0.sym +++ b/src/test/ref/inline-pointer-0.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*)(byte) 4*(word) $100 + diff --git a/src/test/ref/inline-pointer-1.sym b/src/test/ref/inline-pointer-1.sym index 1daabbadc..1ec6ac31c 100644 --- a/src/test/ref/inline-pointer-1.sym +++ b/src/test/ref/inline-pointer-1.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(void()) puta((byte) puta::ph , (byte) puta::pl) +(label) puta::@return +(byte) puta::ph +(byte) puta::ph#2 reg byte a 2.0 +(byte) puta::pl +(byte) puta::pl#2 reg byte x 2.0 +(byte*) puta::screen +(word) puta::screen#0 screen zp ZP_WORD:2 2.0 + +reg byte a [ puta::ph#2 ] +reg byte x [ puta::pl#2 ] +zp ZP_WORD:2 [ puta::screen#0 ] diff --git a/src/test/ref/inline-pointer-2.sym b/src/test/ref/inline-pointer-2.sym index 1daabbadc..8f0e8a29e 100644 --- a/src/test/ref/inline-pointer-2.sym +++ b/src/test/ref/inline-pointer-2.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*)(byte) 4*(word) $100+(byte) $28 + diff --git a/src/test/ref/inline-string-2.sym b/src/test/ref/inline-string-2.sym index 1daabbadc..30442c22b 100644 --- a/src/test/ref/inline-string-2.sym +++ b/src/test/ref/inline-string-2.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(void()) print((byte*) print::msg) +(label) print::@1 +(label) print::@2 +(label) print::@return +(byte*) print::msg +(byte*) print::msg#0 msg zp ZP_WORD:4 2.0 +(byte*) print::msg#1 msg zp ZP_WORD:4 22.0 +(byte*) print::msg#2 msg zp ZP_WORD:4 11.5 +(void()) print_msg((byte) print_msg::idx) +(label) print_msg::@1 +(label) print_msg::@2 +(label) print_msg::@return +(byte) print_msg::idx +(byte) print_msg::idx#2 reg byte x 2.0 +(byte*) print_msg::msg +(const byte*) print_msg::msg#1 msg#1 = (string) "Hello @" +(const byte*) print_msg::msg#2 msg#2 = (string) "World!@" +(byte*) print_msg::msg#3 msg zp ZP_WORD:4 2.0 +(byte*) screen +(byte*) screen#14 screen zp ZP_WORD:2 4.625 +(byte*) screen#18 screen zp ZP_WORD:2 0.6666666666666666 +(byte*) screen#6 screen zp ZP_WORD:2 11.0 + +reg byte x [ print_msg::idx#2 ] +zp ZP_WORD:2 [ screen#18 screen#14 screen#6 ] +zp ZP_WORD:4 [ print_msg::msg#3 print::msg#2 print::msg#0 print::msg#1 ] diff --git a/src/test/ref/inline-string-3.sym b/src/test/ref/inline-string-3.sym index 1daabbadc..7b7900719 100644 --- a/src/test/ref/inline-string-3.sym +++ b/src/test/ref/inline-string-3.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::PTR +(const byte*) main::PTR#0 PTR = (byte*) 40958 +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) main::STRING +(const byte[]) main::STRING#0 STRING = (string) "camelot" +(byte*) main::ptr +(word) main::ptr#0 ptr zp ZP_WORD:2 2.0 + +zp ZP_WORD:2 [ main::ptr#0 ] diff --git a/src/test/ref/inline-string.sym b/src/test/ref/inline-string.sym index 1daabbadc..8b97e96f1 100644 --- a/src/test/ref/inline-string.sym +++ b/src/test/ref/inline-string.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(const string) main::msg msg = (string) "message 3 @" +(byte[]) main::msg2 +(const byte[]) main::msg2#0 msg2 = (string) "message 2 @" +(byte[]) msg1 +(const byte[]) msg1#0 msg1 = (string) "message 1 @" +(void()) print((byte*) print::msg) +(label) print::@1 +(label) print::@2 +(label) print::@return +(byte*) print::msg +(byte*) print::msg#3 msg zp ZP_WORD:4 22.0 +(byte*) print::msg#4 msg zp ZP_WORD:4 11.5 +(byte*) print::msg#6 msg zp ZP_WORD:4 2.0 +(byte*) screen +(byte*) screen#12 screen zp ZP_WORD:2 4.875 +(byte*) screen#18 screen zp ZP_WORD:2 6.0 +(byte*) screen#5 screen zp ZP_WORD:2 11.0 + +zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] +zp ZP_WORD:4 [ print::msg#4 print::msg#6 print::msg#3 ] diff --git a/src/test/ref/inline-word-0.sym b/src/test/ref/inline-word-0.sym index 1daabbadc..9ebe3074b 100644 --- a/src/test/ref/inline-word-0.sym +++ b/src/test/ref/inline-word-0.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(word*) main::screen +(const word*) main::screen#0 screen = (word*) 1024 +(word) main::w +(const word) main::w#0 w = (byte) 2*(word) $100+(byte) 1 + diff --git a/src/test/ref/inline-word-1.sym b/src/test/ref/inline-word-1.sym index 1daabbadc..29a74e377 100644 --- a/src/test/ref/inline-word-1.sym +++ b/src/test/ref/inline-word-1.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(word*) main::screen +(const word*) main::screen#0 screen = (word*) 1024 +(word) main::w +(const word) main::w#0 w = (byte) 1*(word) $100+(byte) 2 + diff --git a/src/test/ref/inline-word-2.sym b/src/test/ref/inline-word-2.sym index 1daabbadc..29a74e377 100644 --- a/src/test/ref/inline-word-2.sym +++ b/src/test/ref/inline-word-2.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(word*) main::screen +(const word*) main::screen#0 screen = (word*) 1024 +(word) main::w +(const word) main::w#0 w = (byte) 1*(word) $100+(byte) 2 + diff --git a/src/test/ref/inline-word.sym b/src/test/ref/inline-word.sym index 1daabbadc..b02cd6cc1 100644 --- a/src/test/ref/inline-word.sym +++ b/src/test/ref/inline-word.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::h +(byte) main::h#1 h zp ZP_BYTE:2 16.5 +(byte) main::h#4 h zp ZP_BYTE:2 20.499999999999996 +(byte[]) main::his +(const byte[]) main::his#0 his = { >(const byte*) SCREEN#0, >(const byte*) SCREEN#0+(word) $100, >(const byte*) SCREEN#0+(word) $200 } +(byte) main::l +(byte) main::l#1 reg byte x 151.5 +(byte) main::l#2 reg byte x 101.0 +(byte*) main::sc +(word) main::w +(word) main::w#0 w zp ZP_WORD:3 101.0 + +zp ZP_BYTE:2 [ main::h#4 main::h#1 ] +reg byte x [ main::l#2 main::l#1 ] +zp ZP_WORD:3 [ main::w#0 ] diff --git a/src/test/ref/inlinearrayproblem.sym b/src/test/ref/inlinearrayproblem.sym index 1daabbadc..d8b780d20 100644 --- a/src/test/ref/inlinearrayproblem.sym +++ b/src/test/ref/inlinearrayproblem.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SCREEN2 +(const byte*) SCREEN2#0 SCREEN2 = (byte*)(number) $400+(number) $28 +(void()) main() +(label) main::@1 +(label) main::@return +(byte[]) main::data +(const byte[]) main::data#0 data = { (byte) 1, (byte) 2, (byte) 3 } +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte[]) main::txt +(const byte[]) main::txt#0 txt = (string) "qwe" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inmem-const-array.sym b/src/test/ref/inmem-const-array.sym index 1daabbadc..9b1dcf907 100644 --- a/src/test/ref/inmem-const-array.sym +++ b/src/test/ref/inmem-const-array.sym @@ -1 +1,30 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::cols +(const byte*) main::cols#0 cols = (byte*) 55296 +(byte[]) main::colseq +(const byte[]) main::colseq#0 colseq = { (const byte) WHITE#0, (const byte) RED#0, (const byte) GREEN#0 } +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 6.285714285714286 +(byte) main::j +(byte) main::j#1 reg byte y 11.0 +(byte) main::j#3 reg byte y 11.0 +(byte) main::j#4 reg byte y 7.333333333333333 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::j#3 main::j#4 main::j#1 ] diff --git a/src/test/ref/inmemarray.sym b/src/test/ref/inmemarray.sym index 1daabbadc..7b5e5a1ce 100644 --- a/src/test/ref/inmemarray.sym +++ b/src/test/ref/inmemarray.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) TXT +(const byte[]) TXT#0 TXT = { (byte) 3, (byte) 1, (byte) $d, (byte) 5, (byte) $c, (byte) $f, (byte) $14, (byte) $20 } +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 5.5 +(byte) main::j +(byte) main::j#1 reg byte y 11.0 +(byte) main::j#3 reg byte y 16.5 +(byte) main::j#4 reg byte y 7.333333333333333 + +reg byte y [ main::j#3 main::j#4 main::j#1 ] +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inmemstring.sym b/src/test/ref/inmemstring.sym index 1daabbadc..dea0c2806 100644 --- a/src/test/ref/inmemstring.sym +++ b/src/test/ref/inmemstring.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) TEXT +(const byte[]) TEXT#0 TEXT = (string) "camelot " +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::cursor +(byte*) main::cursor#1 cursor zp ZP_WORD:2 16.5 +(byte*) main::cursor#2 cursor zp ZP_WORD:2 5.5 +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#3 reg byte x 16.5 +(byte) main::i#4 reg byte x 7.333333333333333 + +reg byte x [ main::i#3 main::i#4 main::i#1 ] +zp ZP_WORD:2 [ main::cursor#2 main::cursor#1 ] diff --git a/src/test/ref/int-conversion.sym b/src/test/ref/int-conversion.sym index 1daabbadc..ee4ab18d2 100644 --- a/src/test/ref/int-conversion.sym +++ b/src/test/ref/int-conversion.sym @@ -1 +1,90 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*) 55296 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(const byte) TYPEID_BYTE TYPEID_BYTE = (number) 1 +(const byte) TYPEID_DWORD TYPEID_DWORD = (number) 5 +(const byte) TYPEID_SIGNED_BYTE TYPEID_SIGNED_BYTE = (number) 2 +(const byte) TYPEID_SIGNED_DWORD TYPEID_SIGNED_DWORD = (number) 6 +(const byte) TYPEID_SIGNED_WORD TYPEID_SIGNED_WORD = (number) 4 +(const byte) TYPEID_WORD TYPEID_WORD = (number) 3 +(void()) assertType((byte) assertType::t1 , (byte) assertType::t2) +(label) assertType::@1 +(label) assertType::@2 +(label) assertType::@3 +(label) assertType::@return +(byte) assertType::t1 +(byte) assertType::t1#42 reg byte y 1.0 +(byte) assertType::t2 +(byte) assertType::t2#42 t2 zp ZP_BYTE:4 2.0 +(byte) idx +(byte) idx#105 reg byte x 17.200000000000003 +(byte) idx#108 reg byte x 1.0526315789473677 +(byte) idx#19 reg byte x 4.0 +(byte) idx#26 reg byte x 4.0 +(byte) idx#40 reg byte x 4.0 +(byte) idx#47 reg byte x 4.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::s +(byte*) main::s#1 s zp ZP_WORD:2 16.5 +(byte*) main::s#2 s zp ZP_WORD:2 16.5 +(void()) testBinaryOperator() +(label) testBinaryOperator::@1 +(label) testBinaryOperator::@10 +(label) testBinaryOperator::@11 +(label) testBinaryOperator::@12 +(label) testBinaryOperator::@13 +(label) testBinaryOperator::@14 +(label) testBinaryOperator::@15 +(label) testBinaryOperator::@16 +(label) testBinaryOperator::@17 +(label) testBinaryOperator::@18 +(label) testBinaryOperator::@19 +(label) testBinaryOperator::@2 +(label) testBinaryOperator::@20 +(label) testBinaryOperator::@21 +(label) testBinaryOperator::@22 +(label) testBinaryOperator::@23 +(label) testBinaryOperator::@24 +(label) testBinaryOperator::@25 +(label) testBinaryOperator::@26 +(label) testBinaryOperator::@27 +(label) testBinaryOperator::@28 +(label) testBinaryOperator::@29 +(label) testBinaryOperator::@3 +(label) testBinaryOperator::@30 +(label) testBinaryOperator::@31 +(label) testBinaryOperator::@32 +(label) testBinaryOperator::@33 +(label) testBinaryOperator::@34 +(label) testBinaryOperator::@35 +(label) testBinaryOperator::@4 +(label) testBinaryOperator::@5 +(label) testBinaryOperator::@6 +(label) testBinaryOperator::@7 +(label) testBinaryOperator::@8 +(label) testBinaryOperator::@9 +(label) testBinaryOperator::@return +(void()) testUnaryOperator() +(label) testUnaryOperator::@1 +(label) testUnaryOperator::@2 +(label) testUnaryOperator::@3 +(label) testUnaryOperator::@4 +(label) testUnaryOperator::@5 +(label) testUnaryOperator::@return + +zp ZP_WORD:2 [ main::s#2 main::s#1 ] +reg byte y [ assertType::t1#42 ] +zp ZP_BYTE:4 [ assertType::t2#42 ] +reg byte x [ idx#105 idx#108 idx#26 idx#40 idx#47 idx#19 ] diff --git a/src/test/ref/int-literals.sym b/src/test/ref/int-literals.sym index 1daabbadc..b3c6e97a8 100644 --- a/src/test/ref/int-literals.sym +++ b/src/test/ref/int-literals.sym @@ -1 +1,57 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*)(word) $d800 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*)(word) $400 +(const byte) TYPEID_BYTE TYPEID_BYTE = (number) 1 +(const byte) TYPEID_DWORD TYPEID_DWORD = (number) 5 +(const byte) TYPEID_SIGNED_BYTE TYPEID_SIGNED_BYTE = (number) 2 +(const byte) TYPEID_SIGNED_DWORD TYPEID_SIGNED_DWORD = (number) 6 +(const byte) TYPEID_SIGNED_WORD TYPEID_SIGNED_WORD = (number) 4 +(const byte) TYPEID_WORD TYPEID_WORD = (number) 3 +(void()) assertType((byte) assertType::t1 , (byte) assertType::t2) +(label) assertType::@1 +(label) assertType::@2 +(label) assertType::@3 +(label) assertType::@return +(byte) assertType::t1 +(byte) assertType::t1#15 reg byte y 1.0 +(byte) assertType::t2 +(byte) assertType::t2#15 t2 zp ZP_BYTE:4 2.0 +(byte) idx +(byte) idx#20 reg byte x 0.9999999999999999 +(byte) idx#41 reg byte x 7.200000000000002 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::s +(byte*) main::s#1 s zp ZP_WORD:2 16.5 +(byte*) main::s#2 s zp ZP_WORD:2 16.5 +(void()) testSimpleTypes() +(label) testSimpleTypes::@1 +(label) testSimpleTypes::@10 +(label) testSimpleTypes::@11 +(label) testSimpleTypes::@12 +(label) testSimpleTypes::@13 +(label) testSimpleTypes::@14 +(label) testSimpleTypes::@2 +(label) testSimpleTypes::@3 +(label) testSimpleTypes::@4 +(label) testSimpleTypes::@5 +(label) testSimpleTypes::@6 +(label) testSimpleTypes::@7 +(label) testSimpleTypes::@8 +(label) testSimpleTypes::@9 +(label) testSimpleTypes::@return + +zp ZP_WORD:2 [ main::s#2 main::s#1 ] +reg byte y [ assertType::t1#15 ] +zp ZP_BYTE:4 [ assertType::t2#15 ] +reg byte x [ idx#41 idx#20 ] diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.sym b/src/test/ref/interrupt-volatile-reuse-problem1.sym index 1daabbadc..cc9092eff 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem1.sym +++ b/src/test/ref/interrupt-volatile-reuse-problem1.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) col1 +(byte) col1#0 col1 zp ZP_BYTE:2 6.0 +(byte) col1#1 col1 zp ZP_BYTE:2 20.0 +(byte) col2 +(byte) col2#0 col2 zp ZP_BYTE:3 2.0 +(byte) col2#1 col2 zp ZP_BYTE:3 20.0 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@return + +zp ZP_BYTE:2 [ col1#0 col1#1 ] +zp ZP_BYTE:3 [ col2#0 col2#1 ] diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.sym b/src/test/ref/interrupt-volatile-reuse-problem2.sym index 1daabbadc..0af3dca3c 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem2.sym +++ b/src/test/ref/interrupt-volatile-reuse-problem2.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) col1 +(byte) col1#0 col1 zp ZP_BYTE:3 2.0 +(byte) col1#1 col1 zp ZP_BYTE:3 20.0 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@return +(void()) main() +(byte~) main::$1 reg byte a 20002.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(byte) main::a +(byte) main::a#1 reg byte y 15001.5 +(byte) main::a#2 reg byte y 10001.0 +(byte) main::x +(byte) main::x#1 reg byte x 71.0 +(byte) main::x#6 reg byte x 1123.6666666666665 +(byte) main::y +(byte) main::y#1 y zp ZP_BYTE:2 1501.5 +(byte) main::y#4 y zp ZP_BYTE:2 2000.4999999999998 + +reg byte x [ main::x#6 main::x#1 ] +zp ZP_BYTE:2 [ main::y#4 main::y#1 ] +reg byte y [ main::a#2 main::a#1 ] +zp ZP_BYTE:3 [ col1#0 col1#1 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/irq-hardware-clobber-jsr.sym b/src/test/ref/irq-hardware-clobber-jsr.sym index 1daabbadc..995977d5c 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.sym +++ b/src/test/ref/irq-hardware-clobber-jsr.sym @@ -1 +1,42 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(void()**) HARDWARE_IRQ +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = (void()**) 65534 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(void()) do_irq() +(label) do_irq::@return +interrupt(HARDWARE_CLOBBER)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@1 + diff --git a/src/test/ref/irq-hardware-clobber.sym b/src/test/ref/irq-hardware-clobber.sym index 1daabbadc..34dca14eb 100644 --- a/src/test/ref/irq-hardware-clobber.sym +++ b/src/test/ref/irq-hardware-clobber.sym @@ -1 +1,40 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) FGCOL +(const byte*) FGCOL#0 FGCOL = (byte*) 53281 +(void()**) HARDWARE_IRQ +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = (void()**) 65534 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +interrupt(HARDWARE_CLOBBER)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@1 + diff --git a/src/test/ref/irq-hardware.sym b/src/test/ref/irq-hardware.sym index 1daabbadc..4acdfa48f 100644 --- a/src/test/ref/irq-hardware.sym +++ b/src/test/ref/irq-hardware.sym @@ -1 +1,40 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) FGCOL +(const byte*) FGCOL#0 FGCOL = (byte*) 53281 +(void()**) HARDWARE_IRQ +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = (void()**) 65534 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +interrupt(HARDWARE_ALL)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@1 + diff --git a/src/test/ref/irq-idx-problem.sym b/src/test/ref/irq-idx-problem.sym index 1daabbadc..7292f3b95 100644 --- a/src/test/ref/irq-idx-problem.sym +++ b/src/test/ref/irq-idx-problem.sym @@ -1 +1,55 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte[]) IRQ_CHANGE_IDX +(const byte[]) IRQ_CHANGE_IDX#0 IRQ_CHANGE_IDX = { (byte) $20, (byte) $21, (const byte) IRQ_CHANGE_NEXT#0, (byte) $20, (byte) $21, (const byte) IRQ_CHANGE_NEXT#0, (byte) $20, (byte) $21, (const byte) IRQ_CHANGE_NEXT#0, (byte) $20, (byte) $21, (const byte) IRQ_CHANGE_NEXT#0 } +(byte) IRQ_CHANGE_NEXT +(const byte) IRQ_CHANGE_NEXT#0 IRQ_CHANGE_NEXT = (byte) $7f +(byte[]) IRQ_CHANGE_VAL +(const byte[]) IRQ_CHANGE_VAL#0 IRQ_CHANGE_VAL = { (byte) $b, (byte) $b, (byte) $63, (byte) 0, (byte) 0, (byte) $80, (byte) 7, (byte) 7, (byte) $83, (byte) 0, (byte) 0, (byte) $60 } +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) VIC_BASE +(const byte*) VIC_BASE#0 VIC_BASE = (byte*) 53248 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) VIC_SIZE +(const byte) VIC_SIZE#0 VIC_SIZE = (byte) $30 +(byte) irq_idx +(byte) irq_idx#0 irq_idx zp ZP_BYTE:2 4.0 +(byte) irq_idx#1 irq_idx zp ZP_BYTE:2 6.6000000000000005 +(byte) irq_idx#2 irq_idx zp ZP_BYTE:2 20.0 +(byte) irq_idx#4 irq_idx zp ZP_BYTE:2 19.0 +(void()) main() +(label) main::@return +interrupt(KERNEL_MIN)(void()) table_driven_irq() +(label) table_driven_irq::@1 +(label) table_driven_irq::@2 +(label) table_driven_irq::@3 +(label) table_driven_irq::@4 +(label) table_driven_irq::@5 +(label) table_driven_irq::@6 +(label) table_driven_irq::@return +(byte) table_driven_irq::idx +(byte) table_driven_irq::idx#0 reg byte a 11.0 +(byte) table_driven_irq::val +(byte) table_driven_irq::val#0 reg byte x 6.166666666666666 + +zp ZP_BYTE:2 [ irq_idx#4 irq_idx#0 irq_idx#1 irq_idx#2 ] +reg byte a [ table_driven_irq::idx#0 ] +reg byte x [ table_driven_irq::val#0 ] diff --git a/src/test/ref/irq-kernel-minimal.sym b/src/test/ref/irq-kernel-minimal.sym index 1daabbadc..7d936b35c 100644 --- a/src/test/ref/irq-kernel-minimal.sym +++ b/src/test/ref/irq-kernel-minimal.sym @@ -1 +1,16 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +interrupt(KERNEL_KEYBOARD)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@return + diff --git a/src/test/ref/irq-kernel.sym b/src/test/ref/irq-kernel.sym index 1daabbadc..81144256f 100644 --- a/src/test/ref/irq-kernel.sym +++ b/src/test/ref/irq-kernel.sym @@ -1 +1,30 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +interrupt(KERNEL_KEYBOARD)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@return + diff --git a/src/test/ref/irq-local-var-overlap-problem.sym b/src/test/ref/irq-local-var-overlap-problem.sym index 1daabbadc..a9facfd9a 100644 --- a/src/test/ref/irq-local-var-overlap-problem.sym +++ b/src/test/ref/irq-local-var-overlap-problem.sym @@ -1 +1,119 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) FGCOL +(const byte*) FGCOL#0 FGCOL = (byte*) 53281 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +interrupt(KERNEL_MIN)(void()) irq() +(byte~) irq::$0 reg byte a 2002.0 +(byte~) irq::$1 reg byte a 2002.0 +(label) irq::@1 +(label) irq::@2 +(label) irq::@3 +(label) irq::@4 +(label) irq::@5 +(label) irq::@6 +(label) irq::@7 +(label) irq::@return +(byte) irq::i +(byte) irq::i#1 i zp ZP_BYTE:6 16.5 +(byte) irq::i#7 i zp ZP_BYTE:6 93.0 +(byte) irq::j +(byte) irq::j#1 j zp ZP_BYTE:7 151.5 +(byte) irq::j#4 j zp ZP_BYTE:7 150.375 +(byte) irq::k +(byte) irq::k#1 k zp ZP_BYTE:8 1501.5 +(byte) irq::k#2 k zp ZP_BYTE:8 600.5999999999999 +(void()) main() +(byte~) main::$1 reg byte a 20002.0 +(byte~) main::$2 reg byte a 20002.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 71.0 +(byte) main::i#7 i zp ZP_BYTE:2 919.3636363636363 +(byte) main::j +(byte) main::j#1 j zp ZP_BYTE:3 1501.5 +(byte) main::j#5 j zp ZP_BYTE:3 1500.375 +(byte) main::k +(byte) main::k#1 k zp ZP_BYTE:4 15001.5 +(byte) main::k#2 k zp ZP_BYTE:4 6000.6 +(void()) sub_irq() +(byte~) sub_irq::$0 reg byte a 2000002.0 +(byte~) sub_irq::$1 reg byte a 2000002.0 +(label) sub_irq::@1 +(label) sub_irq::@2 +(label) sub_irq::@3 +(label) sub_irq::@4 +(label) sub_irq::@5 +(label) sub_irq::@return +(byte) sub_irq::i +(byte) sub_irq::i#1 i zp ZP_BYTE:9 15001.5 +(byte) sub_irq::i#6 i zp ZP_BYTE:9 102000.30000000002 +(byte) sub_irq::j +(byte) sub_irq::j#1 reg byte x 150001.5 +(byte) sub_irq::j#4 reg byte x 171428.99999999997 +(byte) sub_irq::k +(byte) sub_irq::k#1 reg byte y 1500001.5 +(byte) sub_irq::k#2 reg byte y 750000.75 +(void()) sub_main() +(byte~) sub_main::$0 reg byte a 2.0000002E7 +(byte~) sub_main::$1 reg byte a 2.0000002E7 +(label) sub_main::@1 +(label) sub_main::@2 +(label) sub_main::@3 +(label) sub_main::@4 +(label) sub_main::@5 +(label) sub_main::@return +(byte) sub_main::i +(byte) sub_main::i#1 i zp ZP_BYTE:5 150001.5 +(byte) sub_main::i#6 i zp ZP_BYTE:5 1020000.2999999999 +(byte) sub_main::j +(byte) sub_main::j#1 reg byte x 1500001.5 +(byte) sub_main::j#4 reg byte x 1714286.1428571427 +(byte) sub_main::k +(byte) sub_main::k#1 reg byte y 1.50000015E7 +(byte) sub_main::k#2 reg byte y 7500000.75 + +zp ZP_BYTE:2 [ main::i#7 main::i#1 ] +zp ZP_BYTE:3 [ main::j#5 main::j#1 ] +zp ZP_BYTE:4 [ main::k#2 main::k#1 ] +zp ZP_BYTE:5 [ sub_main::i#6 sub_main::i#1 ] +reg byte x [ sub_main::j#4 sub_main::j#1 ] +reg byte y [ sub_main::k#2 sub_main::k#1 ] +zp ZP_BYTE:6 [ irq::i#7 irq::i#1 ] +zp ZP_BYTE:7 [ irq::j#4 irq::j#1 ] +zp ZP_BYTE:8 [ irq::k#2 irq::k#1 ] +zp ZP_BYTE:9 [ sub_irq::i#6 sub_irq::i#1 ] +reg byte x [ sub_irq::j#4 sub_irq::j#1 ] +reg byte y [ sub_irq::k#2 sub_irq::k#1 ] +reg byte a [ main::$1 ] +reg byte a [ main::$2 ] +reg byte a [ sub_main::$0 ] +reg byte a [ sub_main::$1 ] +reg byte a [ irq::$0 ] +reg byte a [ irq::$1 ] +reg byte a [ sub_irq::$0 ] +reg byte a [ sub_irq::$1 ] diff --git a/src/test/ref/irq-raster.sym b/src/test/ref/irq-raster.sym index 1daabbadc..bf33042e9 100644 --- a/src/test/ref/irq-raster.sym +++ b/src/test/ref/irq-raster.sym @@ -1 +1,30 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@return + diff --git a/src/test/ref/irq-volatile-bool-problem.sym b/src/test/ref/irq-volatile-bool-problem.sym index 1daabbadc..9c19f6146 100644 --- a/src/test/ref/irq-volatile-bool-problem.sym +++ b/src/test/ref/irq-volatile-bool-problem.sym @@ -1 +1,35 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(bool) framedone +(bool) framedone#0 framedone zp ZP_BOOL:2 110.0 +(bool) framedone#11 framedone zp ZP_BOOL:2 20.0 +(bool) framedone#3 framedone zp ZP_BOOL:2 20.0 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@1 +(label) irq::@2 +(label) irq::@return +(void()) main() +(label) main::@1 +(label) main::@2 + +zp ZP_BOOL:2 [ framedone#0 framedone#3 framedone#11 ] diff --git a/src/test/ref/iterarray.sym b/src/test/ref/iterarray.sym index 1daabbadc..7e7a4fac3 100644 --- a/src/test/ref/iterarray.sym +++ b/src/test/ref/iterarray.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte[$10]) main::buf +(const byte[$10]) main::buf#0 buf = (byte*) 4352 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 14.666666666666666 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/keyboard-glitch.sym b/src/test/ref/keyboard-glitch.sym index 1daabbadc..60313c3e7 100644 --- a/src/test/ref/keyboard-glitch.sym +++ b/src/test/ref/keyboard-glitch.sym @@ -1 +1,92 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) KEY_C +(const byte) KEY_C#0 KEY_C = (byte) $14 +(byte) KEY_E +(const byte) KEY_E#0 KEY_E = (byte) $e +(byte) KEY_I +(const byte) KEY_I#0 KEY_I = (byte) $21 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) +(byte~) keyboard_key_pressed::$2 reg byte a 4.0 +(label) keyboard_key_pressed::@1 +(label) keyboard_key_pressed::@return +(byte) keyboard_key_pressed::colidx +(byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666 +(byte) keyboard_key_pressed::key +(byte) keyboard_key_pressed::key#4 reg byte x 2.0 +(byte) keyboard_key_pressed::return +(byte) keyboard_key_pressed::return#0 reg byte a 67.66666666666667 +(byte) keyboard_key_pressed::return#10 reg byte a 202.0 +(byte) keyboard_key_pressed::return#2 reg byte a 202.0 +(byte) keyboard_key_pressed::return#3 reg byte a 202.0 +(byte) keyboard_key_pressed::return#4 reg byte a 202.0 +(byte) keyboard_key_pressed::rowidx +(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333 +(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte x 4.0 +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(void()) main() +(label) main::@1 +(void()) menu() +(byte~) menu::$0 reg byte a 202.0 +(byte~) menu::$4 reg byte a 202.0 +(byte~) menu::$7 reg byte a 202.0 +(label) menu::@1 +(label) menu::@10 +(label) menu::@2 +(label) menu::@3 +(label) menu::@4 +(label) menu::@5 +(label) menu::@6 +(label) menu::@7 +(label) menu::@8 +(label) menu::@9 +(label) menu::@return +(void()) pressed() +(byte~) pressed::$0 reg byte a 202.0 +(label) pressed::@1 +(label) pressed::@2 +(label) pressed::@return + +reg byte x [ keyboard_key_pressed::key#4 ] +reg byte a [ keyboard_key_pressed::return#2 ] +reg byte a [ menu::$0 ] +reg byte a [ keyboard_key_pressed::return#3 ] +reg byte a [ menu::$4 ] +reg byte a [ keyboard_key_pressed::return#4 ] +reg byte a [ menu::$7 ] +reg byte y [ keyboard_key_pressed::colidx#0 ] +reg byte a [ keyboard_key_pressed::rowidx#0 ] +reg byte x [ keyboard_matrix_read::rowid#0 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_key_pressed::$2 ] +reg byte a [ keyboard_key_pressed::return#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ keyboard_key_pressed::return#10 ] +reg byte a [ pressed::$0 ] diff --git a/src/test/ref/line-anim.sym b/src/test/ref/line-anim.sym index 1daabbadc..b2bfabccf 100644 --- a/src/test/ref/line-anim.sym +++ b/src/test/ref/line-anim.sym @@ -1 +1,336 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BITMAP +(const byte*) BITMAP#0 BITMAP = (byte*) 40960 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576 +(byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578 +(byte*) D011 +(const byte*) D011#0 D011 = (byte*) 53265 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte) DELAY +(const byte) DELAY#0 DELAY = (byte) 8 +(byte*) PROCPORT +(const byte*) PROCPORT#0 PROCPORT = (byte*) 1 +(byte*) PROCPORT_DDR +(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = (byte*) 0 +(byte) PROCPORT_DDR_MEMORY_MASK +(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte) 7 +(byte) PROCPORT_RAM_IO +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte) $35 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 34816 +(byte) SIZE +(const byte) SIZE#0 SIZE = (byte) 4 +(byte) VIC_BMM +(const byte) VIC_BMM#0 VIC_BMM = (byte) $20 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(void()) bitmap_clear() +(label) bitmap_clear::@1 +(label) bitmap_clear::@2 +(label) bitmap_clear::@3 +(label) bitmap_clear::@return +(byte*) bitmap_clear::bitmap +(word) bitmap_clear::bitmap#0 bitmap zp ZP_WORD:19 2.0 +(byte*) bitmap_clear::bitmap#1 bitmap zp ZP_WORD:19 42.599999999999994 +(byte*) bitmap_clear::bitmap#2 bitmap zp ZP_WORD:19 157.0 +(byte*) bitmap_clear::bitmap#3 bitmap zp ZP_WORD:19 24.0 +(byte*~) bitmap_clear::bitmap#5 bitmap zp ZP_WORD:19 4.0 +(byte) bitmap_clear::x +(byte) bitmap_clear::x#1 reg byte x 151.5 +(byte) bitmap_clear::x#2 reg byte x 67.33333333333333 +(byte) bitmap_clear::y +(byte) bitmap_clear::y#1 y zp ZP_BYTE:18 16.5 +(byte) bitmap_clear::y#4 y zp ZP_BYTE:18 3.6666666666666665 +(void()) bitmap_init((byte*) bitmap_init::bitmap) +(byte~) bitmap_init::$4 reg byte a 22.0 +(byte~) bitmap_init::$5 reg byte a 22.0 +(byte~) bitmap_init::$6 reg byte a 22.0 +(byte~) bitmap_init::$7 $7 zp ZP_BYTE:35 5.5 +(label) bitmap_init::@1 +(label) bitmap_init::@2 +(label) bitmap_init::@3 +(label) bitmap_init::@4 +(label) bitmap_init::@5 +(label) bitmap_init::@6 +(label) bitmap_init::@return +(byte*) bitmap_init::bitmap +(byte) bitmap_init::bits +(byte) bitmap_init::bits#1 reg byte a 11.0 +(byte) bitmap_init::bits#3 reg byte a 16.5 +(byte) bitmap_init::bits#4 reg byte a 7.333333333333333 +(byte) bitmap_init::x +(byte) bitmap_init::x#1 reg byte x 16.5 +(byte) bitmap_init::x#2 reg byte x 5.5 +(byte) bitmap_init::y +(byte) bitmap_init::y#1 reg byte x 16.5 +(byte) bitmap_init::y#2 reg byte x 5.5 +(byte*) bitmap_init::yoffs +(byte*) bitmap_init::yoffs#1 yoffs zp ZP_WORD:21 22.0 +(byte*) bitmap_init::yoffs#2 yoffs zp ZP_WORD:21 6.875 +(byte*) bitmap_init::yoffs#4 yoffs zp ZP_WORD:21 11.0 +(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y) +(word~) bitmap_plot::$1 $1 zp ZP_WORD:27 4.0 +(byte~) bitmap_plot::$2 reg byte a 4.0 +(label) bitmap_plot::@return +(byte*) bitmap_plot::plotter +(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:25 1.0 +(byte*) bitmap_plot::plotter#1 plotter zp ZP_WORD:25 3.0 +(word) bitmap_plot::x +(word) bitmap_plot::x#0 x zp ZP_WORD:23 3.0 +(byte) bitmap_plot::y +(byte) bitmap_plot::y#0 reg byte x 15.0 +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } +(byte[SIZE#0]) delay +(const byte[SIZE#0]) delay#0 delay = { fill( SIZE#0, 0) } +(signed word()) divr16s((signed word) divr16s::dividend , (signed word) divr16s::divisor , (signed word) divr16s::rem) +(label) divr16s::@1 +(label) divr16s::@10 +(label) divr16s::@2 +(label) divr16s::@3 +(label) divr16s::@4 +(label) divr16s::@5 +(label) divr16s::@6 +(label) divr16s::@7 +(label) divr16s::@8 +(label) divr16s::@9 +(label) divr16s::@return +(signed word) divr16s::dividend +(word) divr16s::dividendu +(signed word) divr16s::divisor +(signed word) divr16s::divisor#0 divisor zp ZP_WORD:9 0.6666666666666666 +(word) divr16s::divisoru +(signed word) divr16s::divisoru#1 divisoru zp ZP_WORD:9 1.0 +(word) divr16s::divisoru#3 divisoru zp ZP_WORD:9 6.0 +(word~) divr16s::divisoru#4 divisoru zp ZP_WORD:9 4.0 +(word~) divr16s::divisoru#5 divisoru zp ZP_WORD:9 4.0 +(byte) divr16s::neg +(byte) divr16s::neg#2 reg byte y 2.0 +(byte) divr16s::neg#3 reg byte y 1.0 +(byte) divr16s::neg#4 reg byte y 1.0 +(signed word) divr16s::rem +(signed word) divr16s::rem#0 rem zp ZP_WORD:7 2.0 +(word) divr16s::remu +(signed word) divr16s::remu#1 remu zp ZP_WORD:7 2.0 +(word) divr16s::remu#3 remu zp ZP_WORD:7 0.75 +(word~) divr16s::remu#7 remu zp ZP_WORD:7 4.0 +(word~) divr16s::remu#8 remu zp ZP_WORD:7 4.0 +(word) divr16s::resultu +(word) divr16s::resultu#0 resultu zp ZP_WORD:11 1.0 +(signed word) divr16s::return +(signed word) divr16s::return#1 return zp ZP_WORD:11 4.0 +(signed word) divr16s::return#2 return zp ZP_WORD:11 2.0 +(signed word) divr16s::return#3 return zp ZP_WORD:11 4.0 +(signed word~) divr16s::return#7 return zp ZP_WORD:11 4.0 +(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 +(label) divr16u::@1 +(label) divr16u::@2 +(label) divr16u::@3 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:13 25.25 +(word) divr16u::dividend#2 dividend zp ZP_WORD:13 43.285714285714285 +(word) divr16u::divisor +(word) divr16u::divisor#0 divisor zp ZP_WORD:9 11.333333333333332 +(byte) divr16u::i +(byte) divr16u::i#1 reg byte x 151.5 +(byte) divr16u::i#2 reg byte x 15.538461538461538 +(word) divr16u::quotient +(word) divr16u::quotient#1 quotient zp ZP_WORD:11 151.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:11 101.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:11 25.25 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:7 75.75 +(word) divr16u::rem#1 rem zp ZP_WORD:7 202.0 +(word) divr16u::rem#2 rem zp ZP_WORD:7 202.0 +(word) divr16u::rem#3 rem zp ZP_WORD:7 2.0 +(word) divr16u::rem#4 rem zp ZP_WORD:7 204.0 +(word) divr16u::rem#5 rem zp ZP_WORD:7 101.0 +(word) divr16u::rem#9 rem zp ZP_WORD:7 101.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:11 61.0 +(word) divr16u::return#2 return zp ZP_WORD:11 4.0 +(void()) main() +(byte~) main::$13 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 16.5 +(byte) main::i#2 i zp ZP_BYTE:2 7.857142857142857 +(label) main::toD0181 +(word~) main::toD0181_$0 +(number~) main::toD0181_$1 +(number~) main::toD0181_$2 +(number~) main::toD0181_$3 +(word~) main::toD0181_$4 +(byte~) main::toD0181_$5 +(number~) main::toD0181_$6 +(number~) main::toD0181_$7 +(number~) main::toD0181_$8 +(byte*) main::toD0181_gfx +(byte) main::toD0181_return +(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) BITMAP#0/(byte) 4&(byte) $f +(byte*) main::toD0181_screen +(label) main::vicSelectGfxBank1 +(byte~) main::vicSelectGfxBank1_$0 +(label) main::vicSelectGfxBank1_@1 +(byte*) main::vicSelectGfxBank1_gfx +(label) main::vicSelectGfxBank1_toDd001 +(word~) main::vicSelectGfxBank1_toDd001_$0 +(byte~) main::vicSelectGfxBank1_toDd001_$1 +(number~) main::vicSelectGfxBank1_toDd001_$2 +(number~) main::vicSelectGfxBank1_toDd001_$3 +(byte*) main::vicSelectGfxBank1_toDd001_gfx +(byte) main::vicSelectGfxBank1_toDd001_return +(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3^>(word)(const byte*) SCREEN#0/(byte) $40 +(void()) point_init((byte) point_init::point_idx) +(word~) point_init::$10 $10 zp ZP_WORD:33 4.0 +(word~) point_init::$11 $11 zp ZP_WORD:33 4.0 +(byte~) point_init::$14 reg byte a 4.0 +(byte~) point_init::$16 reg byte a 2.0 +(byte~) point_init::$18 reg byte a 2.0 +(byte~) point_init::$20 reg byte x 1.6 +(signed word~) point_init::$3 $3 zp ZP_WORD:7 2.0 +(signed word~) point_init::$4 $4 zp ZP_WORD:29 4.0 +(word~) point_init::$9 $9 zp ZP_WORD:31 4.0 +(label) point_init::@1 +(label) point_init::@2 +(label) point_init::@3 +(label) point_init::@4 +(label) point_init::@5 +(label) point_init::@6 +(label) point_init::@7 +(label) point_init::@return +(label) point_init::abs16s1 +(bool~) point_init::abs16s1_$0 +(word~) point_init::abs16s1_$1 +(signed word~) point_init::abs16s1_$2 +(word~) point_init::abs16s1_$3 +(label) point_init::abs16s1_@1 +(label) point_init::abs16s1_@3 +(label) point_init::abs16s1_@return +(word) point_init::abs16s1_return +(signed word) point_init::abs16s1_return#0 abs16s1_return zp ZP_WORD:3 2.0 +(word) point_init::abs16s1_return#2 abs16s1_return zp ZP_WORD:3 1.0 +(word~) point_init::abs16s1_return#5 abs16s1_return zp ZP_WORD:3 4.0 +(word~) point_init::abs16s1_return#6 abs16s1_return zp ZP_WORD:3 4.0 +(signed word) point_init::abs16s1_w +(label) point_init::abs16s2 +(bool~) point_init::abs16s2_$0 +(word~) point_init::abs16s2_$1 +(signed word~) point_init::abs16s2_$2 +(word~) point_init::abs16s2_$3 +(label) point_init::abs16s2_@1 +(label) point_init::abs16s2_@3 +(label) point_init::abs16s2_@return +(word) point_init::abs16s2_return +(signed word) point_init::abs16s2_return#0 abs16s2_return zp ZP_WORD:5 2.0 +(word) point_init::abs16s2_return#2 abs16s2_return zp ZP_WORD:5 6.0 +(word~) point_init::abs16s2_return#5 abs16s2_return zp ZP_WORD:5 4.0 +(word~) point_init::abs16s2_return#6 abs16s2_return zp ZP_WORD:5 4.0 +(signed word) point_init::abs16s2_w +(byte) point_init::point_idx +(byte) point_init::point_idx#0 point_idx zp ZP_BYTE:2 0.6764705882352942 +(signed word) point_init::x_diff +(signed word) point_init::x_diff#1 x_diff zp ZP_WORD:9 0.5555555555555556 +(signed word) point_init::x_stepf +(signed word) point_init::x_stepf#0 x_stepf zp ZP_WORD:11 4.0 +(signed word) point_init::y_diff +(signed word) point_init::y_diff#0 y_diff zp ZP_WORD:7 0.5 +(void()) screen_fill((byte*) screen_fill::screen , (byte) screen_fill::ch) +(label) screen_fill::@1 +(label) screen_fill::@2 +(label) screen_fill::@3 +(label) screen_fill::@return +(byte) screen_fill::ch +(const byte) screen_fill::ch#0 ch = (byte) $10 +(byte*) screen_fill::screen +(byte*) screen_fill::screen#1 screen zp ZP_WORD:16 42.599999999999994 +(byte*) screen_fill::screen#2 screen zp ZP_WORD:16 157.0 +(byte*) screen_fill::screen#3 screen zp ZP_WORD:16 22.0 +(byte) screen_fill::x +(byte) screen_fill::x#1 reg byte x 151.5 +(byte) screen_fill::x#2 reg byte x 67.33333333333333 +(byte) screen_fill::y +(byte) screen_fill::y#1 y zp ZP_BYTE:15 16.5 +(byte) screen_fill::y#4 y zp ZP_BYTE:15 3.6666666666666665 +(signed byte[SIZE#0]) x_add +(const signed byte[SIZE#0]) x_add#0 x_add = { fill( SIZE#0, 0) } +(word[SIZE#0]) x_cur +(const word[SIZE#0]) x_cur#0 x_cur = { fill( SIZE#0, 0) } +(word[SIZE#0]) x_end +(const word[SIZE#0]) x_end#0 x_end = { (word) $14, (word) $a, (word) $14, (word) $14 } +(word[SIZE#0]) x_start +(const word[SIZE#0]) x_start#0 x_start = { (word) $a, (word) $14, (word) $1e, (word) $1e } +(signed byte[SIZE#0]) y_add +(const signed byte[SIZE#0]) y_add#0 y_add = { fill( SIZE#0, 0) } +(word[SIZE#0]) y_cur +(const word[SIZE#0]) y_cur#0 y_cur = { fill( SIZE#0, 0) } +(byte[SIZE#0]) y_end +(const byte[SIZE#0]) y_end#0 y_end = { (byte) $14, (byte) $14, (byte) $a, (byte) $14 } +(byte[SIZE#0]) y_start +(const byte[SIZE#0]) y_start#0 y_start = { (byte) $a, (byte) $a, (byte) $a, (byte) $14 } + +zp ZP_BYTE:2 [ main::i#2 main::i#1 point_init::point_idx#0 ] +zp ZP_WORD:3 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 point_init::abs16s1_return#0 ] +zp ZP_WORD:5 [ point_init::abs16s2_return#2 point_init::abs16s2_return#5 point_init::abs16s2_return#6 point_init::abs16s2_return#0 ] +zp ZP_WORD:7 [ divr16s::remu#3 divr16s::remu#7 divr16s::remu#8 divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 divr16s::rem#0 divr16s::remu#1 point_init::$3 point_init::y_diff#0 ] +zp ZP_WORD:9 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ] +reg byte y [ divr16s::neg#4 divr16s::neg#2 divr16s::neg#3 ] +zp ZP_WORD:11 [ divr16s::return#2 divr16s::return#1 divr16s::return#7 divr16s::resultu#0 divr16s::return#3 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 point_init::x_stepf#0 ] +zp ZP_WORD:13 [ divr16u::dividend#2 divr16u::dividend#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +zp ZP_BYTE:15 [ screen_fill::y#4 screen_fill::y#1 ] +zp ZP_WORD:16 [ screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 ] +reg byte x [ screen_fill::x#2 screen_fill::x#1 ] +zp ZP_BYTE:18 [ bitmap_clear::y#4 bitmap_clear::y#1 ] +zp ZP_WORD:19 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 ] +reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] +reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] +reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] +reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +zp ZP_WORD:21 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] +reg byte a [ main::$13 ] +zp ZP_WORD:23 [ bitmap_plot::x#0 ] +reg byte x [ bitmap_plot::y#0 ] +zp ZP_WORD:25 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ] +zp ZP_WORD:27 [ bitmap_plot::$1 ] +reg byte a [ bitmap_plot::$2 ] +reg byte a [ point_init::$18 ] +zp ZP_WORD:29 [ point_init::$4 ] +reg byte x [ point_init::$20 ] +zp ZP_WORD:31 [ point_init::$9 ] +zp ZP_WORD:33 [ point_init::$10 point_init::$11 ] +reg byte a [ point_init::$14 ] +reg byte a [ point_init::$16 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] +zp ZP_BYTE:35 [ bitmap_init::$7 ] +reg byte a [ bitmap_init::$4 ] +reg byte a [ bitmap_init::$5 ] +reg byte a [ bitmap_init::$6 ] diff --git a/src/test/ref/linegen.sym b/src/test/ref/linegen.sym index 1daabbadc..ce970100f 100644 --- a/src/test/ref/linegen.sym +++ b/src/test/ref/linegen.sym @@ -1 +1,200 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@6 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:13 2.75 +(word) divr16u::dividend#1 dividend zp ZP_WORD:13 4.0 +(word) divr16u::dividend#3 dividend zp ZP_WORD:13 5.0 +(word) divr16u::dividend#5 dividend zp ZP_WORD:13 4.0 +(word) divr16u::divisor +(word) divr16u::divisor#6 divisor zp ZP_WORD:25 1.375 +(byte) divr16u::i +(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:29 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:29 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:29 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:27 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:27 22.0 +(word) divr16u::rem#10 rem zp ZP_WORD:27 4.0 +(word) divr16u::rem#11 rem zp ZP_WORD:27 11.666666666666666 +(word) divr16u::rem#2 rem zp ZP_WORD:27 22.0 +(word) divr16u::rem#4 rem zp ZP_WORD:27 4.0 +(word) divr16u::rem#5 rem zp ZP_WORD:27 24.0 +(word) divr16u::rem#6 rem zp ZP_WORD:27 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:29 5.285714285714286 +(word) divr16u::return#2 return zp ZP_WORD:29 4.0 +(word) divr16u::return#3 return zp ZP_WORD:29 4.0 +(void()) lin16u_gen((word) lin16u_gen::min , (word) lin16u_gen::max , (word*) lin16u_gen::lintab , (word) lin16u_gen::length) +(word~) lin16u_gen::$5 $5 zp ZP_WORD:37 22.0 +(label) lin16u_gen::@1 +(label) lin16u_gen::@2 +(label) lin16u_gen::@3 +(label) lin16u_gen::@return +(word) lin16u_gen::ampl +(word) lin16u_gen::ampl#0 ampl zp ZP_WORD:13 4.0 +(word) lin16u_gen::i +(word) lin16u_gen::i#1 i zp ZP_WORD:23 16.5 +(word) lin16u_gen::i#2 i zp ZP_WORD:23 4.4 +(word) lin16u_gen::length +(word*) lin16u_gen::lintab +(word*) lin16u_gen::lintab#3 lintab zp ZP_WORD:21 7.333333333333333 +(word*) lin16u_gen::lintab#4 lintab zp ZP_WORD:21 8.75 +(word*) lin16u_gen::lintab#5 lintab zp ZP_WORD:21 0.16666666666666666 +(word) lin16u_gen::max +(word) lin16u_gen::max#3 max zp ZP_WORD:13 2.0 +(word) lin16u_gen::min +(word) lin16u_gen::min#3 min zp ZP_WORD:15 0.36363636363636365 +(dword) lin16u_gen::step +(dword) lin16u_gen::step#0 step zp ZP_DWORD:33 1.4444444444444446 +(word) lin16u_gen::stepf +(word) lin16u_gen::stepf#0 stepf zp ZP_WORD:29 4.0 +(word) lin16u_gen::stepi +(word) lin16u_gen::stepi#0 stepi zp ZP_WORD:31 0.8 +(dword) lin16u_gen::val +(dword) lin16u_gen::val#0 val zp ZP_DWORD:17 4.0 +(dword) lin16u_gen::val#1 val zp ZP_DWORD:17 5.5 +(dword) lin16u_gen::val#2 val zp ZP_DWORD:17 11.666666666666666 +(void()) main() +(byte~) main::$27 reg byte a 22.0 +(byte~) main::$28 reg byte a 22.0 +(byte~) main::$29 reg byte a 22.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@18 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@22 +(label) main::@23 +(label) main::@24 +(label) main::@25 +(label) main::@26 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#10 reg byte x 3.142857142857143 +(word[$14]) main::lintab1 +(const word[$14]) main::lintab1#0 lintab1 = { fill( $14, 0) } +(word[$14]) main::lintab2 +(const word[$14]) main::lintab2#0 lintab2 = { fill( $14, 0) } +(word[$14]) main::lintab3 +(const word[$14]) main::lintab3#0 lintab3 = { fill( $14, 0) } +(const string) main::str str = (string) " @" +(const string) main::str1 str1 = (string) " @" +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:6 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:6 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:6 11.0 +(byte) print_byte::b#3 b zp ZP_BYTE:6 4.75 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:7 101.0 +(byte*~) print_char_cursor#101 print_char_cursor zp ZP_WORD:7 22.0 +(byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:7 4.228571428571427 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:7 11.37037037037037 +(byte*) print_char_cursor#50 print_char_cursor zp ZP_WORD:7 4.0 +(byte*) print_char_cursor#81 print_char_cursor zp ZP_WORD:7 5.666666666666667 +(byte*) print_char_cursor#86 print_char_cursor zp ZP_WORD:7 45.0 +(byte*~) print_char_cursor#95 print_char_cursor zp ZP_WORD:7 4.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:11 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:11 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 8.225 +(byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:2 204.0 +(byte*) print_line_cursor#21 print_line_cursor zp ZP_WORD:2 15.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:9 202.0 +(byte*) print_str::str#10 str zp ZP_WORD:9 101.5 +(byte*) print_str::str#12 str zp ZP_WORD:9 2.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#10 w zp ZP_WORD:4 12.333333333333332 +(word) print_word::w#3 w zp ZP_WORD:4 22.0 +(word) print_word::w#4 w zp ZP_WORD:4 22.0 +(word) print_word::w#5 w zp ZP_WORD:4 22.0 +(word) rem16u +(word) rem16u#1 rem16u zp ZP_WORD:27 0.8 + +reg byte x [ main::i#10 main::i#1 ] +zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 ] +zp ZP_WORD:4 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 ] +zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +zp ZP_WORD:7 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#101 print_char_cursor#2 print_char_cursor#11 print_char_cursor#95 print_char_cursor#1 ] +zp ZP_WORD:9 [ print_str::str#10 print_str::str#12 print_str::str#0 ] +zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_WORD:13 [ lin16u_gen::max#3 lin16u_gen::ampl#0 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#0 ] +zp ZP_WORD:15 [ lin16u_gen::min#3 ] +zp ZP_DWORD:17 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] +zp ZP_WORD:21 [ lin16u_gen::lintab#4 lin16u_gen::lintab#3 lin16u_gen::lintab#5 ] +zp ZP_WORD:23 [ lin16u_gen::i#2 lin16u_gen::i#1 ] +zp ZP_WORD:25 [ divr16u::divisor#6 ] +zp ZP_WORD:27 [ 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 ] +zp ZP_WORD:29 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 lin16u_gen::stepf#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +reg byte a [ main::$27 ] +reg byte a [ main::$28 ] +reg byte a [ main::$29 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +zp ZP_WORD:31 [ lin16u_gen::stepi#0 ] +zp ZP_DWORD:33 [ lin16u_gen::step#0 ] +zp ZP_WORD:37 [ lin16u_gen::$5 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] diff --git a/src/test/ref/literal-char-minus-number.sym b/src/test/ref/literal-char-minus-number.sym index 1daabbadc..7a8b5d97b 100644 --- a/src/test/ref/literal-char-minus-number.sym +++ b/src/test/ref/literal-char-minus-number.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 + diff --git a/src/test/ref/literal-strings.sym b/src/test/ref/literal-strings.sym index 1daabbadc..17652d646 100644 --- a/src/test/ref/literal-strings.sym +++ b/src/test/ref/literal-strings.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte[]) msg +(const byte[]) msg#0 msg = (string) "cml@" +(byte[]) msgz +(const byte[]) msgz#0 msgz = (string) "cml" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/literals.sym b/src/test/ref/literals.sym index 1daabbadc..82ac198fd 100644 --- a/src/test/ref/literals.sym +++ b/src/test/ref/literals.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) ch +(const byte) ch#0 ch = (byte) 'a' +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte) num +(const byte) num#0 num = (byte) 1 +(byte[]) nums +(const byte[]) nums#0 nums = { (byte) 2, (byte) 3, (byte) 4, (byte) 5 } +(byte[]) str +(const byte[]) str#0 str = (string) "bcde@" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/liverange-call-problem.sym b/src/test/ref/liverange-call-problem.sym index 1daabbadc..f87ee4942 100644 --- a/src/test/ref/liverange-call-problem.sym +++ b/src/test/ref/liverange-call-problem.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) incw1() +(label) incw1::@return +(void()) incw2() +(label) incw2::@return +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(word*) main::SCREEN +(const word*) main::SCREEN#0 SCREEN = (word*) 1024 +(word) w1 +(word) w1#11 w1 zp ZP_WORD:4 4.0 +(word) w1#12 w1 zp ZP_WORD:4 0.6666666666666666 +(word) w2 +(word) w2#10 w2 zp ZP_WORD:2 4.0 +(word) w2#11 w2 zp ZP_WORD:2 0.75 + +zp ZP_WORD:2 [ w2#10 w2#11 ] +zp ZP_WORD:4 [ w1#11 w1#12 ] diff --git a/src/test/ref/liverange.sym b/src/test/ref/liverange.sym index 1daabbadc..139c0f099 100644 --- a/src/test/ref/liverange.sym +++ b/src/test/ref/liverange.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) i +(byte) i#10 reg byte y 4.0 +(byte) i#11 reg byte y 0.7272727272727273 +(byte()) inci() +(label) inci::@return +(byte) inci::return +(byte) inci::return#0 reg byte a 4.0 +(byte) inci::return#1 reg byte a 4.0 +(byte) inci::return#2 reg byte a 1.5 +(void()) main() +(byte~) main::$0 reg byte a 4.0 +(byte~) main::$2 reg byte a 4.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::a +(byte) main::a#1 a zp ZP_BYTE:2 1.0 +(byte) main::a#2 reg byte x 2.0 + +reg byte y [ i#10 i#11 ] +reg byte a [ inci::return#0 ] +reg byte a [ main::$0 ] +zp ZP_BYTE:2 [ main::a#1 ] +reg byte a [ inci::return#1 ] +reg byte a [ main::$2 ] +reg byte x [ main::a#2 ] +reg byte a [ inci::return#2 ] diff --git a/src/test/ref/local-string.sym b/src/test/ref/local-string.sym index 1daabbadc..5a31e0c8f 100644 --- a/src/test/ref/local-string.sym +++ b/src/test/ref/local-string.sym @@ -1 +1,16 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 22.0 +(byte) main::i#2 reg byte x 18.333333333333332 +(byte[]) main::msg +(const byte[]) main::msg#0 msg = (string) "message 2 @" +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/localscope-loops.sym b/src/test/ref/localscope-loops.sym index 1daabbadc..73820852a 100644 --- a/src/test/ref/localscope-loops.sym +++ b/src/test/ref/localscope-loops.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 16.5 +(byte) main::i1 +(byte) main::i1#1 reg byte x 16.5 +(byte) main::i1#2 reg byte x 16.5 + +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/localscope-simple.sym b/src/test/ref/localscope-simple.sym index 1daabbadc..b2ad9f51b 100644 --- a/src/test/ref/localscope-simple.sym +++ b/src/test/ref/localscope-simple.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(void()) main() +(label) main::@return +(byte) main::i +(const byte) main::i#0 i = (byte) 0 +(byte) main::i1 +(const byte) main::i1#0 i1 = (byte) 1 + diff --git a/src/test/ref/longbranch-interrupt-problem.sym b/src/test/ref/longbranch-interrupt-problem.sym index 1daabbadc..fc1afd5f8 100644 --- a/src/test/ref/longbranch-interrupt-problem.sym +++ b/src/test/ref/longbranch-interrupt-problem.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte) col +(byte) col#0 col zp ZP_BYTE:2 1.6666666666666665 +(byte) col#1 col zp ZP_BYTE:2 22.0 +(byte) col#12 col zp ZP_BYTE:2 114.0 +(byte) col#3 col zp ZP_BYTE:2 20.0 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@1 +(label) irq::@return +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 + +zp ZP_BYTE:2 [ col#12 col#0 col#1 col#3 ] diff --git a/src/test/ref/longjump.sym b/src/test/ref/longjump.sym index 1daabbadc..a574074be 100644 --- a/src/test/ref/longjump.sym +++ b/src/test/ref/longjump.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 14.666666666666666 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/longjump2.sym b/src/test/ref/longjump2.sym index 1daabbadc..72ad07b11 100644 --- a/src/test/ref/longjump2.sym +++ b/src/test/ref/longjump2.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) long1() +(label) long1::@1 +(label) long1::@return +(byte*) long1::SCREEN +(const byte*) long1::SCREEN#0 SCREEN = (byte*) 1024 +(byte) long1::i +(byte) long1::i#1 reg byte x 16.5 +(byte) long1::i#2 reg byte x 14.666666666666666 +(void()) long2() +(label) long2::@1 +(label) long2::@return +(byte*) long2::SCREEN +(const byte*) long2::SCREEN#0 SCREEN = (byte*) 1024 +(byte) long2::i +(byte) long2::i#1 reg byte x 16.5 +(byte) long2::i#2 reg byte x 14.666666666666666 +(void()) main() +(label) main::@1 +(label) main::@return + +reg byte x [ long2::i#2 long2::i#1 ] +reg byte x [ long1::i#2 long1::i#1 ] diff --git a/src/test/ref/loop-break-continue.sym b/src/test/ref/loop-break-continue.sym index 1daabbadc..74a5c3d8d 100644 --- a/src/test/ref/loop-break-continue.sym +++ b/src/test/ref/loop-break-continue.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 9.166666666666666 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 22.0 +(byte*) main::screen#2 screen zp ZP_WORD:2 11.0 +(byte*) main::screen#5 screen zp ZP_WORD:2 11.0 +(byte[]) main::str +(const byte[]) main::str#0 str = (string) "hello brave new world@" + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::screen#2 main::screen#5 main::screen#1 ] diff --git a/src/test/ref/loop-break-nested.sym b/src/test/ref/loop-break-nested.sym index 1daabbadc..d5e29973a 100644 --- a/src/test/ref/loop-break-nested.sym +++ b/src/test/ref/loop-break-nested.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 151.5 +(byte) main::i#2 reg byte y 134.66666666666666 +(byte*) main::line +(byte*) main::line#1 line zp ZP_WORD:2 16.5 +(byte*) main::line#2 line zp ZP_WORD:2 33.57142857142857 + +zp ZP_WORD:2 [ main::line#2 main::line#1 ] +reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-break.sym b/src/test/ref/loop-break.sym index 1daabbadc..765857fe0 100644 --- a/src/test/ref/loop-break.sym +++ b/src/test/ref/loop-break.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 14.666666666666666 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-continue.sym b/src/test/ref/loop-continue.sym index 1daabbadc..8436ab927 100644 --- a/src/test/ref/loop-continue.sym +++ b/src/test/ref/loop-continue.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 18.333333333333332 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-problem.sym b/src/test/ref/loop-problem.sym index 1daabbadc..6379a2999 100644 --- a/src/test/ref/loop-problem.sym +++ b/src/test/ref/loop-problem.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) b() +(label) b::@1 +(label) b::@2 +(label) b::@return +(byte) b::i +(byte) b::i#1 reg byte x 16.5 +(byte) b::i#2 reg byte x 11.0 +(void()) d() +(label) d::@return +(void()) main() +(label) main::@1 +(label) main::@return + +reg byte x [ b::i#2 b::i#1 ] diff --git a/src/test/ref/loop-problem2.sym b/src/test/ref/loop-problem2.sym index 1daabbadc..74ec88004 100644 --- a/src/test/ref/loop-problem2.sym +++ b/src/test/ref/loop-problem2.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@return +(void()) mode_ctrl() +(label) mode_ctrl::@1 +(label) mode_ctrl::@2 +(label) mode_ctrl::@3 +(byte) mode_ctrl::before +(byte) mode_ctrl::before#0 reg byte a 22.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 + +zp ZP_WORD:2 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ mode_ctrl::before#0 ] diff --git a/src/test/ref/loop-while-continue.sym b/src/test/ref/loop-while-continue.sym index 1daabbadc..73ff5097f 100644 --- a/src/test/ref/loop-while-continue.sym +++ b/src/test/ref/loop-while-continue.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 109.25 +(byte) main::i#2 reg byte x 213.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop100.sym b/src/test/ref/loop100.sym index 1daabbadc..a7283824c 100644 --- a/src/test/ref/loop100.sym +++ b/src/test/ref/loop100.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loopmin.sym b/src/test/ref/loopmin.sym index 1daabbadc..8debc0c66 100644 --- a/src/test/ref/loopmin.sym +++ b/src/test/ref/loopmin.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(byte) main::s +(byte) main::s#1 reg byte a 22.0 +(byte) main::s#2 reg byte a 16.5 +(byte) main::s#4 reg byte a 11.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::s#2 main::s#4 main::s#1 ] diff --git a/src/test/ref/loopnest.sym b/src/test/ref/loopnest.sym index 1daabbadc..7502abaa1 100644 --- a/src/test/ref/loopnest.sym +++ b/src/test/ref/loopnest.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 11.0 +(void()) nest() +(label) nest::@1 +(label) nest::@return +(byte) nest::j +(byte) nest::j#1 reg byte x 151.5 +(byte) nest::j#2 reg byte x 151.5 + +reg byte y [ main::i#2 main::i#1 ] +reg byte x [ nest::j#2 nest::j#1 ] diff --git a/src/test/ref/loopnest2.sym b/src/test/ref/loopnest2.sym index 1daabbadc..5e59b005b 100644 --- a/src/test/ref/loopnest2.sym +++ b/src/test/ref/loopnest2.sym @@ -1 +1,47 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 16.5 +(byte) main::i#5 i zp ZP_BYTE:2 4.4 +(byte) main::j +(byte) main::j#1 j zp ZP_BYTE:3 151.5 +(byte) main::j#2 j zp ZP_BYTE:3 101.0 +(void()) nest1() +(label) nest1::@1 +(label) nest1::@2 +(label) nest1::@3 +(label) nest1::@4 +(label) nest1::@return +(byte) nest1::i +(byte) nest1::i#1 i zp ZP_BYTE:4 1501.5 +(byte) nest1::i#5 i zp ZP_BYTE:4 400.4 +(byte) nest1::j +(byte) nest1::j#1 reg byte a 15001.5 +(byte) nest1::j#2 reg byte a 10001.0 +(void()) nest2() +(label) nest2::@1 +(label) nest2::@2 +(label) nest2::@3 +(label) nest2::@return +(byte) nest2::i +(byte) nest2::i#1 reg byte x 150001.5 +(byte) nest2::i#4 reg byte x 40000.4 +(byte) nest2::j +(byte) nest2::j#1 reg byte y 1500001.5 +(byte) nest2::j#2 reg byte y 1500001.5 + +zp ZP_BYTE:2 [ main::i#5 main::i#1 ] +zp ZP_BYTE:3 [ main::j#2 main::j#1 ] +zp ZP_BYTE:4 [ nest1::i#5 nest1::i#1 ] +reg byte a [ nest1::j#2 nest1::j#1 ] +reg byte x [ nest2::i#4 nest2::i#1 ] +reg byte y [ nest2::j#2 nest2::j#1 ] diff --git a/src/test/ref/loopnest3.sym b/src/test/ref/loopnest3.sym index 1daabbadc..1a41af1fb 100644 --- a/src/test/ref/loopnest3.sym +++ b/src/test/ref/loopnest3.sym @@ -1 +1,29 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) b((byte) b::i) +(label) b::@return +(byte) b::i +(byte) b::i#0 reg byte y 13.0 +(void()) c((byte) c::i) +(label) c::@1 +(label) c::@return +(byte) c::i +(byte) c::i#0 reg byte a 17.166666666666664 +(byte) c::j +(byte) c::j#1 reg byte x 151.5 +(byte) c::j#2 reg byte x 151.5 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 11.0 + +reg byte y [ main::i#2 main::i#1 ] +reg byte x [ c::j#2 c::j#1 ] +reg byte y [ b::i#0 ] +reg byte a [ c::i#0 ] diff --git a/src/test/ref/loopsplit.sym b/src/test/ref/loopsplit.sym index 1daabbadc..388c91d6d 100644 --- a/src/test/ref/loopsplit.sym +++ b/src/test/ref/loopsplit.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 33.0 +(byte) main::s +(byte) main::s#1 reg byte y 22.0 +(byte) main::s#2 reg byte y 22.0 +(byte) main::s#3 reg byte y 11.5 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::s#3 main::s#1 main::s#2 ] diff --git a/src/test/ref/mem-alignment.sym b/src/test/ref/mem-alignment.sym index 1daabbadc..bbe930662 100644 --- a/src/test/ref/mem-alignment.sym +++ b/src/test/ref/mem-alignment.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[$100]) bs +(const byte[$100]) bs#0 bs = { fill( $100, 0) } +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte[$100]) main::cs +(const byte[$100]) main::cs#0 cs = { fill( $100, 0) } +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte) main::i1 +(byte) main::i1#1 reg byte y 16.5 +(byte) main::i1#2 reg byte y 11.0 +(byte) main::j +(byte) main::j#1 reg byte x 7.333333333333333 +(byte) main::j#2 reg byte x 16.5 + +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ main::j#2 main::j#1 ] +reg byte y [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/memory-heap.sym b/src/test/ref/memory-heap.sym index 1daabbadc..58fefc305 100644 --- a/src/test/ref/memory-heap.sym +++ b/src/test/ref/memory-heap.sym @@ -1 +1,43 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) HEAP_START +(const byte*) HEAP_START#0 HEAP_START = (byte*) 49152 +(void()) free((byte*) free::ptr) +(label) free::@return +(byte*) free::ptr +(byte*) heap_head +(byte*) heap_head#1 heap_head zp ZP_WORD:2 0.8 +(byte*) heap_head#7 heap_head zp ZP_WORD:2 3.0 +(void()) main() +(byte~) main::$6 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte*) main::buf1 +(byte*) main::buf1#0 buf1 zp ZP_WORD:4 1.0714285714285714 +(byte*) main::buf2 +(byte*) main::buf2#0 buf2 zp ZP_WORD:6 1.25 +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 16.5 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 +(byte*()) malloc((word) malloc::size) +(label) malloc::@return +(byte*) malloc::mem +(byte*) malloc::return +(byte*) malloc::return#0 return zp ZP_WORD:6 1.2000000000000002 +(byte*) malloc::return#2 return#2 zp ZP_WORD:4 4.0 +(byte*) malloc::return#3 return zp ZP_WORD:6 4.0 +(word) malloc::size + +reg byte y [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ heap_head#7 heap_head#1 ] +zp ZP_WORD:4 [ malloc::return#2 main::buf1#0 ] +zp ZP_WORD:6 [ malloc::return#3 main::buf2#0 malloc::return#0 ] +reg byte a [ main::$6 ] diff --git a/src/test/ref/min-fmul-16.sym b/src/test/ref/min-fmul-16.sym index 1daabbadc..fab71d06a 100644 --- a/src/test/ref/min-fmul-16.sym +++ b/src/test/ref/min-fmul-16.sym @@ -1 +1,145 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(word) main::a +(const word) main::a#0 a = (word) $4d2 +(word) main::b +(const word) main::b#0 b = (word) $929 +(dword) main::r +(dword) main::r#0 r zp ZP_DWORD:18 11.0 +(dword()) mulf16u((word) mulf16u::a , (word) mulf16u::b) +(label) mulf16u::@return +(word) mulf16u::a +(word) mulf16u::b +(word*) mulf16u::memA +(const word*) mulf16u::memA#0 memA = (word*) 248 +(word*) mulf16u::memB +(const word*) mulf16u::memB#0 memB = (word*) 250 +(dword*) mulf16u::memR +(const dword*) mulf16u::memR#0 memR = (dword*) 252 +(dword) mulf16u::return +(dword) mulf16u::return#0 return zp ZP_DWORD:18 22.0 +(dword) mulf16u::return#1 return zp ZP_DWORD:18 4.333333333333333 +(void()) mulf_init() +(byte~) mulf_init::$10 reg byte a 22.0 +(byte~) mulf_init::$11 reg byte a 22.0 +(byte~) mulf_init::$7 reg byte a 22.0 +(label) mulf_init::@1 +(label) mulf_init::@2 +(label) mulf_init::@3 +(label) mulf_init::@4 +(label) mulf_init::@5 +(label) mulf_init::@6 +(label) mulf_init::@7 +(label) mulf_init::@return +(byte) mulf_init::c +(byte) mulf_init::c#1 reg byte x 2.357142857142857 +(byte) mulf_init::c#2 reg byte x 22.0 +(byte) mulf_init::dir +(byte) mulf_init::dir#2 dir zp ZP_BYTE:17 4.714285714285714 +(byte) mulf_init::dir#3 dir zp ZP_BYTE:17 7.333333333333333 +(word) mulf_init::sqr +(word) mulf_init::sqr#1 sqr zp ZP_WORD:11 7.333333333333333 +(word) mulf_init::sqr#2 sqr zp ZP_WORD:11 22.0 +(word) mulf_init::sqr#3 sqr zp ZP_WORD:11 9.166666666666666 +(word) mulf_init::sqr#4 sqr zp ZP_WORD:11 6.6000000000000005 +(byte*) mulf_init::sqr1_hi +(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:8 5.5 +(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:8 3.0 +(byte*) mulf_init::sqr1_lo +(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:6 16.5 +(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:6 2.5384615384615383 +(byte*) mulf_init::sqr2_hi +(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:15 3.142857142857143 +(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:15 11.0 +(byte*) mulf_init::sqr2_lo +(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:13 16.5 +(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:13 4.125 +(byte) mulf_init::x_2 +(byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:10 11.0 +(byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:10 4.888888888888889 +(byte) mulf_init::x_2#3 x_2 zp ZP_BYTE:10 8.25 +(byte) mulf_init::x_255 +(byte) mulf_init::x_255#1 reg byte x 5.5 +(byte) mulf_init::x_255#2 reg byte x 11.0 +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 reg byte x 4.0 +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#2 reg byte x 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#10 print_char_cursor zp ZP_WORD:4 0.6153846153846154 +(byte*) print_char_cursor#16 print_char_cursor zp ZP_WORD:4 0.2222222222222222 +(byte*) print_char_cursor#27 print_char_cursor zp ZP_WORD:4 4.0 +(byte*) print_char_cursor#34 print_char_cursor zp ZP_WORD:4 3.0 +(byte*) print_char_cursor#36 print_char_cursor zp ZP_WORD:4 2.0 +(void()) print_dword((dword) print_dword::dw) +(label) print_dword::@1 +(label) print_dword::@return +(dword) print_dword::dw +(dword) print_dword::dw#0 dw zp ZP_DWORD:18 5.0 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_screen +(void()) print_set_screen((byte*) print_set_screen::screen) +(label) print_set_screen::@return +(byte*) print_set_screen::screen +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#0 w zp ZP_WORD:2 4.0 +(word) print_word::w#1 w zp ZP_WORD:2 4.0 +(word) print_word::w#2 w zp ZP_WORD:2 2.6666666666666665 + +zp ZP_WORD:2 [ print_word::w#2 print_word::w#0 print_word::w#1 ] +reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +zp ZP_WORD:4 [ print_char_cursor#27 print_char_cursor#36 print_char_cursor#34 print_char_cursor#16 print_char_cursor#10 ] +reg byte x [ mulf_init::c#2 mulf_init::c#1 ] +zp ZP_WORD:6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] +zp ZP_WORD:8 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +zp ZP_BYTE:10 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +zp ZP_WORD:11 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] +reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] +zp ZP_WORD:13 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] +zp ZP_WORD:15 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] +zp ZP_BYTE:17 [ mulf_init::dir#2 mulf_init::dir#3 ] +zp ZP_DWORD:18 [ mulf16u::return#0 main::r#0 mulf16u::return#1 print_dword::dw#0 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +reg byte a [ mulf_init::$7 ] +reg byte a [ mulf_init::$10 ] +reg byte a [ mulf_init::$11 ] diff --git a/src/test/ref/mixed-array-0.sym b/src/test/ref/mixed-array-0.sym index 1daabbadc..6d26862ad 100644 --- a/src/test/ref/mixed-array-0.sym +++ b/src/test/ref/mixed-array-0.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) main::msg +(const byte[]) main::msg#0 msg = { (byte) 1, (byte) 2, (byte) 3 } + diff --git a/src/test/ref/mixed-array-1.sym b/src/test/ref/mixed-array-1.sym index 1daabbadc..b7d42efc3 100644 --- a/src/test/ref/mixed-array-1.sym +++ b/src/test/ref/mixed-array-1.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(signed byte*) main::SCREEN +(const signed byte*) main::SCREEN#0 SCREEN = (signed byte*) 1024 +(signed byte[]) main::msg +(const signed byte[]) main::msg#0 msg = { (signed byte) -1, (signed byte) 0, (signed byte) 1 } + diff --git a/src/test/ref/modglobal.sym b/src/test/ref/modglobal.sym index 1daabbadc..ee3ef2744 100644 --- a/src/test/ref/modglobal.sym +++ b/src/test/ref/modglobal.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[$100]) SCREEN +(const byte[$100]) SCREEN#0 SCREEN = (byte*) 1024 +(byte) cnt +(byte) cnt#11 reg byte a 4.0 +(byte) cnt#12 cnt zp ZP_BYTE:2 0.6666666666666666 +(byte) cnt#2 reg byte a 4.0 +(byte) cnt2 +(byte) cnt2#10 reg byte y 2.0 +(byte) cnt2#11 reg byte y 0.46153846153846156 +(byte) cnt3 +(byte) cnt3#10 reg byte x 1.3333333333333333 +(byte) cnt3#11 reg byte x 0.46153846153846156 +(byte()) inccnt() +(label) inccnt::@return +(byte) inccnt::return +(byte) inccnt::return#0 reg byte a 4.0 +(byte) inccnt::return#1 reg byte a 4.0 +(byte) inccnt::return#2 reg byte a 1.5 +(void()) main() +(byte~) main::$0 reg byte a 4.0 +(byte~) main::$1 reg byte a 4.0 +(label) main::@1 +(label) main::@2 +(label) main::@return + +reg byte a [ cnt#11 cnt#2 ] +reg byte y [ cnt2#10 cnt2#11 ] +reg byte x [ cnt3#10 cnt3#11 ] +reg byte a [ inccnt::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ inccnt::return#1 ] +reg byte a [ main::$1 ] +zp ZP_BYTE:2 [ cnt#12 ] +reg byte a [ inccnt::return#2 ] diff --git a/src/test/ref/modglobalmin.sym b/src/test/ref/modglobalmin.sym index 1daabbadc..4dd4c786a 100644 --- a/src/test/ref/modglobalmin.sym +++ b/src/test/ref/modglobalmin.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte[$100]) SCREEN +(const byte[$100]) SCREEN#0 SCREEN = (byte*) 1024 +(byte) cnt +(byte) cnt#11 reg byte x 4.0 +(byte) cnt#12 reg byte x 4.0 +(byte) cnt#13 reg byte x 1.6 +(byte) cnt#2 reg byte x 4.0 +(void()) inccnt() +(label) inccnt::@return +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return + +reg byte x [ cnt#12 cnt#2 ] +reg byte x [ cnt#11 ] +reg byte x [ cnt#13 ] diff --git a/src/test/ref/mul8u-min.sym b/src/test/ref/mul8u-min.sym index 1daabbadc..8be59235f 100644 --- a/src/test/ref/mul8u-min.sym +++ b/src/test/ref/mul8u-min.sym @@ -1 +1,55 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(word~) main::$0 $0 zp ZP_WORD:4 101.0 +(byte~) main::$3 reg byte x 202.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::a +(byte) main::a#1 a zp ZP_BYTE:2 16.5 +(byte) main::a#4 a zp ZP_BYTE:2 10.249999999999998 +(byte) main::b +(byte) main::b#1 reg byte y 151.5 +(byte) main::b#2 reg byte y 33.666666666666664 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:3 42.599999999999994 +(byte) main::i#2 i zp ZP_BYTE:3 39.25 +(byte) main::i#4 i zp ZP_BYTE:3 22.0 +(word*) main::screen +(const word*) main::screen#0 screen = (word*) 1024 +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 2002.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 1001.0 +(byte) mul8u::a#1 reg byte x 34.33333333333333 +(byte) mul8u::a#2 reg byte x 667.6666666666667 +(byte) mul8u::b +(byte) mul8u::b#0 reg byte a 51.5 +(word) mul8u::mb +(word) mul8u::mb#1 mb zp ZP_WORD:6 2002.0 +(word) mul8u::mb#2 mb zp ZP_WORD:6 429.2857142857143 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:4 2002.0 +(word) mul8u::res#2 res zp ZP_WORD:4 517.3333333333334 +(word) mul8u::res#6 res zp ZP_WORD:4 1001.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:4 202.0 + +zp ZP_BYTE:2 [ main::a#4 main::a#1 ] +reg byte y [ main::b#2 main::b#1 ] +zp ZP_BYTE:3 [ main::i#2 main::i#4 main::i#1 ] +reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] +zp ZP_WORD:4 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 main::$0 ] +zp ZP_WORD:6 [ mul8u::mb#2 mul8u::mb#1 ] +reg byte a [ mul8u::b#0 ] +reg byte x [ main::$3 ] +reg byte a [ mul8u::$1 ] diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym index 1daabbadc..f20669e47 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym @@ -1 +1,238 @@ -program \ No newline at end of file +(label) @1 +(label) @2 +(label) @3 +(label) @4 +(label) @5 +(label) @begin +(label) @end +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) CIA1_INTERRUPT +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = (byte*) 56333 +(byte) CIA_INTERRUPT_CLEAR +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte) $7f +(byte*) D011 +(const byte*) D011#0 D011 = (byte*) 53265 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte*) IRQ_ENABLE +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = (byte*) 53274 +(byte) IRQ_RASTER +(const byte) IRQ_RASTER#0 IRQ_RASTER = (byte) 1 +(byte*) IRQ_STATUS +(const byte*) IRQ_STATUS#0 IRQ_STATUS = (byte*) 53273 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte) PLEX_COUNT +(const byte) PLEX_COUNT#0 PLEX_COUNT = (byte) $20 +(byte[8]) PLEX_FREE_YPOS +(const byte[8]) PLEX_FREE_YPOS#0 PLEX_FREE_YPOS = { fill( 8, 0) } +(byte[PLEX_COUNT#0]) PLEX_PTR +(const byte[PLEX_COUNT#0]) PLEX_PTR#0 PLEX_PTR = { fill( PLEX_COUNT#0, 0) } +(byte*) PLEX_SCREEN_PTR +(const byte*) PLEX_SCREEN_PTR#0 PLEX_SCREEN_PTR = (byte*)(number) $400+(number) $3f8 +(byte[PLEX_COUNT#0]) PLEX_SORTED_IDX +(const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 PLEX_SORTED_IDX = { fill( PLEX_COUNT#0, 0) } +(word[PLEX_COUNT#0]) PLEX_XPOS +(const word[PLEX_COUNT#0]) PLEX_XPOS#0 PLEX_XPOS = { fill( PLEX_COUNT#0, 0) } +(byte[PLEX_COUNT#0]) PLEX_YPOS +(const byte[PLEX_COUNT#0]) PLEX_YPOS#0 PLEX_YPOS = { fill( PLEX_COUNT#0, 0) } +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) SCREEN +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = (byte*) 8192 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_XMSB +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = (byte*) 53264 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(byte*) VIC_CONTROL +(const byte*) VIC_CONTROL#0 VIC_CONTROL = (byte*) 53265 +(byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte) $10 +(byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(byte*) YSIN +(const byte*) YSIN#0 YSIN = (byte*) 8448 +(bool) framedone +(bool) framedone#12 framedone zp ZP_BOOL:10 57.0 +(bool) framedone#17 framedone zp ZP_BOOL:10 0.6666666666666666 +(bool) framedone#3 framedone zp ZP_BOOL:10 20.0 +(bool) framedone#5 framedone zp ZP_BOOL:10 7.333333333333333 +(void()) init() +(byte~) init::$9 reg byte a 22.0 +(label) init::@1 +(label) init::@2 +(label) init::@3 +(label) init::@4 +(label) init::@return +(byte) init::ss +(byte) init::ss#1 reg byte x 16.5 +(byte) init::ss#2 reg byte x 16.5 +(byte) init::sx +(byte) init::sx#1 reg byte x 16.5 +(byte) init::sx#2 reg byte x 8.8 +(word) init::xp +(word) init::xp#1 xp zp ZP_WORD:4 7.333333333333333 +(word) init::xp#2 xp zp ZP_WORD:4 8.25 +(void()) loop() +(label) loop::@1 +(label) loop::@2 +(label) loop::@3 +(label) loop::@4 +(label) loop::@5 +(label) loop::@6 +(byte) loop::sin_idx +(byte) loop::sin_idx#1 sin_idx zp ZP_BYTE:2 3.142857142857143 +(byte) loop::sin_idx#6 sin_idx zp ZP_BYTE:2 3.666666666666667 +(byte) loop::sy +(byte) loop::sy#1 reg byte y 151.5 +(byte) loop::sy#2 reg byte y 101.0 +(byte) loop::y_idx +(byte) loop::y_idx#1 reg byte x 67.33333333333333 +(byte) loop::y_idx#2 reg byte x 157.0 +(byte~) loop::y_idx#4 reg byte x 22.0 +(void()) main() +(label) main::@1 +(label) main::@return +(void()) plexInit((byte*) plexInit::screen) +(label) plexInit::@1 +(label) plexInit::@return +(byte) plexInit::i +(byte) plexInit::i#1 reg byte x 16.5 +(byte) plexInit::i#2 reg byte x 22.0 +(label) plexInit::plexSetScreen1 +(byte*~) plexInit::plexSetScreen1_$0 +(byte*) plexInit::plexSetScreen1_screen +(byte*) plexInit::screen +(void()) plexShowSprite() +(byte~) plexShowSprite::$11 reg byte x 2.0 +(byte~) plexShowSprite::$2 reg byte a 4.0 +(byte~) plexShowSprite::$3 reg byte a 4.0 +(byte~) plexShowSprite::$5 reg byte x 4.0 +(byte~) plexShowSprite::$6 $6 zp ZP_BYTE:6 1.0833333333333333 +(byte~) plexShowSprite::$9 reg byte a 4.0 +(label) plexShowSprite::@1 +(label) plexShowSprite::@2 +(label) plexShowSprite::@3 +(label) plexShowSprite::@4 +(label) plexShowSprite::@5 +(label) plexShowSprite::@return +(label) plexShowSprite::plexFreeAdd1 +(number~) plexShowSprite::plexFreeAdd1_$0 +(byte~) plexShowSprite::plexFreeAdd1_$0#0 reg byte a 4.0 +(number~) plexShowSprite::plexFreeAdd1_$1 +(byte~) plexShowSprite::plexFreeAdd1_$1#0 reg byte x 4.0 +(number~) plexShowSprite::plexFreeAdd1_$2 +(byte~) plexShowSprite::plexFreeAdd1_$2#0 plexFreeAdd1_$2 zp ZP_BYTE:9 1.0 +(byte) plexShowSprite::plexFreeAdd1_ypos +(byte) plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 3.0 +(byte) plexShowSprite::plex_sprite_idx2 +(byte) plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp ZP_BYTE:14 0.5454545454545454 +(byte) plexShowSprite::xpos_idx +(byte) plexShowSprite::xpos_idx#0 reg byte a 4.0 +(byte) plexShowSprite::ypos +(void()) plexSort() +(label) plexSort::@1 +(label) plexSort::@2 +(label) plexSort::@3 +(label) plexSort::@4 +(label) plexSort::@5 +(label) plexSort::@6 +(label) plexSort::@7 +(label) plexSort::@return +(byte) plexSort::m +(byte) plexSort::m#1 m zp ZP_BYTE:3 151.5 +(byte) plexSort::m#2 m zp ZP_BYTE:3 42.08333333333333 +(byte) plexSort::nxt_idx +(byte) plexSort::nxt_idx#0 nxt_idx zp ZP_BYTE:11 30.299999999999997 +(byte) plexSort::nxt_y +(byte) plexSort::nxt_y#0 nxt_y zp ZP_BYTE:12 150.375 +(label) plexSort::plexFreePrepare1 +(bool~) plexSort::plexFreePrepare1_$0 +(label) plexSort::plexFreePrepare1_@1 +(label) plexSort::plexFreePrepare1_@2 +(byte) plexSort::plexFreePrepare1_s +(byte) plexSort::plexFreePrepare1_s#1 reg byte x 151.5 +(byte) plexSort::plexFreePrepare1_s#2 reg byte x 151.5 +(byte) plexSort::s +(byte) plexSort::s#1 reg byte x 1368.3333333333335 +(byte) plexSort::s#2 reg byte x 202.0 +(byte) plexSort::s#3 reg byte x 2052.5 +(byte~) plexSort::s#6 reg byte x 202.0 +(byte) plex_free_next +(byte) plex_free_next#0 plex_free_next zp ZP_BYTE:9 20.0 +(byte) plex_free_next#27 plex_free_next zp ZP_BYTE:9 2.8333333333333335 +(byte) plex_free_next#31 plex_free_next zp ZP_BYTE:9 4.0 +interrupt(KERNEL_MIN)(void()) plex_irq() +(byte~) plex_irq::$4 $4 zp ZP_BYTE:13 11.0 +(label) plex_irq::@1 +(label) plex_irq::@2 +(label) plex_irq::@3 +(label) plex_irq::@4 +(label) plex_irq::@5 +(label) plex_irq::@6 +(label) plex_irq::@7 +(label) plex_irq::@return +(label) plex_irq::plexFreeNextYpos1 +(byte) plex_irq::plexFreeNextYpos1_return +(byte) plex_irq::plexFreeNextYpos1_return#0 reg byte x 4.0 +(byte) plex_irq::rasterY +(byte) plex_show_idx +(byte) plex_show_idx#0 plex_show_idx zp ZP_BYTE:7 4.0 +(byte) plex_show_idx#1 plex_show_idx zp ZP_BYTE:7 20.0 +(byte) plex_show_idx#16 plex_show_idx zp ZP_BYTE:7 2.1666666666666665 +(byte) plex_show_idx#27 plex_show_idx zp ZP_BYTE:7 1.05 +(byte) plex_sprite_idx +(byte) plex_sprite_idx#0 plex_sprite_idx zp ZP_BYTE:6 4.0 +(byte) plex_sprite_idx#1 plex_sprite_idx zp ZP_BYTE:6 20.0 +(byte) plex_sprite_idx#25 plex_sprite_idx zp ZP_BYTE:6 1.0555555555555558 +(byte) plex_sprite_msb +(byte) plex_sprite_msb#0 plex_sprite_msb zp ZP_BYTE:8 4.0 +(byte) plex_sprite_msb#1 plex_sprite_msb zp ZP_BYTE:8 20.0 +(byte) plex_sprite_msb#17 plex_sprite_msb zp ZP_BYTE:8 2.142857142857143 +(byte) plex_sprite_msb#28 plex_sprite_msb zp ZP_BYTE:8 0.9047619047619048 +(byte) plex_sprite_msb#3 plex_sprite_msb zp ZP_BYTE:8 3.0 +(byte) plex_sprite_msb#4 plex_sprite_msb zp ZP_BYTE:8 4.0 + +zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] +reg byte x [ loop::y_idx#2 loop::y_idx#1 loop::y_idx#4 ] +reg byte y [ loop::sy#2 loop::sy#1 ] +zp ZP_BYTE:3 [ plexSort::m#2 plexSort::m#1 ] +reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ] +reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] +reg byte x [ init::sx#2 init::sx#1 ] +zp ZP_WORD:4 [ init::xp#2 init::xp#1 ] +reg byte x [ init::ss#2 init::ss#1 ] +reg byte x [ plexInit::i#2 plexInit::i#1 ] +zp ZP_BYTE:6 [ plex_sprite_idx#25 plex_sprite_idx#0 plexShowSprite::$6 plex_sprite_idx#1 ] +zp ZP_BYTE:7 [ plex_show_idx#27 plex_show_idx#0 plex_show_idx#16 plex_show_idx#1 ] +zp ZP_BYTE:8 [ plex_sprite_msb#28 plex_sprite_msb#0 plex_sprite_msb#17 plex_sprite_msb#3 plex_sprite_msb#4 plex_sprite_msb#1 ] +zp ZP_BYTE:9 [ plex_free_next#0 plex_free_next#27 plex_free_next#31 plexShowSprite::plexFreeAdd1_$2#0 ] +zp ZP_BOOL:10 [ framedone#3 framedone#12 framedone#17 framedone#5 ] +zp ZP_BYTE:11 [ plexSort::nxt_idx#0 ] +zp ZP_BYTE:12 [ plexSort::nxt_y#0 ] +reg byte x [ plexSort::s#2 ] +reg byte a [ init::$9 ] +reg byte x [ plex_irq::plexFreeNextYpos1_return#0 ] +zp ZP_BYTE:13 [ plex_irq::$4 ] +zp ZP_BYTE:14 [ plexShowSprite::plex_sprite_idx2#0 ] +reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ] +reg byte a [ plexShowSprite::plexFreeAdd1_$0#0 ] +reg byte x [ plexShowSprite::plexFreeAdd1_$1#0 ] +reg byte a [ plexShowSprite::xpos_idx#0 ] +reg byte x [ plexShowSprite::$11 ] +reg byte a [ plexShowSprite::$2 ] +reg byte a [ plexShowSprite::$3 ] +reg byte a [ plexShowSprite::$9 ] +reg byte x [ plexShowSprite::$5 ] diff --git a/src/test/ref/multiply-2s.sym b/src/test/ref/multiply-2s.sym index 1daabbadc..014c6b103 100644 --- a/src/test/ref/multiply-2s.sym +++ b/src/test/ref/multiply-2s.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$11 reg byte a 22.0 +(signed byte~) main::$16 reg byte a 11.0 +(byte~) main::$5 reg byte a 22.0 +(byte~) main::$8 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(signed byte) main::sb +(signed byte) main::sb#0 reg byte a 22.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$5 ] +reg byte a [ main::$8 ] +reg byte a [ main::$11 ] +reg byte a [ main::sb#0 ] +reg byte a [ main::$16 ] diff --git a/src/test/ref/no-recursion-heavy.sym b/src/test/ref/no-recursion-heavy.sym index 1daabbadc..3ecf2c1c9 100644 --- a/src/test/ref/no-recursion-heavy.sym +++ b/src/test/ref/no-recursion-heavy.sym @@ -1 +1,228 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) ba +(byte) ba#1 ba zp ZP_BYTE:2 22.0 +(byte) ba#17 ba zp ZP_BYTE:2 0.7924528301886792 +(byte) bb +(byte) bb#10 bb zp ZP_BYTE:3 2.0 +(byte~) bb#100 bb#100 zp ZP_BYTE:4 4.0 +(byte~) bb#101 bb#101 zp ZP_BYTE:4 4.0 +(byte~) bb#102 bb#102 zp ZP_BYTE:4 4.0 +(byte~) bb#103 bb#103 zp ZP_BYTE:4 4.0 +(byte~) bb#104 bb#104 zp ZP_BYTE:4 4.0 +(byte~) bb#105 bb#105 zp ZP_BYTE:4 4.0 +(byte~) bb#106 bb#106 zp ZP_BYTE:4 4.0 +(byte~) bb#107 bb#107 zp ZP_BYTE:4 4.0 +(byte~) bb#108 bb#108 zp ZP_BYTE:4 4.0 +(byte) bb#11 bb zp ZP_BYTE:3 2.0 +(byte) bb#13 bb zp ZP_BYTE:3 3.25 +(byte) bb#16 bb zp ZP_BYTE:3 5.0 +(byte) bb#18 bb zp ZP_BYTE:3 4.0 +(byte) bb#19 bb zp ZP_BYTE:3 4.0 +(byte) bb#20 bb zp ZP_BYTE:3 4.0 +(byte) bb#21 bb zp ZP_BYTE:3 4.0 +(byte) bb#22 bb zp ZP_BYTE:3 4.0 +(byte) bb#23 bb zp ZP_BYTE:3 4.0 +(byte) bb#24 bb zp ZP_BYTE:3 4.0 +(byte) bb#25 bb zp ZP_BYTE:3 4.0 +(byte) bb#27 bb#27 zp ZP_BYTE:4 0.8260869565217388 +(byte) bb#3 bb zp ZP_BYTE:3 2.0 +(byte) bb#4 bb zp ZP_BYTE:3 2.0 +(byte) bb#5 bb zp ZP_BYTE:3 2.0 +(byte) bb#50 bb zp ZP_BYTE:3 3.0 +(byte) bb#6 bb zp ZP_BYTE:3 2.0 +(byte) bb#66 bb zp ZP_BYTE:3 2.0 +(byte) bb#67 bb zp ZP_BYTE:3 2.0 +(byte) bb#68 bb zp ZP_BYTE:3 2.0 +(byte) bc +(byte) bc#100 reg byte x 2.0 +(byte) bc#101 reg byte x 2.0 +(byte) bc#102 reg byte x 2.0 +(byte) bc#103 reg byte x 2.0 +(byte) bc#104 reg byte x 2.0 +(byte) bc#105 reg byte x 2.0 +(byte) bc#106 reg byte x 2.0 +(byte) bc#107 reg byte x 2.0 +(byte) bc#108 reg byte x 2.0 +(byte) bc#109 reg byte x 2.0 +(byte) bc#110 reg byte x 2.0 +(byte) bc#111 reg byte x 2.0 +(byte) bc#112 reg byte x 2.0 +(byte) bc#113 bc zp ZP_BYTE:5 0.8260869565217388 +(byte) bc#13 reg byte x 3.75 +(byte~) bc#172 bc zp ZP_BYTE:5 4.0 +(byte~) bc#173 bc zp ZP_BYTE:5 4.0 +(byte~) bc#174 bc zp ZP_BYTE:5 4.0 +(byte~) bc#175 bc zp ZP_BYTE:5 4.0 +(byte~) bc#176 bc zp ZP_BYTE:5 4.0 +(byte~) bc#177 bc zp ZP_BYTE:5 4.0 +(byte~) bc#178 bc zp ZP_BYTE:5 4.0 +(byte~) bc#179 bc zp ZP_BYTE:5 4.0 +(byte~) bc#180 bc zp ZP_BYTE:5 4.0 +(byte) bc#2 reg byte x 3.0 +(byte) bc#24 reg byte x 1.8333333333333335 +(byte) bc#39 reg byte x 12.0 +(byte) bc#40 reg byte x 4.0 +(byte) bc#41 reg byte x 4.0 +(byte) bc#42 reg byte x 4.0 +(byte) bc#43 reg byte x 4.0 +(byte) bc#44 reg byte x 4.0 +(byte) bc#45 reg byte x 4.0 +(byte) bc#46 reg byte x 4.0 +(byte) bc#47 reg byte x 4.0 +(byte) bc#63 reg byte x 2.0 +(byte) bc#64 reg byte x 2.0 +(byte) bc#65 reg byte x 2.0 +(byte) bc#66 reg byte x 2.0 +(byte) bc#71 reg byte x 2.6666666666666665 +(byte) bc#83 reg byte x 3.0 +(byte) bd +(byte) bd#100 reg byte y 2.0 +(byte) bd#101 reg byte y 2.0 +(byte) bd#102 reg byte y 2.0 +(byte) bd#103 reg byte y 2.0 +(byte) bd#104 reg byte y 2.6666666666666665 +(byte) bd#106 reg byte y 12.0 +(byte) bd#107 reg byte y 4.0 +(byte) bd#108 reg byte y 4.0 +(byte) bd#109 reg byte y 4.0 +(byte) bd#110 reg byte y 4.0 +(byte) bd#111 reg byte y 4.0 +(byte) bd#112 reg byte y 4.0 +(byte) bd#113 reg byte y 4.0 +(byte) bd#114 reg byte y 4.0 +(byte) bd#116 reg byte y 3.0 +(byte) bd#117 reg byte a 1.9999999999999991 +(byte) bd#129 reg byte y 2.0 +(byte) bd#13 reg byte y 3.75 +(byte) bd#130 reg byte y 2.0 +(byte) bd#131 reg byte y 2.0 +(byte) bd#132 reg byte y 2.0 +(byte) bd#133 reg byte y 2.0 +(byte) bd#134 reg byte y 2.0 +(byte) bd#135 reg byte y 2.0 +(byte) bd#136 reg byte y 2.0 +(byte) bd#137 reg byte y 6.0 +(byte) bd#138 reg byte y 2.0 +(byte) bd#139 reg byte y 2.0 +(byte) bd#140 reg byte y 2.0 +(byte) bd#141 reg byte y 2.0 +(byte) bd#146 reg byte y 2.0 +(byte) bd#147 reg byte y 2.0 +(byte) bd#148 reg byte y 2.0 +(byte) bd#149 reg byte y 2.0 +(byte) bd#150 reg byte y 2.0 +(byte) bd#151 reg byte y 2.0 +(byte) bd#152 reg byte y 2.0 +(byte) bd#153 reg byte y 2.0 +(byte) bd#154 reg byte y 2.0 +(byte) bd#2 reg byte y 3.0 +(byte~) bd#235 reg byte a 4.0 +(byte~) bd#236 reg byte a 4.0 +(byte~) bd#237 reg byte a 4.0 +(byte~) bd#238 reg byte a 4.0 +(byte~) bd#239 reg byte a 4.0 +(byte) bd#24 reg byte y 2.0 +(byte~) bd#240 reg byte a 4.0 +(byte~) bd#241 reg byte a 4.0 +(byte~) bd#242 reg byte a 4.0 +(byte~) bd#243 reg byte a 4.0 +(byte) bd#35 reg byte y 1.8333333333333335 +(byte) bd#93 reg byte y 2.6666666666666665 +(void()) f0() +(label) f0::@1 +(label) f0::@10 +(label) f0::@11 +(label) f0::@12 +(label) f0::@13 +(label) f0::@14 +(label) f0::@15 +(label) f0::@16 +(label) f0::@17 +(label) f0::@18 +(label) f0::@19 +(label) f0::@2 +(label) f0::@3 +(label) f0::@4 +(label) f0::@5 +(label) f0::@6 +(label) f0::@7 +(label) f0::@8 +(label) f0::@9 +(label) f0::@return +(void()) fa() +(label) fa::@1 +(label) fa::@10 +(label) fa::@11 +(label) fa::@12 +(label) fa::@13 +(label) fa::@14 +(label) fa::@15 +(label) fa::@16 +(label) fa::@17 +(label) fa::@18 +(label) fa::@19 +(label) fa::@2 +(label) fa::@3 +(label) fa::@4 +(label) fa::@5 +(label) fa::@6 +(label) fa::@7 +(label) fa::@8 +(label) fa::@9 +(label) fa::@return +(void()) fb() +(label) fb::@1 +(label) fb::@10 +(label) fb::@11 +(label) fb::@12 +(label) fb::@13 +(label) fb::@14 +(label) fb::@15 +(label) fb::@16 +(label) fb::@17 +(label) fb::@18 +(label) fb::@19 +(label) fb::@2 +(label) fb::@3 +(label) fb::@4 +(label) fb::@5 +(label) fb::@6 +(label) fb::@7 +(label) fb::@8 +(label) fb::@9 +(label) fb::@return +(void()) fc() +(label) fc::@1 +(label) fc::@10 +(label) fc::@11 +(label) fc::@12 +(label) fc::@13 +(label) fc::@14 +(label) fc::@15 +(label) fc::@16 +(label) fc::@17 +(label) fc::@18 +(label) fc::@19 +(label) fc::@2 +(label) fc::@3 +(label) fc::@4 +(label) fc::@5 +(label) fc::@6 +(label) fc::@7 +(label) fc::@8 +(label) fc::@9 +(label) fc::@return +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 + +zp ZP_BYTE:2 [ ba#17 ba#1 ] +zp ZP_BYTE:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] +zp ZP_BYTE:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] +reg byte x [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc#108 bc#43 bc#107 bc#42 bc#41 bc#40 bc#39 bc#71 bc#103 bc#102 bc#101 bc#100 bc#66 bc#65 bc#64 bc#63 bc#2 bc#13 bc#24 bc#104 bc#105 bc#106 ] +zp ZP_BYTE:5 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] +reg byte y [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] +reg byte a [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] diff --git a/src/test/ref/noop-cast-elimination.sym b/src/test/ref/noop-cast-elimination.sym index 1daabbadc..a906701c4 100644 --- a/src/test/ref/noop-cast-elimination.sym +++ b/src/test/ref/noop-cast-elimination.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 8.25 +(signed word*) main::screen +(const signed word*) main::screen#0 screen = (signed word*) 1024 +(signed word) main::sw +(signed word) main::sw#1 sw zp ZP_WORD:2 6.6000000000000005 +(signed word) main::sw#2 sw zp ZP_WORD:2 22.0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::sw#2 main::sw#1 ] +reg byte a [ main::$2 ] diff --git a/src/test/ref/norom-charset.sym b/src/test/ref/norom-charset.sym index 1daabbadc..aa7a32957 100644 --- a/src/test/ref/norom-charset.sym +++ b/src/test/ref/norom-charset.sym @@ -1 +1,60 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) CHARSET +(const byte*) CHARSET#0 CHARSET = (byte*) 12288 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) VIC_MEMORY +(const byte*) VIC_MEMORY#0 VIC_MEMORY = (byte*) 53272 +(word[]) charset_spec_row +(const word[]) charset_spec_row#0 charset_spec_row = { (word) $f7da, (word) $f7de, (word) $f24e, (word) $d6de } +(void()) gen_char3((byte*) gen_char3::dst , (word) gen_char3::spec) +(byte~) gen_char3::$0 reg byte a 2002.0 +(byte~) gen_char3::$1 reg byte a 2002.0 +(label) gen_char3::@1 +(label) gen_char3::@2 +(label) gen_char3::@3 +(label) gen_char3::@4 +(label) gen_char3::@5 +(label) gen_char3::@return +(byte) gen_char3::b +(byte) gen_char3::b#1 reg byte y 525.75 +(byte) gen_char3::b#2 reg byte y 2002.0 +(byte) gen_char3::b#3 reg byte y 3003.0 +(byte) gen_char3::b#4 reg byte y 750.75 +(byte) gen_char3::c +(byte) gen_char3::c#1 reg byte x 1501.5 +(byte) gen_char3::c#2 reg byte x 250.25 +(byte*) gen_char3::dst +(byte*) gen_char3::dst#0 dst zp ZP_WORD:3 6.588235294117648 +(byte) gen_char3::r +(byte) gen_char3::r#1 r zp ZP_BYTE:5 151.5 +(byte) gen_char3::r#6 r zp ZP_BYTE:5 25.25 +(word) gen_char3::spec +(word) gen_char3::spec#0 spec zp ZP_WORD:6 6.5 +(word) gen_char3::spec#1 spec zp ZP_WORD:6 350.5 +(word) gen_char3::spec#2 spec zp ZP_WORD:6 443.42857142857144 +(word) gen_char3::spec#4 spec zp ZP_WORD:6 204.0 +(void()) main() +(byte~) main::$10 reg byte x 11.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::c +(byte) main::c#1 c zp ZP_BYTE:2 16.5 +(byte) main::c#2 c zp ZP_BYTE:2 5.5 +(byte*) main::charset +(byte*) main::charset#1 charset zp ZP_WORD:3 7.333333333333333 +(byte*) main::charset#2 charset zp ZP_WORD:3 6.6000000000000005 + +zp ZP_BYTE:2 [ main::c#2 main::c#1 ] +zp ZP_WORD:3 [ main::charset#2 main::charset#1 gen_char3::dst#0 ] +zp ZP_BYTE:5 [ gen_char3::r#6 gen_char3::r#1 ] +zp ZP_WORD:6 [ gen_char3::spec#2 gen_char3::spec#4 gen_char3::spec#0 gen_char3::spec#1 ] +reg byte x [ gen_char3::c#2 gen_char3::c#1 ] +reg byte y [ gen_char3::b#3 gen_char3::b#4 gen_char3::b#1 gen_char3::b#2 ] +reg byte x [ main::$10 ] +reg byte a [ gen_char3::$0 ] +reg byte a [ gen_char3::$1 ] diff --git a/src/test/ref/number-conversion.sym b/src/test/ref/number-conversion.sym index 1daabbadc..b8fbe167e 100644 --- a/src/test/ref/number-conversion.sym +++ b/src/test/ref/number-conversion.sym @@ -1 +1,69 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) COLS +(const byte*) COLS#0 COLS = (byte*)(word) $d800 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*)(word) $400 +(const byte) TYPEID_BYTE TYPEID_BYTE = (number) 1 +(const byte) TYPEID_DWORD TYPEID_DWORD = (number) 5 +(const byte) TYPEID_SIGNED_BYTE TYPEID_SIGNED_BYTE = (number) 2 +(const byte) TYPEID_SIGNED_DWORD TYPEID_SIGNED_DWORD = (number) 6 +(const byte) TYPEID_SIGNED_WORD TYPEID_SIGNED_WORD = (number) 4 +(const byte) TYPEID_WORD TYPEID_WORD = (number) 3 +(void()) assertType((byte) assertType::t1 , (byte) assertType::t2) +(label) assertType::@1 +(label) assertType::@2 +(label) assertType::@3 +(label) assertType::@return +(byte) assertType::t1 +(byte) assertType::t1#35 reg byte y 1.0 +(byte) assertType::t2 +(byte) assertType::t2#35 t2 zp ZP_BYTE:2 2.0 +(byte) idx +(byte) idx#40 reg byte x 0.9999999999999993 +(byte) idx#79 reg byte x 14.400000000000007 +(void()) main() +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@18 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@22 +(label) main::@23 +(label) main::@24 +(label) main::@25 +(label) main::@26 +(label) main::@27 +(label) main::@28 +(label) main::@29 +(label) main::@3 +(label) main::@30 +(label) main::@31 +(label) main::@32 +(label) main::@33 +(label) main::@34 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return + +reg byte y [ assertType::t1#35 ] +zp ZP_BYTE:2 [ assertType::t2#35 ] +reg byte x [ idx#79 idx#40 ] diff --git a/src/test/ref/number-inference-sum.sym b/src/test/ref/number-inference-sum.sym index 1daabbadc..bb587971e 100644 --- a/src/test/ref/number-inference-sum.sym +++ b/src/test/ref/number-inference-sum.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::RED +(const byte) main::RED#0 RED = (byte) 2 +(byte) main::b1 +(const byte) main::b1#0 b1 = (byte) $fa +(byte) main::b2 +(const byte) main::b2#0 b2 = (const byte) main::b1#0+(byte) $fa +(byte*) main::bgcol +(const byte*) main::bgcol#0 bgcol = (byte*) 53280 +(word*) main::screen +(const word*) main::screen#0 screen = (word*) 1024 +(word) main::w +(const word) main::w#0 w = (const byte) main::b2#0+(byte) 1 + diff --git a/src/test/ref/number-type.sym b/src/test/ref/number-type.sym index 1daabbadc..e2c5d1418 100644 --- a/src/test/ref/number-type.sym +++ b/src/test/ref/number-type.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(void()) testBytes() +(label) testBytes::@return +(byte*) testBytes::SCREEN +(const byte*) testBytes::SCREEN#0 SCREEN = (byte*) 1024 +(byte) testBytes::idx +(void()) testSBytes() +(label) testSBytes::@return +(signed byte*) testSBytes::SCREEN +(const signed byte*) testSBytes::SCREEN#0 SCREEN = (signed byte*) 1064 +(byte) testSBytes::idx + diff --git a/src/test/ref/operator-lohi-problem-1.sym b/src/test/ref/operator-lohi-problem-1.sym index 1daabbadc..d84b14a30 100644 --- a/src/test/ref/operator-lohi-problem-1.sym +++ b/src/test/ref/operator-lohi-problem-1.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(dword) DVAL +(const dword) DVAL#0 DVAL = (dword) $20000 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/operator-lohi-problem.sym b/src/test/ref/operator-lohi-problem.sym index 1daabbadc..5b5233f4d 100644 --- a/src/test/ref/operator-lohi-problem.sym +++ b/src/test/ref/operator-lohi-problem.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return +(dword) main::dw +(const dword) main::dw#0 dw = (word) $2000 +(word) main::w1 +(word) main::w2 +(const word) main::w2#0 w2 = <(const dword) main::dw#0+(byte) 1 + diff --git a/src/test/ref/overlap-allocation-2.sym b/src/test/ref/overlap-allocation-2.sym index 1daabbadc..deda30fb3 100644 --- a/src/test/ref/overlap-allocation-2.sym +++ b/src/test/ref/overlap-allocation-2.sym @@ -1 +1,35 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) line((byte) line::l) +(label) line::@1 +(label) line::@return +(byte) line::l +(byte) line::l#0 reg byte x 22.0 +(byte) line::l#1 reg byte x 22.0 +(byte) line::l#2 reg byte x 8.666666666666666 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 11.0 +(byte) main::j +(byte) main::j#1 reg byte y 16.5 +(byte) main::j#2 reg byte y 11.0 +(void()) plot((byte) plot::x) +(label) plot::@return +(byte) plot::x +(byte) plot::x#0 reg byte x 4.0 +(byte) plot::x#1 reg byte x 4.0 +(byte) plot::x#2 reg byte x 6.0 + +reg byte y [ main::i#2 main::i#1 ] +reg byte y [ main::j#2 main::j#1 ] +reg byte x [ line::l#2 line::l#0 line::l#1 ] +reg byte x [ plot::x#2 plot::x#0 plot::x#1 ] diff --git a/src/test/ref/overlap-allocation.sym b/src/test/ref/overlap-allocation.sym index 1daabbadc..c2ac5149d 100644 --- a/src/test/ref/overlap-allocation.sym +++ b/src/test/ref/overlap-allocation.sym @@ -1 +1,34 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(byte) main::j +(byte) main::j#1 reg byte x 16.5 +(byte) main::j#2 reg byte x 11.0 +(byte) main::k +(byte) main::k#1 reg byte x 16.5 +(byte) main::k#2 reg byte x 11.0 +(void()) plot((byte) plot::x) +(label) plot::@return +(byte) plot::x +(byte) plot::x#0 reg byte x 22.0 +(byte) plot::x#1 reg byte x 22.0 +(byte) plot::x#2 reg byte x 22.0 +(byte) plot::x#3 reg byte x 35.0 + +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ main::j#2 main::j#1 ] +reg byte x [ main::k#2 main::k#1 ] +reg byte x [ plot::x#3 plot::x#0 plot::x#1 plot::x#2 ] diff --git a/src/test/ref/plus-0.sym b/src/test/ref/plus-0.sym index 1daabbadc..36922b3db 100644 --- a/src/test/ref/plus-0.sym +++ b/src/test/ref/plus-0.sym @@ -1 +1,29 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) fill((byte*) fill::screen , (byte) fill::ch) +(byte*~) fill::$5 $5 zp ZP_WORD:4 22.0 +(byte*~) fill::$7 $7 zp ZP_WORD:6 22.0 +(label) fill::@1 +(label) fill::@2 +(label) fill::@2_1 +(label) fill::@2_2 +(label) fill::@3 +(label) fill::@return +(byte) fill::ch +(byte) fill::ch#4 reg byte x 3.666666666666667 +(byte) fill::i +(byte) fill::i#1 reg byte y 16.5 +(byte) fill::i#4 reg byte y 9.166666666666666 +(byte) fill::j +(byte*) fill::screen +(byte*) fill::screen#4 screen zp ZP_WORD:2 3.666666666666667 +(void()) main() +(label) main::@1 +(label) main::@return + +zp ZP_WORD:2 [ fill::screen#4 ] +reg byte x [ fill::ch#4 ] +reg byte y [ fill::i#4 fill::i#1 ] +zp ZP_WORD:4 [ fill::$5 ] +zp ZP_WORD:6 [ fill::$7 ] diff --git a/src/test/ref/pointer-cast-2.sym b/src/test/ref/pointer-cast-2.sym index 1daabbadc..5b8781fab 100644 --- a/src/test/ref/pointer-cast-2.sym +++ b/src/test/ref/pointer-cast-2.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(signed byte) main::sb +(signed byte) main::sb#0 sb zp ZP_BYTE:3 2.0 +(signed byte*) main::sb_ptr +(const signed byte*) main::sb_ptr#0 sb_ptr = (signed byte*)&(byte) main::ub#0 +(signed byte*) main::sb_screen +(const signed byte*) main::sb_screen#0 sb_screen = (signed byte*) 1064 +(byte) main::ub +(byte) main::ub#0 ub zp ZP_BYTE:2 2.0 +(byte*) main::ub_ptr +(const byte*) main::ub_ptr#0 ub_ptr = (byte*)&(signed byte) main::sb#0 +(byte*) main::ub_screen +(const byte*) main::ub_screen#0 ub_screen = (byte*) 1024 + +zp ZP_BYTE:2 [ main::ub#0 ] +zp ZP_BYTE:3 [ main::sb#0 ] diff --git a/src/test/ref/pointer-cast-3.sym b/src/test/ref/pointer-cast-3.sym index 1daabbadc..39decd425 100644 --- a/src/test/ref/pointer-cast-3.sym +++ b/src/test/ref/pointer-cast-3.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(signed byte) main::sb +(const signed byte) main::sb#0 sb = (signed byte) $ff +(signed byte*) main::sb_screen +(const signed byte*) main::sb_screen#0 sb_screen = (signed byte*) 1024 + diff --git a/src/test/ref/pointer-cast-4.sym b/src/test/ref/pointer-cast-4.sym index 1daabbadc..1a3d44bb1 100644 --- a/src/test/ref/pointer-cast-4.sym +++ b/src/test/ref/pointer-cast-4.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(word~) main::$1 $1 zp ZP_WORD:2 11.0 +(byte~) main::$3 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::bscreen +(const byte*) main::bscreen#0 bscreen = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 8.25 +(word*) main::wscreen +(const word*) main::wscreen#0 wscreen = (word*)(const byte*) main::bscreen#0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::$1 ] +reg byte a [ main::$3 ] diff --git a/src/test/ref/pointer-cast.sym b/src/test/ref/pointer-cast.sym index 1daabbadc..aa96f782c 100644 --- a/src/test/ref/pointer-cast.sym +++ b/src/test/ref/pointer-cast.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2 +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(label) main::@return +(signed byte) sb +(const signed byte) sb#0 sb = (signed byte) -$29 +(signed byte*) sb_screen +(const signed byte*) sb_screen#0 sb_screen = (signed byte*) 1064 +(signed word) sw +(const signed word) sw#0 sw = (signed word) -$3000 +(signed word*) sw_screen +(const signed word*) sw_screen#0 sw_screen = (signed word*) 1144 +(byte) ub +(const byte) ub#0 ub = (byte) $29 +(byte*) ub_screen +(const byte*) ub_screen#0 ub_screen = (byte*) 1024 +(word) uw +(const word) uw#0 uw = (word) $3000 +(word*) uw_screen +(const word*) uw_screen#0 uw_screen = (word*) 1104 + diff --git a/src/test/ref/pointer-plus-0.sym b/src/test/ref/pointer-plus-0.sym index 1daabbadc..f51a312fd 100644 --- a/src/test/ref/pointer-plus-0.sym +++ b/src/test/ref/pointer-plus-0.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*()) first((byte*) first::msg) +(label) first::@return +(byte*) first::msg +(byte*) first::return +(byte*) first::return#0 return zp ZP_WORD:2 4.0 +(byte*) first::return#1 return zp ZP_WORD:2 4.0 +(byte*) first::return#2 return zp ZP_WORD:2 1.0 +(void()) main() +(byte*~) main::$0 $0 zp ZP_WORD:2 4.0 +(byte*~) main::$2 $2 zp ZP_WORD:2 4.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) msg1 +(const byte[]) msg1#0 msg1 = (string) "hello world!@" +(byte[]) msg2 +(const byte[]) msg2#0 msg2 = (string) "goodbye sky?@" + +zp ZP_WORD:2 [ first::return#2 first::return#0 first::return#1 main::$0 main::$2 ] diff --git a/src/test/ref/pointer-pointer-1.sym b/src/test/ref/pointer-pointer-1.sym index 1daabbadc..f9385859a 100644 --- a/src/test/ref/pointer-pointer-1.sym +++ b/src/test/ref/pointer-pointer-1.sym @@ -1 +1,16 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b +(byte) main::b#0 b zp ZP_BYTE:2 2.0 +(byte*) main::pb +(byte*) main::pb#0 pb zp ZP_WORD:3 20.0 +(byte**) main::ppb +(const byte**) main::ppb#0 ppb = &(byte*) main::pb#0 + +zp ZP_BYTE:2 [ main::b#0 ] +zp ZP_WORD:3 [ main::pb#0 ] diff --git a/src/test/ref/pointer-pointer-2.sym b/src/test/ref/pointer-pointer-2.sym index 1daabbadc..d52c58270 100644 --- a/src/test/ref/pointer-pointer-2.sym +++ b/src/test/ref/pointer-pointer-2.sym @@ -1 +1,40 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#5 reg byte x 3.142857142857143 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:5 101.0 +(byte*) main::screen#2 screen zp ZP_WORD:5 65.0 +(byte*) main::screen#4 screen zp ZP_WORD:5 11.0 +(byte*) main::text +(byte*) main::text#1 text zp ZP_WORD:2 202.0 +(byte*) main::text#2 text zp ZP_WORD:2 11.0 +(byte*) main::text#3 text zp ZP_WORD:2 70.99999999999999 +(void()) nexttext((byte**) nexttext::textp) +(byte~) nexttext::$0 reg byte a 2.0 +(label) nexttext::@1 +(label) nexttext::@2 +(label) nexttext::@return +(byte**) nexttext::textp +(const byte**) nexttext::textp#0 textp = &(byte*) main::text#2 +(byte[]) text1 +(const byte[]) text1#0 text1 = (string) "camelot @" +(byte[]) text2 +(const byte[]) text2#0 text2 = (string) "rex @" +(byte) textid +(byte) textid#11 textid zp ZP_BYTE:4 7.5 +(byte) textid#13 textid zp ZP_BYTE:4 1.0 + +zp ZP_WORD:2 [ main::text#2 main::text#3 main::text#1 ] +zp ZP_BYTE:4 [ textid#11 textid#13 ] +zp ZP_WORD:5 [ main::screen#4 main::screen#2 main::screen#1 ] +reg byte x [ main::i#5 main::i#1 ] +reg byte a [ nexttext::$0 ] diff --git a/src/test/ref/pointer-pointer-3.sym b/src/test/ref/pointer-pointer-3.sym index 1daabbadc..66809fc12 100644 --- a/src/test/ref/pointer-pointer-3.sym +++ b/src/test/ref/pointer-pointer-3.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) screen +(byte*) screen#0 screen zp ZP_WORD:4 0.6666666666666666 +(byte*) screen1 +(const byte*) screen1#0 screen1 = (byte*) 1024 +(byte*) screen2 +(const byte*) screen2#0 screen2 = (byte*)(number) $400+(number) $28 +(void()) setscreen((byte**) setscreen::screen , (byte*) setscreen::val) +(label) setscreen::@return +(byte**) setscreen::screen +(byte*) setscreen::val +(byte*) setscreen::val#2 val zp ZP_WORD:2 2.0 + +zp ZP_WORD:2 [ setscreen::val#2 ] +zp ZP_WORD:4 [ screen#0 ] diff --git a/src/test/ref/print-problem.sym b/src/test/ref/print-problem.sym index 1daabbadc..bdad19d46 100644 --- a/src/test/ref/print-problem.sym +++ b/src/test/ref/print-problem.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) ch +(byte) line +(byte) line#12 reg byte a 6.0 +(byte) line#13 reg byte a 1.25 +(void()) ln() +(label) ln::@return +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return + +reg byte a [ line#12 line#13 ] diff --git a/src/test/ref/printmsg.sym b/src/test/ref/printmsg.sym index 1daabbadc..8349980a4 100644 --- a/src/test/ref/printmsg.sym +++ b/src/test/ref/printmsg.sym @@ -1 +1,42 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte[]) msg +(const byte[]) msg#0 msg = (string) "hello world! @" +(byte[]) msg2 +(const byte[]) msg2#0 msg2 = (string) "hello c64! @" +(byte[]) msg3 +(const byte[]) msg3#0 msg3 = (string) "hello 2017! @" +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:6 11.0 +(byte*) print_char_cursor#13 print_char_cursor zp ZP_WORD:6 3.2857142857142856 +(byte*) print_char_cursor#29 print_char_cursor zp ZP_WORD:6 6.0 +(byte*~) print_char_cursor#31 print_char_cursor zp ZP_WORD:6 4.0 +(byte*~) print_char_cursor#32 print_char_cursor zp ZP_WORD:6 4.0 +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 3.7272727272727275 +(byte*) print_line_cursor#16 print_line_cursor zp ZP_WORD:2 6.0 +(byte*) print_line_cursor#8 print_line_cursor zp ZP_WORD:2 24.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:4 22.0 +(byte*) print_str::str#4 str zp ZP_WORD:4 11.5 +(byte*) print_str::str#6 str zp ZP_WORD:4 2.0 + +zp ZP_WORD:2 [ print_line_cursor#8 print_line_cursor#16 print_line_cursor#1 ] +zp ZP_WORD:4 [ print_str::str#4 print_str::str#6 print_str::str#0 ] +zp ZP_WORD:6 [ print_char_cursor#13 print_char_cursor#29 print_char_cursor#31 print_char_cursor#32 print_char_cursor#1 ] diff --git a/src/test/ref/ptr-complex.sym b/src/test/ref/ptr-complex.sym index 1daabbadc..ebfdb2371 100644 --- a/src/test/ref/ptr-complex.sym +++ b/src/test/ref/ptr-complex.sym @@ -1 +1,23 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte*) main::BGCOL +(const byte*) main::BGCOL#0 BGCOL = (byte*) 53280 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte) main::j +(byte) main::j#1 reg byte x 16.5 +(byte) main::j#2 reg byte x 22.0 +(byte*) main::sc2 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/ptrptr-optimize-0.sym b/src/test/ref/ptrptr-optimize-0.sym index 1daabbadc..2440209f5 100644 --- a/src/test/ref/ptrptr-optimize-0.sym +++ b/src/test/ref/ptrptr-optimize-0.sym @@ -1 +1,11 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte**) main::pscreen +(const byte**) main::pscreen#0 pscreen = &(byte*) main::screen#0 +(byte*) main::screen +(byte*) main::screen#0 screen zp ZP_WORD:2 20.0 + +zp ZP_WORD:2 [ main::screen#0 ] diff --git a/src/test/ref/ptrptr-optimize-1.sym b/src/test/ref/ptrptr-optimize-1.sym index 1daabbadc..16b6b8136 100644 --- a/src/test/ref/ptrptr-optimize-1.sym +++ b/src/test/ref/ptrptr-optimize-1.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte**) main::pscreen +(const byte**) main::pscreen#0 pscreen = &(byte*) main::screen#0 +(byte*) main::screen +(byte*) main::screen#0 screen zp ZP_WORD:2 20.0 +(void()) sub((byte) sub::ch , (byte**) sub::dst) +(label) sub::@return +(byte) sub::ch +(byte) sub::ch#2 reg byte a 2.0 +(byte**) sub::dst + +reg byte a [ sub::ch#2 ] +zp ZP_WORD:2 [ main::screen#0 ] diff --git a/src/test/ref/ptrptr-optimize-2.sym b/src/test/ref/ptrptr-optimize-2.sym index 1daabbadc..9f4c2b879 100644 --- a/src/test/ref/ptrptr-optimize-2.sym +++ b/src/test/ref/ptrptr-optimize-2.sym @@ -1 +1,16 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::screen +(byte*) main::screen#0 screen zp ZP_WORD:2 0.2857142857142857 +(void()) sub((byte) sub::ch , (byte**) sub::dst) +(label) sub::@return +(byte) sub::ch +(byte) sub::ch#2 reg byte a 2.0 +(byte**) sub::dst + +reg byte a [ sub::ch#2 ] +zp ZP_WORD:2 [ main::screen#0 ] diff --git a/src/test/ref/ptrtest.sym b/src/test/ref/ptrtest.sym index 1daabbadc..f650d2c48 100644 --- a/src/test/ref/ptrtest.sym +++ b/src/test/ref/ptrtest.sym @@ -1 +1,70 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) lvalue() +(label) lvalue::@1 +(label) lvalue::@2 +(label) lvalue::@return +(byte[$400]) lvalue::SCREEN +(const byte[$400]) lvalue::SCREEN#0 SCREEN = (byte*) 1024 +(byte) lvalue::i +(byte) lvalue::i#1 reg byte x 22.0 +(byte) lvalue::i#2 reg byte x 14.666666666666666 +(void()) lvaluevar() +(label) lvaluevar::@1 +(label) lvaluevar::@2 +(label) lvaluevar::@return +(byte) lvaluevar::b +(const byte) lvaluevar::b#0 b = (byte) 4 +(byte) lvaluevar::i +(byte) lvaluevar::i#1 reg byte x 22.0 +(byte) lvaluevar::i#2 reg byte x 8.25 +(byte*) lvaluevar::screen +(byte*) lvaluevar::screen#1 screen zp ZP_WORD:2 11.0 +(byte*) lvaluevar::screen#2 screen zp ZP_WORD:2 11.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(void()) rvalue() +(label) rvalue::@1 +(label) rvalue::@2 +(label) rvalue::@3 +(label) rvalue::@return +(byte[$400]) rvalue::SCREEN +(const byte[$400]) rvalue::SCREEN#0 SCREEN = (byte*) 1024 +(byte) rvalue::b +(byte) rvalue::b#1 reg byte a 4.0 +(byte) rvalue::b#2 reg byte a 11.0 +(byte) rvalue::b#3 reg byte a 7.5 +(byte) rvalue::i +(byte) rvalue::i#1 reg byte x 22.0 +(byte) rvalue::i#2 reg byte x 14.666666666666666 +(byte*) rvalue::screen2 +(const byte*) rvalue::screen2#0 screen2 = (byte*) 1024 +(void()) rvaluevar() +(label) rvaluevar::@1 +(label) rvaluevar::@2 +(label) rvaluevar::@3 +(label) rvaluevar::@return +(byte) rvaluevar::b +(byte) rvaluevar::b#1 reg byte y 7.333333333333333 +(byte) rvaluevar::b#2 reg byte y 6.5 +(byte) rvaluevar::i +(byte) rvaluevar::i#1 reg byte x 22.0 +(byte) rvaluevar::i#2 reg byte x 8.25 +(byte*) rvaluevar::screen +(byte*) rvaluevar::screen#1 screen zp ZP_WORD:4 11.0 +(byte*) rvaluevar::screen#2 screen zp ZP_WORD:4 11.0 +(byte*) rvaluevar::screen2 +(const byte*) rvaluevar::screen2#0 screen2 = (byte*) 1024 + +reg byte x [ lvaluevar::i#2 lvaluevar::i#1 ] +zp ZP_WORD:2 [ lvaluevar::screen#2 lvaluevar::screen#1 ] +reg byte x [ rvaluevar::i#2 rvaluevar::i#1 ] +zp ZP_WORD:4 [ rvaluevar::screen#2 rvaluevar::screen#1 ] +reg byte y [ rvaluevar::b#2 rvaluevar::b#1 ] +reg byte x [ rvalue::i#2 rvalue::i#1 ] +reg byte a [ rvalue::b#3 rvalue::b#1 rvalue::b#2 ] +reg byte x [ lvalue::i#2 lvalue::i#1 ] diff --git a/src/test/ref/ptrtestmin.sym b/src/test/ref/ptrtestmin.sym index 1daabbadc..ece81cc5c 100644 --- a/src/test/ref/ptrtestmin.sym +++ b/src/test/ref/ptrtestmin.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte[$400]) main::SCREEN +(const byte[$400]) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b +(byte) main::b#1 reg byte a 11.0 +(byte) main::b#2 reg byte a 6.5 +(byte) main::i +(byte) main::i#1 reg byte x 22.0 +(byte) main::i#2 reg byte x 14.666666666666666 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::b#2 main::b#1 ] diff --git a/src/test/ref/reserve-zp-global.sym b/src/test/ref/reserve-zp-global.sym index 1daabbadc..5d37f5929 100644 --- a/src/test/ref/reserve-zp-global.sym +++ b/src/test/ref/reserve-zp-global.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#0 i zp ZP_BYTE:4 4.0 +(byte) main::i#1 i zp ZP_BYTE:4 16.5 +(byte) main::i#2 i zp ZP_BYTE:4 7.666666666666666 +(byte()) sub1((byte) sub1::i) +(label) sub1::@return +(byte) sub1::i +(byte) sub1::i#0 reg byte a 15.0 +(byte) sub1::return +(byte) sub1::return#0 reg byte a 22.0 +(byte) sub1::return#1 reg byte a 4.333333333333333 + +zp ZP_BYTE:4 [ main::i#2 main::i#0 main::i#1 ] +reg byte a [ sub1::i#0 ] +reg byte a [ sub1::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ sub1::return#1 ] diff --git a/src/test/ref/reserve-zp-procedure-1.sym b/src/test/ref/reserve-zp-procedure-1.sym index 1daabbadc..3ca7ef2ac 100644 --- a/src/test/ref/reserve-zp-procedure-1.sym +++ b/src/test/ref/reserve-zp-procedure-1.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#0 i zp ZP_BYTE:5 4.0 +(byte) main::i#1 i zp ZP_BYTE:5 16.5 +(byte) main::i#2 i zp ZP_BYTE:5 7.666666666666666 +(byte()) sub1((byte) sub1::i) +(label) sub1::@return +(byte) sub1::i +(byte) sub1::i#0 reg byte a 15.0 +(byte) sub1::return +(byte) sub1::return#0 reg byte a 22.0 +(byte) sub1::return#1 reg byte a 4.333333333333333 + +zp ZP_BYTE:5 [ main::i#2 main::i#0 main::i#1 ] +reg byte a [ sub1::i#0 ] +reg byte a [ sub1::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ sub1::return#1 ] diff --git a/src/test/ref/reserve-zp-procedure-2.sym b/src/test/ref/reserve-zp-procedure-2.sym index 1daabbadc..6ac9e9187 100644 --- a/src/test/ref/reserve-zp-procedure-2.sym +++ b/src/test/ref/reserve-zp-procedure-2.sym @@ -1 +1,42 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#0 i zp ZP_BYTE:8 4.0 +(byte) main::i#1 i zp ZP_BYTE:8 16.5 +(byte) main::i#2 i zp ZP_BYTE:8 6.181818181818182 +(byte()) sub1((byte) sub1::i) +(label) sub1::@return +(byte) sub1::i +(byte) sub1::i#0 reg byte a 15.0 +(byte) sub1::return +(byte) sub1::return#0 reg byte a 22.0 +(byte) sub1::return#1 reg byte a 4.333333333333333 +(byte()) sub2((byte) sub2::i) +(byte~) sub2::$0 reg byte a 4.0 +(label) sub2::@return +(byte) sub2::i +(byte) sub2::i#0 reg byte x 8.5 +(byte) sub2::return +(byte) sub2::return#0 reg byte a 22.0 +(byte) sub2::return#1 reg byte a 4.333333333333333 + +zp ZP_BYTE:8 [ main::i#2 main::i#0 main::i#1 ] +reg byte a [ sub1::i#0 ] +reg byte a [ sub1::return#0 ] +reg byte a [ main::$0 ] +reg byte x [ sub2::i#0 ] +reg byte a [ sub2::return#0 ] +reg byte a [ main::$2 ] +reg byte a [ sub2::$0 ] +reg byte a [ sub2::return#1 ] +reg byte a [ sub1::return#1 ] diff --git a/src/test/ref/reserve-zp-procedure-3.sym b/src/test/ref/reserve-zp-procedure-3.sym index 1daabbadc..3ca7ef2ac 100644 --- a/src/test/ref/reserve-zp-procedure-3.sym +++ b/src/test/ref/reserve-zp-procedure-3.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#0 i zp ZP_BYTE:5 4.0 +(byte) main::i#1 i zp ZP_BYTE:5 16.5 +(byte) main::i#2 i zp ZP_BYTE:5 7.666666666666666 +(byte()) sub1((byte) sub1::i) +(label) sub1::@return +(byte) sub1::i +(byte) sub1::i#0 reg byte a 15.0 +(byte) sub1::return +(byte) sub1::return#0 reg byte a 22.0 +(byte) sub1::return#1 reg byte a 4.333333333333333 + +zp ZP_BYTE:5 [ main::i#2 main::i#0 main::i#1 ] +reg byte a [ sub1::i#0 ] +reg byte a [ sub1::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ sub1::return#1 ] diff --git a/src/test/ref/robozzle64-label-problem.sym b/src/test/ref/robozzle64-label-problem.sym index 1daabbadc..6f0e927e1 100644 --- a/src/test/ref/robozzle64-label-problem.sym +++ b/src/test/ref/robozzle64-label-problem.sym @@ -1 +1,53 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(word*) main::screen +(word*) main::screen#1 screen zp ZP_WORD:3 4.0 +(word*) main::screen#2 screen zp ZP_WORD:3 7.333333333333333 +(byte) main::y +(byte) main::y#1 y zp ZP_BYTE:2 16.5 +(byte) main::y#2 y zp ZP_BYTE:2 3.6666666666666665 +(word) main::z1 +(word) main::z1#0 z1 zp ZP_WORD:5 22.0 +(word) main::z2 +(word) main::z2#0 z2 zp ZP_WORD:5 22.0 +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 202.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 101.0 +(byte) mul8u::a#1 reg byte x 22.0 +(byte) mul8u::a#2 reg byte x 22.0 +(byte) mul8u::a#3 reg byte x 67.66666666666666 +(byte) mul8u::a#6 reg byte x 24.0 +(byte) mul8u::b +(const byte) mul8u::b#0 b = (byte) $28 +(const byte) mul8u::b#1 b = (byte) $28 +(word) mul8u::mb +(word) mul8u::mb#0 mb zp ZP_WORD:7 2.0 +(word) mul8u::mb#1 mb zp ZP_WORD:7 202.0 +(word) mul8u::mb#2 mb zp ZP_WORD:7 43.57142857142858 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:5 202.0 +(word) mul8u::res#2 res zp ZP_WORD:5 46.42857142857143 +(word) mul8u::res#6 res zp ZP_WORD:5 101.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:5 22.0 +(word) mul8u::return#3 return zp ZP_WORD:5 22.0 + +zp ZP_BYTE:2 [ main::y#2 main::y#1 ] +zp ZP_WORD:3 [ main::screen#1 main::screen#2 ] +reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ] +zp ZP_WORD:5 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u::return#3 main::z1#0 main::z2#0 ] +zp ZP_WORD:7 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] +reg byte a [ mul8u::$1 ] diff --git a/src/test/ref/roll-sprite-msb.sym b/src/test/ref/roll-sprite-msb.sym index 1daabbadc..93558ae76 100644 --- a/src/test/ref/roll-sprite-msb.sym +++ b/src/test/ref/roll-sprite-msb.sym @@ -1 +1,43 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SPRITES_XMSB +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = (byte*) 53264 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::s +(byte) main::s#1 reg byte x 16.5 +(byte) main::s#2 reg byte x 6.6000000000000005 +(word) main::xpos +(word) main::xpos#1 xpos zp ZP_WORD:2 7.333333333333333 +(word) main::xpos#2 xpos zp ZP_WORD:2 8.25 +(void()) position_sprite((byte) position_sprite::spriteno , (word) position_sprite::x , (byte) position_sprite::y) +(byte~) position_sprite::$1 reg byte y 2.0 +(byte~) position_sprite::$2 reg byte a 4.0 +(byte~) position_sprite::$4 reg byte a 4.0 +(byte~) position_sprite::$5 reg byte a 4.0 +(byte~) position_sprite::$6 reg byte a 4.0 +(label) position_sprite::@1 +(label) position_sprite::@2 +(label) position_sprite::@return +(byte) position_sprite::spriteno +(byte) position_sprite::spriteno#0 spriteno zp ZP_BYTE:4 2.4285714285714284 +(word) position_sprite::x +(word) position_sprite::x#0 x zp ZP_WORD:2 3.0 +(byte) position_sprite::y +(const byte) position_sprite::y#0 y = (byte) $32 + +reg byte x [ main::s#2 main::s#1 ] +zp ZP_WORD:2 [ main::xpos#2 main::xpos#1 position_sprite::x#0 ] +zp ZP_BYTE:4 [ position_sprite::spriteno#0 ] +reg byte y [ position_sprite::$1 ] +reg byte a [ position_sprite::$2 ] +reg byte a [ position_sprite::$4 ] +reg byte a [ position_sprite::$5 ] +reg byte a [ position_sprite::$6 ] diff --git a/src/test/ref/roll-variable.sym b/src/test/ref/roll-variable.sym index 1daabbadc..16a90700a 100644 --- a/src/test/ref/roll-variable.sym +++ b/src/test/ref/roll-variable.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::b +(byte) main::b#1 b zp ZP_BYTE:2 16.5 +(byte) main::b#2 b zp ZP_BYTE:2 14.666666666666666 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +zp ZP_BYTE:2 [ main::b#2 main::b#1 ] +reg byte a [ main::$0 ] diff --git a/src/test/ref/runtime-unused-procedure.sym b/src/test/ref/runtime-unused-procedure.sym index 1daabbadc..48a0c0e43 100644 --- a/src/test/ref/runtime-unused-procedure.sym +++ b/src/test/ref/runtime-unused-procedure.sym @@ -1 +1,9 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) call +(void()) main() +(label) main::@return +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/sandbox-ternary-error.sym b/src/test/ref/sandbox-ternary-error.sym index 1daabbadc..0e0be9fe1 100644 --- a/src/test/ref/sandbox-ternary-error.sym +++ b/src/test/ref/sandbox-ternary-error.sym @@ -1 +1,20 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$5 reg byte a 11.0 +(byte~) main::$7 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b +(byte) main::b#1 reg byte x 16.5 +(byte) main::b#2 reg byte x 6.285714285714286 + +reg byte x [ main::b#2 main::b#1 ] +reg byte a [ main::$7 main::$5 ] diff --git a/src/test/ref/sandbox.sym b/src/test/ref/sandbox.sym index 1daabbadc..0772f695e 100644 --- a/src/test/ref/sandbox.sym +++ b/src/test/ref/sandbox.sym @@ -1 +1,346 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) Print() +(label) Print::@return +(byte*) TIMEHI +(const byte*) TIMEHI#0 TIMEHI = (byte*) 161 +(byte*) TIMELO +(const byte*) TIMELO#0 TIMELO = (byte*) 162 +(byte*) VICBANK +(const byte*) VICBANK#0 VICBANK = (byte*) 53272 +(word()) append((byte*) append::dst , (word) append::value , (word) append::sub) +(label) append::@1 +(label) append::@2 +(label) append::@return +(byte*) append::dst +(byte*) append::dst#1 dst zp ZP_WORD:21 2.0 +(byte*) append::dst#2 dst zp ZP_WORD:21 2.0 +(byte*) append::dst#3 dst zp ZP_WORD:21 2.0 +(byte*) append::dst#4 dst zp ZP_WORD:21 335.0 +(word) append::return +(word) append::return#10 return zp ZP_WORD:19 4.0 +(word) append::return#2 return zp ZP_WORD:19 4.0 +(word) append::return#3 return zp ZP_WORD:19 4.0 +(word) append::return#4 return zp ZP_WORD:19 4.0 +(word) append::sub +(word) append::sub#6 sub zp ZP_WORD:23 333.6666666666667 +(word) append::value +(word) append::value#0 value zp ZP_WORD:19 2002.0 +(word) append::value#1 value zp ZP_WORD:19 4.0 +(word) append::value#2 value zp ZP_WORD:19 4.0 +(word) append::value#3 value zp ZP_WORD:19 4.0 +(word) append::value#4 value zp ZP_WORD:19 4.0 +(word) append::value#5 value zp ZP_WORD:19 376.625 +(word) append::value#8 value zp ZP_WORD:19 5.0 +(word()) div10((word) div10::val) +(word~) div10::$0 $0 zp ZP_WORD:33 4.0 +(word~) div10::$2 $2 zp ZP_WORD:35 4.0 +(word~) div10::$3 $3 zp ZP_WORD:4 4.0 +(word~) div10::$4 $4 zp ZP_WORD:37 4.0 +(word~) div10::$5 $5 zp ZP_WORD:37 4.0 +(label) div10::@return +(word) div10::return +(word) div10::return#0 return zp ZP_WORD:4 34.33333333333333 +(word) div10::return#2 return zp ZP_WORD:4 202.0 +(word) div10::val +(word) div10::val#0 val zp ZP_WORD:33 3.0 +(word) div10::val#1 val#1 zp ZP_WORD:35 3.0 +(word) div10::val#2 val#2 zp ZP_WORD:4 2.0 +(word) div10::val#3 val#3 zp ZP_WORD:4 4.0 +(word) div10::val#4 val#4 zp ZP_WORD:2 103.0 +(word()) div16u((word) div16u::dividend , (word) div16u::divisor) +(label) div16u::@1 +(label) div16u::@return +(word) div16u::dividend +(word) div16u::dividend#0 dividend zp ZP_WORD:2 103.0 +(word) div16u::divisor +(const word) div16u::divisor#0 divisor = (byte) $a +(word) div16u::return +(word) div16u::return#0 return zp ZP_WORD:4 34.33333333333333 +(word) div16u::return#2 return zp ZP_WORD:4 202.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(byte~) divr16u::$1 reg byte a 2002.0 +(byte~) divr16u::$2 reg byte a 2002.0 +(label) divr16u::@1 +(label) divr16u::@2 +(label) divr16u::@3 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:27 250.25 +(word) divr16u::dividend#1 dividend zp ZP_WORD:27 2.0 +(word) divr16u::dividend#2 dividend zp ZP_WORD:27 429.2857142857143 +(word) divr16u::divisor +(byte) divr16u::i +(byte) divr16u::i#1 reg byte x 1501.5 +(byte) divr16u::i#2 reg byte x 154.0 +(word) divr16u::quotient +(word) divr16u::quotient#1 quotient zp ZP_WORD:4 1501.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:4 1001.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:4 250.25 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:25 750.75 +(word) divr16u::rem#1 rem zp ZP_WORD:25 2002.0 +(word) divr16u::rem#2 rem zp ZP_WORD:25 2002.0 +(word) divr16u::rem#4 rem zp ZP_WORD:25 2002.0 +(word) divr16u::rem#5 rem zp ZP_WORD:25 1001.0 +(word) divr16u::rem#9 rem zp ZP_WORD:25 1001.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:4 601.0 +(word) divr16u::return#2 return zp ZP_WORD:4 4.0 +(signed word()) main() +(word~) main::$11 $11 zp ZP_WORD:6 22.0 +(word~) main::$12 $12 zp ZP_WORD:6 11.0 +(word~) main::$13 $13 zp ZP_WORD:31 22.0 +(word~) main::$2 $2 zp ZP_WORD:6 22.0 +(word~) main::$3 $3 zp ZP_WORD:6 11.0 +(word~) main::$4 $4 zp ZP_WORD:29 22.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(signed word) main::return +(const string) main::str str = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm@" +(const string) main::str1 str1 = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm@" +(word) main::u +(word) main::u#11 u zp ZP_WORD:2 7.05263157894737 +(word) main::u#15 u zp ZP_WORD:2 7.05263157894737 +(word) main::u#2 u zp ZP_WORD:2 7.333333333333333 +(word) main::u#4 u zp ZP_WORD:2 7.333333333333333 +(word) main::v +(word) main::v#1 v zp ZP_WORD:4 14.0 +(word) main::v#2 v zp ZP_WORD:4 14.0 +(byte()) myprintf((byte*) myprintf::dst , (byte*) myprintf::str , (word) myprintf::w1 , (word) myprintf::w2 , (word) myprintf::w3) +(byte~) myprintf::$17 reg byte a 202.0 +(byte~) myprintf::$18 reg byte a 202.0 +(byte~) myprintf::$23 reg byte a 101.0 +(byte~) myprintf::$24 reg byte a 202.0 +(byte~) myprintf::$25 reg byte a 202.0 +(byte~) myprintf::$30 reg byte a 101.0 +(byte~) myprintf::$31 reg byte a 202.0 +(byte~) myprintf::$41 reg byte a 1001.0 +(byte~) myprintf::$49 reg byte a 202.0 +(label) myprintf::@1 +(label) myprintf::@10 +(label) myprintf::@11 +(label) myprintf::@12 +(label) myprintf::@13 +(label) myprintf::@14 +(label) myprintf::@15 +(label) myprintf::@16 +(label) myprintf::@17 +(label) myprintf::@18 +(label) myprintf::@19 +(label) myprintf::@2 +(label) myprintf::@20 +(label) myprintf::@21 +(label) myprintf::@22 +(label) myprintf::@23 +(label) myprintf::@24 +(label) myprintf::@25 +(label) myprintf::@26 +(label) myprintf::@27 +(label) myprintf::@28 +(label) myprintf::@29 +(label) myprintf::@3 +(label) myprintf::@30 +(label) myprintf::@31 +(label) myprintf::@32 +(label) myprintf::@33 +(label) myprintf::@34 +(label) myprintf::@35 +(label) myprintf::@36 +(label) myprintf::@37 +(label) myprintf::@38 +(label) myprintf::@39 +(label) myprintf::@4 +(label) myprintf::@40 +(label) myprintf::@41 +(label) myprintf::@42 +(label) myprintf::@43 +(label) myprintf::@5 +(label) myprintf::@6 +(label) myprintf::@7 +(label) myprintf::@8 +(label) myprintf::@9 +(label) myprintf::@return +(byte) myprintf::b +(byte) myprintf::b#1 reg byte x 126.25000000000003 +(byte) myprintf::b#15 reg byte x 75.75 +(byte) myprintf::b#16 reg byte x 75.75 +(byte) myprintf::b#17 b zp ZP_BYTE:16 248.31999999999996 +(byte) myprintf::b#25 reg byte x 303.0 +(byte) myprintf::b#5 b zp ZP_BYTE:16 2002.0 +(byte) myprintf::b#6 reg byte x 202.0 +(byte) myprintf::bArg +(byte) myprintf::bArg#1 bArg zp ZP_BYTE:11 202.0 +(byte) myprintf::bArg#10 bArg zp ZP_BYTE:11 235.66666666666663 +(byte) myprintf::bArg#12 bArg zp ZP_BYTE:11 12.283783783783784 +(byte) myprintf::bDigits +(byte) myprintf::bDigits#1 bDigits zp ZP_BYTE:18 202.0 +(byte) myprintf::bDigits#10 bDigits zp ZP_BYTE:18 350.5 +(byte) myprintf::bDigits#14 bDigits zp ZP_BYTE:18 22.44444444444444 +(byte) myprintf::bDigits#16 bDigits zp ZP_BYTE:18 175.625 +(byte) myprintf::bDigits#2 bDigits zp ZP_BYTE:18 2002.0 +(byte) myprintf::bDigits#24 bDigits zp ZP_BYTE:18 201.99999999999997 +(byte) myprintf::bDigits#25 bDigits zp ZP_BYTE:18 1506.0 +(byte) myprintf::bDigits#3 bDigits zp ZP_BYTE:18 2002.0 +(byte) myprintf::bDigits#8 bDigits zp ZP_BYTE:18 701.0 +(byte) myprintf::bFormat +(byte) myprintf::bFormat#10 bFormat zp ZP_BYTE:10 40.4 +(byte) myprintf::bFormat#4 bFormat zp ZP_BYTE:10 168.33333333333331 +(byte) myprintf::bLeadZero +(byte) myprintf::bLeadZero#10 bLeadZero zp ZP_BYTE:15 22.147058823529413 +(byte) myprintf::bLeadZero#18 bLeadZero zp ZP_BYTE:15 168.33333333333331 +(byte) myprintf::bLen +(byte) myprintf::bLen#1 bLen zp ZP_BYTE:17 202.0 +(byte) myprintf::bLen#10 reg byte y 37.875 +(byte) myprintf::bLen#11 bLen zp ZP_BYTE:17 620.8 +(byte) myprintf::bLen#12 bLen zp ZP_BYTE:17 1552.0 +(byte) myprintf::bLen#13 bLen zp ZP_BYTE:17 1552.0 +(byte) myprintf::bLen#14 bLen zp ZP_BYTE:17 33.666666666666664 +(byte) myprintf::bLen#23 bLen zp ZP_BYTE:17 1203.0 +(byte) myprintf::bLen#24 bLen zp ZP_BYTE:17 440.79999999999995 +(byte) myprintf::bLen#28 bLen zp ZP_BYTE:17 1506.0 +(byte) myprintf::bLen#3 bLen zp ZP_BYTE:17 202.0 +(byte) myprintf::bLen#4 bLen zp ZP_BYTE:17 1001.0 +(byte) myprintf::bLen#6 bLen zp ZP_BYTE:17 1001.0 +(byte) myprintf::bLen#7 bLen zp ZP_BYTE:17 202.0 +(byte) myprintf::bTrailing +(byte) myprintf::bTrailing#10 bTrailing zp ZP_BYTE:14 10.397058823529413 +(byte) myprintf::bTrailing#21 bTrailing zp ZP_BYTE:14 168.33333333333331 +(byte[6]) myprintf::buf6 +(const byte[6]) myprintf::buf6#0 buf6 = { fill( 6, 0) } +(byte) myprintf::digit +(byte) myprintf::digit#2 reg byte x 1501.5 +(byte) myprintf::digit#3 reg byte x 1001.0 +(byte*) myprintf::dst +(byte) myprintf::return +(byte) myprintf::return#0 return zp ZP_BYTE:17 236.3333333333333 +(byte*) myprintf::str +(byte*) myprintf::str#0 str zp ZP_WORD:8 151.5 +(byte*) myprintf::str#10 str zp ZP_WORD:8 4.0131578947368425 +(byte*) myprintf::str#5 str zp ZP_WORD:8 2.0 +(word) myprintf::w +(word) myprintf::w#10 w zp ZP_WORD:12 10.397058823529413 +(word) myprintf::w#17 w zp ZP_WORD:12 235.66666666666663 +(word) myprintf::w#21 w zp ZP_WORD:12 202.0 +(word~) myprintf::w#49 w zp ZP_WORD:12 202.0 +(word~) myprintf::w#50 w zp ZP_WORD:12 202.0 +(word~) myprintf::w#51 w zp ZP_WORD:12 202.0 +(word) myprintf::w1 +(word) myprintf::w1#0 w1 zp ZP_WORD:2 11.0 +(word) myprintf::w1#1 w1 zp ZP_WORD:2 11.0 +(word) myprintf::w1#6 w1 zp ZP_WORD:2 1.5569620253164556 +(word) myprintf::w2 +(word) myprintf::w2#0 w2 zp ZP_WORD:4 22.0 +(word) myprintf::w2#1 w2 zp ZP_WORD:4 22.0 +(word) myprintf::w2#7 w2 zp ZP_WORD:4 1.5569620253164556 +(word) myprintf::w3 +(word) myprintf::w3#0 w3 zp ZP_WORD:6 7.333333333333333 +(word) myprintf::w3#1 w3 zp ZP_WORD:6 7.333333333333333 +(word) myprintf::w3#7 w3 zp ZP_WORD:6 1.5569620253164556 +(byte[$64]) strTemp +(const byte[$64]) strTemp#0 strTemp = { fill( $64, 0) } +(void()) utoa((word) utoa::value , (byte*) utoa::dst) +(byte~) utoa::$16 reg byte a 4.0 +(byte~) utoa::$17 reg byte a 4.0 +(label) utoa::@1 +(label) utoa::@10 +(label) utoa::@11 +(label) utoa::@12 +(label) utoa::@13 +(label) utoa::@14 +(label) utoa::@15 +(label) utoa::@16 +(label) utoa::@2 +(label) utoa::@3 +(label) utoa::@4 +(label) utoa::@5 +(label) utoa::@6 +(label) utoa::@7 +(label) utoa::@8 +(label) utoa::@9 +(label) utoa::@return +(byte) utoa::bStarted +(byte) utoa::bStarted#5 reg byte x 1.3333333333333333 +(byte) utoa::bStarted#6 reg byte x 2.0 +(byte) utoa::bStarted#7 reg byte x 4.0 +(byte*) utoa::dst +(byte*) utoa::dst#1 dst zp ZP_WORD:21 4.0 +(byte*) utoa::dst#10 dst zp ZP_WORD:21 1.25 +(byte*) utoa::dst#12 dst zp ZP_WORD:21 2.0 +(byte*) utoa::dst#13 dst zp ZP_WORD:21 1.25 +(byte*) utoa::dst#16 dst zp ZP_WORD:21 0.75 +(byte*) utoa::dst#2 dst zp ZP_WORD:21 4.0 +(byte*) utoa::dst#3 dst zp ZP_WORD:21 4.0 +(byte*) utoa::dst#4 dst zp ZP_WORD:21 4.0 +(word) utoa::value +(word) utoa::value#0 value zp ZP_WORD:19 4.0 +(word) utoa::value#1 value zp ZP_WORD:19 2.0 +(word) utoa::value#10 value zp ZP_WORD:19 2.5 +(word) utoa::value#11 value zp ZP_WORD:19 2.5 +(word) utoa::value#12 value zp ZP_WORD:19 4.0 +(word) utoa::value#2 value zp ZP_WORD:19 2.0 +(word) utoa::value#3 value zp ZP_WORD:19 2.0 +(word) utoa::value#4 value zp ZP_WORD:19 35.66666666666666 +(word) utoa::value#6 value zp ZP_WORD:19 2.5 +(byte*) zp1 +(const byte*) zp1#0 zp1 = (byte*) 97 +(byte*) zp2 +(const byte*) zp2#0 zp2 = (byte*) 98 + +zp ZP_WORD:2 [ main::u#11 main::u#2 myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 div16u::dividend#0 main::u#15 main::u#4 div10::val#4 ] +zp ZP_WORD:4 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 div16u::return#2 div16u::return#0 div10::return#2 div10::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div10::$3 div10::val#2 div10::val#3 ] +zp ZP_WORD:6 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 main::$2 main::$11 ] +zp ZP_WORD:8 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 ] +zp ZP_BYTE:10 [ myprintf::bFormat#10 myprintf::bFormat#4 ] +zp ZP_BYTE:11 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ] +zp ZP_WORD:12 [ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#49 myprintf::w#50 myprintf::w#51 ] +zp ZP_BYTE:14 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ] +zp ZP_BYTE:15 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ] +reg byte a [ myprintf::$23 ] +reg byte a [ myprintf::$30 ] +zp ZP_BYTE:16 [ myprintf::b#17 myprintf::b#5 ] +reg byte x [ myprintf::digit#3 myprintf::digit#2 ] +zp ZP_BYTE:17 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ] +zp ZP_BYTE:18 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ] +reg byte a [ myprintf::$41 ] +reg byte x [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ] +reg byte x [ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ] +zp ZP_WORD:19 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 append::return#10 append::return#4 append::return#3 append::return#2 ] +zp ZP_WORD:21 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 append::dst#4 append::dst#1 append::dst#2 append::dst#3 utoa::dst#3 ] +zp ZP_WORD:23 [ append::sub#6 ] +zp ZP_WORD:25 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] +zp ZP_WORD:27 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +zp ZP_WORD:29 [ main::$4 ] +zp ZP_WORD:31 [ main::$13 ] +reg byte a [ myprintf::$17 ] +reg byte a [ myprintf::$18 ] +reg byte x [ myprintf::b#15 ] +reg byte a [ myprintf::$24 ] +reg byte y [ myprintf::bLen#10 ] +reg byte a [ myprintf::$25 ] +reg byte x [ myprintf::b#16 ] +reg byte a [ myprintf::$31 ] +reg byte a [ myprintf::$49 ] +reg byte a [ utoa::$16 ] +reg byte a [ utoa::$17 ] +zp ZP_WORD:33 [ div10::$0 div10::val#0 ] +zp ZP_WORD:35 [ div10::$2 div10::val#1 ] +zp ZP_WORD:37 [ div10::$4 div10::$5 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] diff --git a/src/test/ref/scan-desire-problem.sym b/src/test/ref/scan-desire-problem.sym index 1daabbadc..7a3af2ada 100644 --- a/src/test/ref/scan-desire-problem.sym +++ b/src/test/ref/scan-desire-problem.sym @@ -1 +1,174 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL1 +(const byte*) BGCOL1#0 BGCOL1 = (byte*) 53281 +(byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = (byte*) 53282 +(byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = (byte*) 53283 +(byte*) BGCOL4 +(const byte*) BGCOL4#0 BGCOL4 = (byte*) 53284 +(byte) BLACK +(const byte) BLACK#0 BLACK = (byte) 0 +(byte) BLUE +(const byte) BLUE#0 BLUE = (byte) 6 +(byte*) BORDERCOL +(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte*) D018 +(const byte*) D018#0 D018 = (byte*) 53272 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) RED +(const byte) RED#0 RED = (byte) 2 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_EXPAND_X +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = (byte*) 53277 +(byte*) SPRITES_EXPAND_Y +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = (byte*) 53271 +(byte*) SPRITES_MC +(const byte*) SPRITES_MC#0 SPRITES_MC = (byte*) 53276 +(byte*) SPRITES_XMSB +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = (byte*) 53264 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(byte) YELLOW +(const byte) YELLOW#0 YELLOW = (byte) 7 +(byte*) charset +(const byte*) charset#0 charset = (byte*) 8192 +(byte*) colors +(const byte*) colors#0 colors = (byte*) 55296 +(void()) draw_block((byte) draw_block::tileno , (byte) draw_block::x , (byte) draw_block::y , (byte) draw_block::color) +(byte*~) draw_block::$11 $11 zp ZP_WORD:13 4.0 +(byte*~) draw_block::$12 $12 zp ZP_WORD:15 4.0 +(byte*~) draw_block::$13 $13 zp ZP_WORD:17 4.0 +(byte*~) draw_block::$14 $14 zp ZP_WORD:19 4.0 +(byte*~) draw_block::$15 $15 zp ZP_WORD:21 4.0 +(byte*~) draw_block::$16 $16 zp ZP_WORD:23 4.0 +(byte*~) draw_block::$17 $17 zp ZP_WORD:25 4.0 +(byte*~) draw_block::$18 $18 zp ZP_WORD:11 4.0 +(label) draw_block::@1 +(label) draw_block::@return +(byte) draw_block::color +(byte) draw_block::drawtile +(byte) draw_block::drawtile#0 reg byte x 2.0 +(byte) draw_block::tileno +(byte) draw_block::tileno#0 reg byte a 34.33333333333333 +(byte) draw_block::tileno#1 tileno zp ZP_BYTE:10 0.5 +(byte) draw_block::x +(byte) draw_block::x#0 reg byte y 34.33333333333333 +(word) draw_block::x1 +(word) draw_block::x1#0 x1 zp ZP_WORD:11 0.6666666666666666 +(byte) draw_block::y +(byte) draw_block::y#0 reg byte x 34.33333333333333 +(byte) draw_block::y#1 reg byte a 4.0 +(word) draw_block::z +(word) draw_block::z#0 z zp ZP_WORD:4 4.0 +(word) draw_block::z#1 z#1 zp ZP_WORD:11 1.125 +(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) +(label) fill::@1 +(label) fill::@return +(byte*) fill::addr +(byte*) fill::addr#0 addr zp ZP_WORD:8 2.0 +(byte*) fill::addr#1 addr zp ZP_WORD:8 16.5 +(byte*) fill::addr#2 addr zp ZP_WORD:8 17.5 +(byte*) fill::end +(byte*) fill::end#0 end zp ZP_WORD:27 2.6 +(word) fill::size +(byte*) fill::start +(byte) fill::val +(byte) fill::val#3 reg byte x 1.8333333333333333 +(void()) init() +(label) init::@1 +(label) init::@2 +(label) init::@3 +(label) init::@return +(label) init::toD0181 +(word~) init::toD0181_$0 +(number~) init::toD0181_$1 +(number~) init::toD0181_$2 +(number~) init::toD0181_$3 +(word~) init::toD0181_$4 +(byte~) init::toD0181_$5 +(number~) init::toD0181_$6 +(number~) init::toD0181_$7 +(number~) init::toD0181_$8 +(byte*) init::toD0181_gfx +(byte) init::toD0181_return +(const byte) init::toD0181_return#0 toD0181_return = >(word)(const byte*) screen#0&(word) $3fff*(byte) 4|>(word)(const byte*) charset#0/(byte) 4&(byte) $f +(byte*) init::toD0181_screen +(void()) init_sprites() +(label) init_sprites::@return +(byte*) level_address +(const byte*) level_address#0 level_address = (byte*) 12288 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(byte) main::tile +(byte) main::tile#0 reg byte a 202.0 +(byte) main::x +(byte) main::x#1 x zp ZP_BYTE:2 16.5 +(byte) main::x#4 x zp ZP_BYTE:2 22.4 +(byte) main::y +(byte) main::y#1 y zp ZP_BYTE:3 151.5 +(byte) main::y#2 y zp ZP_BYTE:3 57.714285714285715 +(byte) main::z +(byte) main::z#0 reg byte a 202.0 +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 2002.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 1001.0 +(byte) mul8u::a#1 reg byte x 2.0 +(byte) mul8u::a#2 reg byte x 667.6666666666667 +(byte) mul8u::b +(const byte) mul8u::b#0 b = (byte) $28 +(word) mul8u::mb +(word) mul8u::mb#1 mb zp ZP_WORD:6 2002.0 +(word) mul8u::mb#2 mb zp ZP_WORD:6 429.0 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:4 2002.0 +(word) mul8u::res#2 res zp ZP_WORD:4 500.83333333333337 +(word) mul8u::res#6 res zp ZP_WORD:4 1001.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:4 4.0 +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 +(byte*) tileset +(const byte*) tileset#0 tileset = (byte*) 10240 + +zp ZP_BYTE:2 [ main::x#4 main::x#1 ] +zp ZP_BYTE:3 [ main::y#2 main::y#1 ] +reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] +zp ZP_WORD:4 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 draw_block::z#0 ] +zp ZP_WORD:6 [ mul8u::mb#2 mul8u::mb#1 ] +reg byte x [ fill::val#3 ] +zp ZP_WORD:8 [ fill::addr#2 fill::addr#0 fill::addr#1 ] +reg byte a [ main::z#0 ] +reg byte a [ main::tile#0 ] +reg byte a [ draw_block::tileno#0 ] +reg byte y [ draw_block::x#0 ] +reg byte x [ draw_block::y#0 ] +zp ZP_BYTE:10 [ draw_block::tileno#1 ] +zp ZP_WORD:11 [ draw_block::x1#0 draw_block::z#1 draw_block::$18 ] +reg byte a [ draw_block::y#1 ] +reg byte x [ draw_block::drawtile#0 ] +zp ZP_WORD:13 [ draw_block::$11 ] +zp ZP_WORD:15 [ draw_block::$12 ] +zp ZP_WORD:17 [ draw_block::$13 ] +zp ZP_WORD:19 [ draw_block::$14 ] +zp ZP_WORD:21 [ draw_block::$15 ] +zp ZP_WORD:23 [ draw_block::$16 ] +zp ZP_WORD:25 [ draw_block::$17 ] +reg byte a [ mul8u::$1 ] +zp ZP_WORD:27 [ fill::end#0 ] diff --git a/src/test/ref/scroll-clobber.sym b/src/test/ref/scroll-clobber.sym index 1daabbadc..4084e1557 100644 --- a/src/test/ref/scroll-clobber.sym +++ b/src/test/ref/scroll-clobber.sym @@ -1 +1,26 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) TEXT +(const byte[]) TEXT#0 TEXT = (string) "01234567@" +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(byte) main::c +(byte) main::c#0 reg byte y 16.5 +(byte) main::c#1 reg byte y 22.0 +(byte) main::c#2 reg byte y 16.5 +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 4.4 +(byte*) main::nxt +(byte*) main::nxt#1 nxt zp ZP_WORD:2 22.0 +(byte*) main::nxt#3 nxt zp ZP_WORD:2 11.0 +(byte*) main::nxt#4 nxt zp ZP_WORD:2 7.333333333333333 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::c#2 main::c#0 main::c#1 ] +zp ZP_WORD:2 [ main::nxt#4 main::nxt#3 main::nxt#1 ] diff --git a/src/test/ref/scrollbig-clobber.sym b/src/test/ref/scrollbig-clobber.sym index 1daabbadc..bcabded0a 100644 --- a/src/test/ref/scrollbig-clobber.sym +++ b/src/test/ref/scrollbig-clobber.sym @@ -1 +1,35 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) TEXT +(const byte*) TEXT#0 TEXT = (string) "cml @" +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 6.6000000000000005 +(byte()) next_char() +(label) next_char::@1 +(label) next_char::@2 +(label) next_char::@return +(byte) next_char::c +(byte) next_char::c#0 reg byte y 3.0 +(byte) next_char::c#1 reg byte y 4.0 +(byte) next_char::return +(byte) next_char::return#0 reg byte a 22.0 +(byte) next_char::return#1 reg byte y 3.75 +(byte*) nxt +(byte*) nxt#10 nxt zp ZP_WORD:2 4.0 +(byte*) nxt#11 nxt zp ZP_WORD:2 1.625 +(byte*) nxt#13 nxt zp ZP_WORD:2 5.0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ nxt#10 nxt#13 nxt#11 ] +reg byte y [ next_char::return#1 next_char::c#0 next_char::c#1 ] +reg byte a [ next_char::return#0 ] +reg byte a [ main::$0 ] diff --git a/src/test/ref/semi-struct-1.sym b/src/test/ref/semi-struct-1.sym index 1daabbadc..96fa9ca36 100644 --- a/src/test/ref/semi-struct-1.sym +++ b/src/test/ref/semi-struct-1.sym @@ -1 +1,136 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) NUM_POINTS +(const byte) NUM_POINTS#0 NUM_POINTS = (byte) 4 +(byte) SIZEOF_POINT +(const byte) SIZEOF_POINT#0 SIZEOF_POINT = (byte) 2 +(void()) init_points() +(label) init_points::@1 +(label) init_points::@2 +(label) init_points::@3 +(label) init_points::@return +(label) init_points::getPoint1 +(byte~) init_points::getPoint1_$0 +(byte~) init_points::getPoint1_$0#0 reg byte y 11.0 +(byte*~) init_points::getPoint1_$1 +(byte) init_points::getPoint1_idx +(byte*) init_points::getPoint1_return +(byte*) init_points::getPoint1_return#0 getPoint1_return zp ZP_WORD:14 4.4 +(byte) init_points::i +(byte) init_points::i#1 reg byte x 16.5 +(byte) init_points::i#10 reg byte x 3.666666666666667 +(byte*) init_points::point +(label) init_points::pointXpos1 +(byte*~) init_points::pointXpos1_$0 +(byte*~) init_points::pointXpos1_$1 +(byte*) init_points::pointXpos1_point +(byte*) init_points::pointXpos1_return +(label) init_points::pointYpos1 +(byte*~) init_points::pointYpos1_$0 +(byte*~) init_points::pointYpos1_$1 +(byte*) init_points::pointYpos1_point +(byte*) init_points::pointYpos1_return +(byte) init_points::pos +(byte) init_points::pos#1 reg byte a 11.0 +(byte) init_points::pos#10 pos zp ZP_BYTE:11 6.6000000000000005 +(byte) init_points::pos#2 pos zp ZP_BYTE:11 7.333333333333333 +(void()) main() +(label) main::@1 +(label) main::@return +(byte[NUM_POINTS#0*SIZEOF_POINT#0]) points +(const byte[NUM_POINTS#0*SIZEOF_POINT#0]) points#0 points = { fill( NUM_POINTS#0*SIZEOF_POINT#0, 0) } +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 reg byte x 22.0 +(byte) print_byte::b#1 reg byte x 22.0 +(byte) print_byte::b#2 reg byte x 6.5 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 101.0 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:5 45.142857142857146 +(byte*) print_char_cursor#28 print_char_cursor zp ZP_WORD:5 4.0 +(byte*) print_char_cursor#29 print_char_cursor zp ZP_WORD:5 6.6875 +(byte*) print_char_cursor#42 print_char_cursor zp ZP_WORD:5 8.0 +(byte*) print_char_cursor#45 print_char_cursor zp ZP_WORD:5 4.4 +(byte*~) print_char_cursor#66 print_char_cursor zp ZP_WORD:5 22.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:9 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:9 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 46.42857142857143 +(byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:3 204.0 +(byte*) print_line_cursor#24 print_line_cursor zp ZP_WORD:3 1.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_points() +(label) print_points::@1 +(label) print_points::@2 +(label) print_points::@3 +(label) print_points::@4 +(label) print_points::@5 +(label) print_points::@6 +(label) print_points::@7 +(label) print_points::@return +(label) print_points::getPoint1 +(byte~) print_points::getPoint1_$0 +(byte~) print_points::getPoint1_$0#0 reg byte y 11.0 +(byte*~) print_points::getPoint1_$1 +(byte) print_points::getPoint1_idx +(byte*) print_points::getPoint1_return +(byte) print_points::i +(byte) print_points::i#1 i zp ZP_BYTE:2 11.0 +(byte) print_points::i#10 i zp ZP_BYTE:2 2.5384615384615383 +(byte*) print_points::point +(byte*) print_points::point#0 point zp ZP_WORD:12 3.142857142857143 +(label) print_points::pointXpos1 +(byte*~) print_points::pointXpos1_$0 +(byte*~) print_points::pointXpos1_$1 +(byte*) print_points::pointXpos1_point +(byte*) print_points::pointXpos1_return +(label) print_points::pointYpos1 +(byte*~) print_points::pointYpos1_$0 +(byte*~) print_points::pointYpos1_$1 +(byte*) print_points::pointYpos1_point +(byte*) print_points::pointYpos1_return +(const string) print_points::str str = (string) " @" +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:7 202.0 +(byte*) print_str::str#2 str zp ZP_WORD:7 101.0 + +zp ZP_BYTE:2 [ print_points::i#10 print_points::i#1 ] +zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#24 print_line_cursor#1 ] +reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +zp ZP_WORD:5 [ print_char_cursor#28 print_char_cursor#42 print_char_cursor#45 print_char_cursor#66 print_char_cursor#2 print_char_cursor#29 print_char_cursor#1 ] +zp ZP_WORD:7 [ print_str::str#2 print_str::str#0 ] +zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte x [ init_points::i#10 init_points::i#1 ] +zp ZP_BYTE:11 [ init_points::pos#10 init_points::pos#2 ] +reg byte y [ print_points::getPoint1_$0#0 ] +zp ZP_WORD:12 [ print_points::point#0 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +reg byte y [ init_points::getPoint1_$0#0 ] +zp ZP_WORD:14 [ init_points::getPoint1_return#0 ] +reg byte a [ init_points::pos#1 ] diff --git a/src/test/ref/semi-struct-2.sym b/src/test/ref/semi-struct-2.sym index 1daabbadc..4290c5687 100644 --- a/src/test/ref/semi-struct-2.sym +++ b/src/test/ref/semi-struct-2.sym @@ -1 +1,476 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_A_DDR +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = (byte*) 56322 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte*) CIA1_PORT_B_DDR +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = (byte*) 56323 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(byte) MAX_FILES +(const byte) MAX_FILES#0 MAX_FILES = (byte) $90 +(byte) SIZEOF_ENTRY +(const byte) SIZEOF_ENTRY#0 SIZEOF_ENTRY = (byte) $12 +(byte[(word)MAX_FILES#0*SIZEOF_ENTRY#0]) files +(const byte[(word)MAX_FILES#0*SIZEOF_ENTRY#0]) files#0 files = { fill( (word)MAX_FILES#0*SIZEOF_ENTRY#0, 0) } +(void()) initEntry((byte*) initEntry::entry , (byte) initEntry::n) +(word~) initEntry::$1 $1 zp ZP_WORD:22 2.0 +(byte~) initEntry::$11 reg byte a 4.0 +(byte~) initEntry::$13 reg byte a 4.0 +(byte~) initEntry::$15 reg byte a 4.0 +(word~) initEntry::$17 $17 zp ZP_WORD:30 4.0 +(byte~) initEntry::$19 reg byte a 4.0 +(byte~) initEntry::$21 reg byte a 4.0 +(byte~) initEntry::$23 reg byte a 4.0 +(byte~) initEntry::$25 reg byte a 4.0 +(word~) initEntry::$3 $3 zp ZP_WORD:24 2.0 +(word~) initEntry::$5 $5 zp ZP_WORD:26 4.0 +(word~) initEntry::$7 $7 zp ZP_WORD:28 2.0 +(byte~) initEntry::$9 reg byte a 4.0 +(label) initEntry::@1 +(label) initEntry::@10 +(label) initEntry::@11 +(label) initEntry::@12 +(label) initEntry::@13 +(label) initEntry::@2 +(label) initEntry::@3 +(label) initEntry::@4 +(label) initEntry::@5 +(label) initEntry::@6 +(label) initEntry::@7 +(label) initEntry::@8 +(label) initEntry::@9 +(label) initEntry::@return +(byte*) initEntry::entry +(byte*) initEntry::entry#0 entry zp ZP_WORD:14 4.0 +(byte*) initEntry::entry#1 entry zp ZP_WORD:14 4.0 +(byte*) initEntry::entry#10 entry zp ZP_WORD:14 0.5128205128205128 +(label) initEntry::entryBAddrHi1 +(byte*~) initEntry::entryBAddrHi1_$0 +(byte*~) initEntry::entryBAddrHi1_$1 +(byte*) initEntry::entryBAddrHi1_entry +(byte*) initEntry::entryBAddrHi1_return +(label) initEntry::entryBAddrLo1 +(byte*~) initEntry::entryBAddrLo1_$0 +(byte*~) initEntry::entryBAddrLo1_$1 +(byte*) initEntry::entryBAddrLo1_entry +(byte*) initEntry::entryBAddrLo1_return +(label) initEntry::entryBError1 +(byte*~) initEntry::entryBError1_$0 +(byte*) initEntry::entryBError1_entry +(byte*) initEntry::entryBError1_return +(label) initEntry::entryBFlag1 +(byte*~) initEntry::entryBFlag1_$0 +(byte*~) initEntry::entryBFlag1_$1 +(byte*) initEntry::entryBFlag1_entry +(byte*) initEntry::entryBFlag1_return +(label) initEntry::entryBufDisk1 +(byte*~) initEntry::entryBufDisk1_$0 +(byte**~) initEntry::entryBufDisk1_$1 +(byte*) initEntry::entryBufDisk1_entry +(byte**) initEntry::entryBufDisk1_return +(label) initEntry::entryBufEdit1 +(byte*~) initEntry::entryBufEdit1_$0 +(byte**~) initEntry::entryBufEdit1_$1 +(byte*) initEntry::entryBufEdit1_entry +(byte**) initEntry::entryBufEdit1_return +(label) initEntry::entrySLastLink1 +(byte*~) initEntry::entrySLastLink1_$0 +(byte*~) initEntry::entrySLastLink1_$1 +(byte*) initEntry::entrySLastLink1_entry +(byte*) initEntry::entrySLastLink1_return +(label) initEntry::entryTHi1 +(byte*~) initEntry::entryTHi1_$0 +(byte*~) initEntry::entryTHi1_$1 +(byte*) initEntry::entryTHi1_entry +(byte*) initEntry::entryTHi1_return +(label) initEntry::entryTLastLink1 +(byte*~) initEntry::entryTLastLink1_$0 +(byte*~) initEntry::entryTLastLink1_$1 +(byte*) initEntry::entryTLastLink1_entry +(byte*) initEntry::entryTLastLink1_return +(label) initEntry::entryTLo1 +(byte*~) initEntry::entryTLo1_$0 +(byte*~) initEntry::entryTLo1_$1 +(byte*) initEntry::entryTLo1_entry +(byte*) initEntry::entryTLo1_return +(label) initEntry::entryTsLen1 +(byte*~) initEntry::entryTsLen1_$0 +(word*~) initEntry::entryTsLen1_$1 +(byte*) initEntry::entryTsLen1_entry +(word*) initEntry::entryTsLen1_return +(label) initEntry::entryTsOrder1 +(byte*~) initEntry::entryTsOrder1_$0 +(word**~) initEntry::entryTsOrder1_$1 +(byte*) initEntry::entryTsOrder1_entry +(word**) initEntry::entryTsOrder1_return +(label) initEntry::entryUCross1 +(byte*~) initEntry::entryUCross1_$0 +(word*~) initEntry::entryUCross1_$1 +(byte*) initEntry::entryUCross1_entry +(word*) initEntry::entryUCross1_return +(byte) initEntry::n +(byte) initEntry::n#10 reg byte x 0.6842105263157894 +(void()) keyboard_init() +(label) keyboard_init::@return +(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) +(byte~) keyboard_key_pressed::$2 reg byte a 4.0 +(label) keyboard_key_pressed::@1 +(label) keyboard_key_pressed::@return +(byte) keyboard_key_pressed::colidx +(const byte) keyboard_key_pressed::colidx#0 colidx = (const byte) KEY_SPACE#0&(byte) 7 +(byte) keyboard_key_pressed::key +(byte) keyboard_key_pressed::return +(byte) keyboard_key_pressed::return#0 reg byte a 6.0 +(byte) keyboard_key_pressed::return#2 reg byte a 22.0 +(byte) keyboard_key_pressed::return#3 reg byte a 22.0 +(byte) keyboard_key_pressed::rowidx +(const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(byte) 3 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333 +(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(void()) main() +(byte~) main::$20 reg byte a 22.0 +(byte~) main::$22 reg byte a 22.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@18 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@22 +(label) main::@23 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte*) main::entry1 +(byte*) main::entry1#0 entry1 zp ZP_WORD:8 0.3157894736842105 +(byte*) main::entry2 +(byte*) main::entry2#0 entry2 zp ZP_WORD:16 0.17142857142857143 +(label) main::fileEntry1 +(word~) main::fileEntry1_$0 +(word~) main::fileEntry1_$0#0 fileEntry1_$0 zp ZP_WORD:8 4.0 +(byte*~) main::fileEntry1_$1 +(byte) main::fileEntry1_idx +(const byte) main::fileEntry1_idx#0 fileEntry1_idx = (byte) 1 +(byte*) main::fileEntry1_return +(label) main::fileEntry2 +(word~) main::fileEntry2_$0 +(word~) main::fileEntry2_$0#0 fileEntry2_$0 zp ZP_WORD:16 4.0 +(byte*~) main::fileEntry2_$1 +(byte) main::fileEntry2_idx +(const byte) main::fileEntry2_idx#0 fileEntry2_idx = (byte) 2 +(byte*) main::fileEntry2_return +(const string) main::str str = (string) "** entry 1 **@" +(const string) main::str1 str1 = (string) "- press space -@" +(const string) main::str2 str2 = (string) "** entry 2 **@" +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 22.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 11.0 +(byte) mul8u::a#3 reg byte x 7.666666666666666 +(byte) mul8u::a#6 reg byte x 2.0 +(byte) mul8u::b +(word) mul8u::mb +(word) mul8u::mb#1 mb zp ZP_WORD:18 22.0 +(word) mul8u::mb#2 mb zp ZP_WORD:18 4.714285714285714 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:16 22.0 +(word) mul8u::res#2 res zp ZP_WORD:16 5.285714285714286 +(word) mul8u::res#6 res zp ZP_WORD:16 11.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:16 4.0 +(word) mul8u::return#3 return zp ZP_WORD:16 4.0 +(void()) printEntry((byte*) printEntry::entry) +(label) printEntry::@1 +(label) printEntry::@10 +(label) printEntry::@11 +(label) printEntry::@12 +(label) printEntry::@13 +(label) printEntry::@14 +(label) printEntry::@15 +(label) printEntry::@16 +(label) printEntry::@17 +(label) printEntry::@18 +(label) printEntry::@19 +(label) printEntry::@2 +(label) printEntry::@20 +(label) printEntry::@21 +(label) printEntry::@22 +(label) printEntry::@23 +(label) printEntry::@24 +(label) printEntry::@25 +(label) printEntry::@26 +(label) printEntry::@27 +(label) printEntry::@28 +(label) printEntry::@29 +(label) printEntry::@3 +(label) printEntry::@30 +(label) printEntry::@31 +(label) printEntry::@32 +(label) printEntry::@33 +(label) printEntry::@34 +(label) printEntry::@35 +(label) printEntry::@36 +(label) printEntry::@37 +(label) printEntry::@38 +(label) printEntry::@4 +(label) printEntry::@5 +(label) printEntry::@6 +(label) printEntry::@7 +(label) printEntry::@8 +(label) printEntry::@9 +(label) printEntry::@return +(byte*) printEntry::entry +(byte*) printEntry::entry#0 entry zp ZP_WORD:8 4.0 +(byte*) printEntry::entry#1 entry zp ZP_WORD:8 4.0 +(byte*) printEntry::entry#10 entry zp ZP_WORD:8 0.22727272727272732 +(label) printEntry::entryBAddrHi1 +(byte*~) printEntry::entryBAddrHi1_$0 +(byte*~) printEntry::entryBAddrHi1_$1 +(byte*) printEntry::entryBAddrHi1_entry +(byte*) printEntry::entryBAddrHi1_return +(label) printEntry::entryBAddrLo1 +(byte*~) printEntry::entryBAddrLo1_$0 +(byte*~) printEntry::entryBAddrLo1_$1 +(byte*) printEntry::entryBAddrLo1_entry +(byte*) printEntry::entryBAddrLo1_return +(label) printEntry::entryBError1 +(byte*~) printEntry::entryBError1_$0 +(byte*) printEntry::entryBError1_entry +(byte*) printEntry::entryBError1_return +(label) printEntry::entryBFlag1 +(byte*~) printEntry::entryBFlag1_$0 +(byte*~) printEntry::entryBFlag1_$1 +(byte*) printEntry::entryBFlag1_entry +(byte*) printEntry::entryBFlag1_return +(label) printEntry::entryBufDisk1 +(byte*~) printEntry::entryBufDisk1_$0 +(byte**~) printEntry::entryBufDisk1_$1 +(byte*) printEntry::entryBufDisk1_entry +(byte**) printEntry::entryBufDisk1_return +(label) printEntry::entryBufEdit1 +(byte*~) printEntry::entryBufEdit1_$0 +(byte**~) printEntry::entryBufEdit1_$1 +(byte*) printEntry::entryBufEdit1_entry +(byte**) printEntry::entryBufEdit1_return +(label) printEntry::entrySLastLink1 +(byte*~) printEntry::entrySLastLink1_$0 +(byte*~) printEntry::entrySLastLink1_$1 +(byte*) printEntry::entrySLastLink1_entry +(byte*) printEntry::entrySLastLink1_return +(label) printEntry::entryTHi1 +(byte*~) printEntry::entryTHi1_$0 +(byte*~) printEntry::entryTHi1_$1 +(byte*) printEntry::entryTHi1_entry +(byte*) printEntry::entryTHi1_return +(label) printEntry::entryTLastLink1 +(byte*~) printEntry::entryTLastLink1_$0 +(byte*~) printEntry::entryTLastLink1_$1 +(byte*) printEntry::entryTLastLink1_entry +(byte*) printEntry::entryTLastLink1_return +(label) printEntry::entryTLo1 +(byte*~) printEntry::entryTLo1_$0 +(byte*~) printEntry::entryTLo1_$1 +(byte*) printEntry::entryTLo1_entry +(byte*) printEntry::entryTLo1_return +(label) printEntry::entryTsLen1 +(byte*~) printEntry::entryTsLen1_$0 +(word*~) printEntry::entryTsLen1_$1 +(byte*) printEntry::entryTsLen1_entry +(word*) printEntry::entryTsLen1_return +(label) printEntry::entryTsOrder1 +(byte*~) printEntry::entryTsOrder1_$0 +(word**~) printEntry::entryTsOrder1_$1 +(byte*) printEntry::entryTsOrder1_entry +(word**) printEntry::entryTsOrder1_return +(label) printEntry::entryUCross1 +(byte*~) printEntry::entryUCross1_$0 +(word*~) printEntry::entryUCross1_$1 +(byte*) printEntry::entryUCross1_entry +(word*) printEntry::entryUCross1_return +(const string) printEntry::str str = (string) "bufdisk @" +(const string) printEntry::str1 str1 = (string) "bufedit @" +(const string) printEntry::str10 str10 = (string) "baddrhi @" +(const string) printEntry::str11 str11 = (string) "thi @" +(const string) printEntry::str12 str12 = (string) "tlo @" +(const string) printEntry::str2 str2 = (string) "tslen @" +(const string) printEntry::str3 str3 = (string) "tsorder @" +(const string) printEntry::str4 str4 = (string) "tlastlink @" +(const string) printEntry::str5 str5 = (string) "slastlink @" +(const string) printEntry::str6 str6 = (string) "bflag @" +(const string) printEntry::str7 str7 = (string) "berror @" +(const string) printEntry::str8 str8 = (string) "ucross @" +(const string) printEntry::str9 str9 = (string) "baddrlo @" +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 reg byte x 4.0 +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#10 reg byte x 6.0 +(byte) print_byte::b#2 reg byte x 4.0 +(byte) print_byte::b#3 reg byte x 4.0 +(byte) print_byte::b#4 reg byte x 4.0 +(byte) print_byte::b#5 reg byte x 4.0 +(byte) print_byte::b#6 reg byte x 4.0 +(byte) print_byte::b#7 reg byte x 4.0 +(byte) print_byte::b#8 reg byte x 4.0 +(byte) print_byte::b#9 reg byte x 4.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:10 11.0 +(byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:10 0.8648648648648649 +(byte*) print_char_cursor#142 print_char_cursor zp ZP_WORD:10 1.1632653061224494 +(byte*) print_char_cursor#143 print_char_cursor zp ZP_WORD:10 9.800000000000002 +(byte*) print_char_cursor#145 print_char_cursor zp ZP_WORD:10 7.333333333333334 +(byte*) print_char_cursor#164 print_char_cursor zp ZP_WORD:10 32.0 +(byte*~) print_char_cursor#210 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#211 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#212 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#213 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#214 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#215 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#216 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#217 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#218 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#219 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#220 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#221 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#222 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#223 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#224 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#228 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#229 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#231 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#232 print_char_cursor zp ZP_WORD:10 4.0 +(byte*) print_char_cursor#82 print_char_cursor zp ZP_WORD:10 4.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:20 1.0824742268041243 +(byte*~) print_line_cursor#157 print_line_cursor#157 zp ZP_WORD:6 2.0 +(byte*~) print_line_cursor#158 print_line_cursor#158 zp ZP_WORD:6 2.0 +(byte*~) print_line_cursor#159 print_line_cursor#159 zp ZP_WORD:6 2.0 +(byte*~) print_line_cursor#160 print_line_cursor#160 zp ZP_WORD:6 2.0 +(byte*~) print_line_cursor#161 print_line_cursor#161 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#162 print_line_cursor#162 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#163 print_line_cursor#163 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#164 print_line_cursor#164 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#165 print_line_cursor#165 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#166 print_line_cursor#166 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#167 print_line_cursor#167 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#168 print_line_cursor#168 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#169 print_line_cursor#169 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#170 print_line_cursor#170 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#171 print_line_cursor#171 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#172 print_line_cursor#172 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#173 print_line_cursor#173 zp ZP_WORD:6 4.0 +(byte*~) print_line_cursor#175 print_line_cursor#175 zp ZP_WORD:6 22.0 +(byte*) print_line_cursor#32 print_line_cursor#32 zp ZP_WORD:6 24.0 +(byte*) print_line_cursor#63 print_line_cursor#63 zp ZP_WORD:6 36.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@2 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:4 22.0 +(byte*) print_str::str#18 str zp ZP_WORD:4 11.5 +(byte*) print_str::str#20 str zp ZP_WORD:4 2.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word~) print_word::w#10 w zp ZP_WORD:12 4.0 +(word) print_word::w#2 w zp ZP_WORD:12 4.0 +(word) print_word::w#4 w zp ZP_WORD:12 4.0 +(word) print_word::w#5 w zp ZP_WORD:12 4.666666666666666 +(word~) print_word::w#7 w zp ZP_WORD:12 4.0 +(word~) print_word::w#8 w zp ZP_WORD:12 4.0 + +zp ZP_WORD:2 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_WORD:4 [ print_str::str#18 print_str::str#20 print_str::str#0 ] +zp ZP_WORD:6 [ print_line_cursor#32 print_line_cursor#63 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#172 print_line_cursor#173 print_line_cursor#175 ] +zp ZP_WORD:8 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 main::entry1#0 main::fileEntry1_$0#0 ] +reg byte x [ print_byte::b#10 print_byte::b#6 print_byte::b#7 print_byte::b#8 print_byte::b#9 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +zp ZP_WORD:10 [ print_char_cursor#82 print_char_cursor#145 print_char_cursor#143 print_char_cursor#142 print_char_cursor#164 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#224 print_char_cursor#1 print_char_cursor#228 print_char_cursor#229 print_char_cursor#231 print_char_cursor#232 print_char_cursor#11 ] +zp ZP_WORD:12 [ print_word::w#5 print_word::w#7 print_word::w#8 print_word::w#2 print_word::w#10 print_word::w#4 ] +zp ZP_WORD:14 [ initEntry::entry#10 initEntry::entry#0 initEntry::entry#1 ] +reg byte x [ initEntry::n#10 ] +reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] +zp ZP_WORD:16 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u::return#3 main::fileEntry2_$0#0 main::entry2#0 ] +zp ZP_WORD:18 [ mul8u::mb#2 mul8u::mb#1 ] +reg byte a [ keyboard_key_pressed::return#2 ] +reg byte a [ main::$20 ] +reg byte a [ keyboard_key_pressed::return#3 ] +reg byte a [ main::$22 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_key_pressed::$2 ] +reg byte a [ keyboard_key_pressed::return#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] +zp ZP_WORD:20 [ print_line_cursor#1 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +zp ZP_WORD:22 [ initEntry::$1 ] +zp ZP_WORD:24 [ initEntry::$3 ] +zp ZP_WORD:26 [ initEntry::$5 ] +zp ZP_WORD:28 [ initEntry::$7 ] +reg byte a [ initEntry::$9 ] +reg byte a [ initEntry::$11 ] +reg byte a [ initEntry::$13 ] +reg byte a [ initEntry::$15 ] +zp ZP_WORD:30 [ initEntry::$17 ] +reg byte a [ initEntry::$19 ] +reg byte a [ initEntry::$21 ] +reg byte a [ initEntry::$23 ] +reg byte a [ initEntry::$25 ] +reg byte a [ mul8u::$1 ] diff --git a/src/test/ref/sequence-locality-0.sym b/src/test/ref/sequence-locality-0.sym index 1daabbadc..68c1bbfaa 100644 --- a/src/test/ref/sequence-locality-0.sym +++ b/src/test/ref/sequence-locality-0.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 6.875 +(byte) main::idx +(byte) main::idx#1 reg byte y 22.0 +(byte) main::idx#2 reg byte y 22.0 +(byte) main::idx#3 reg byte y 11.0 +(byte) main::idx#6 reg byte y 11.0 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::idx#3 main::idx#6 main::idx#1 main::idx#2 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/sequence-locality-1.sym b/src/test/ref/sequence-locality-1.sym index 1daabbadc..450b6f3bd 100644 --- a/src/test/ref/sequence-locality-1.sym +++ b/src/test/ref/sequence-locality-1.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#3 reg byte y 9.428571428571429 +(byte) main::idx +(byte) main::idx#1 reg byte x 7.333333333333333 +(byte) main::idx#2 reg byte x 5.5 +(byte) main::j +(byte) main::j#1 reg byte a 22.0 +(byte) main::j#2 reg byte a 33.0 +(byte~) main::j#4 reg byte a 22.0 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte y [ main::i#3 main::i#1 ] +reg byte x [ main::idx#2 main::idx#1 ] +reg byte a [ main::j#2 main::j#4 main::j#1 ] diff --git a/src/test/ref/signed-bytes.sym b/src/test/ref/signed-bytes.sym index 1daabbadc..4f11ae0c0 100644 --- a/src/test/ref/signed-bytes.sym +++ b/src/test/ref/signed-bytes.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(signed byte) main::i +(signed byte) main::i#1 reg byte x 11.0 +(signed byte) main::i#2 reg byte x 11.0 +(byte) main::j +(byte) main::j#1 reg byte y 22.0 +(byte) main::j#2 reg byte y 8.25 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::j#2 main::j#1 ] diff --git a/src/test/ref/signed-indexed-subtract.sym b/src/test/ref/signed-indexed-subtract.sym index 1daabbadc..d8e95d44f 100644 --- a/src/test/ref/signed-indexed-subtract.sym +++ b/src/test/ref/signed-indexed-subtract.sym @@ -1 +1,99 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$8 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 7.857142857142857 +(byte) main::j +(byte) main::j#1 reg byte x 11.0 +(byte) main::j#2 reg byte x 5.5 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:6 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:6 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:6 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:7 5.190476190476189 +(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:7 5.0 +(byte*) print_char_cursor#41 print_char_cursor zp ZP_WORD:7 3.0 +(byte*) print_char_cursor#44 print_char_cursor zp ZP_WORD:7 2.0 +(byte*) print_char_cursor#46 print_char_cursor zp ZP_WORD:7 3.0 +(byte*~) print_char_cursor#63 print_char_cursor zp ZP_WORD:7 22.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:9 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:9 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 46.42857142857143 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:2 2.1666666666666665 +(byte*) print_line_cursor#9 print_line_cursor zp ZP_WORD:2 204.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:4 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:4 4.25 +(signed word) print_sword::w#3 w zp ZP_WORD:4 1.3333333333333333 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(void()) sub((byte) sub::idx , (byte) sub::s) +(byte~) sub::$0 reg byte a 6.0 +(label) sub::@return +(byte) sub::idx +(byte) sub::idx#0 reg byte a 22.0 +(byte) sub::idx#1 reg byte a 22.0 +(byte) sub::idx#2 reg byte a 22.0 +(byte) sub::idx#3 reg byte a 35.0 +(byte) sub::s +(byte) sub::s#3 reg byte x 1.0 +(signed word[]) words +(const signed word[]) words#0 words = { (signed word) -$6000, (signed word) -$600, (signed word) -$60, (signed word) -6, (signed word) 0, (signed word) 6, (signed word) $60, (signed word) $600, (signed word) $6000 } + +reg byte y [ main::i#2 main::i#1 ] +reg byte x [ main::j#2 main::j#1 ] +zp ZP_WORD:2 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] +zp ZP_WORD:4 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] +zp ZP_BYTE:6 [ 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:7 [ print_char_cursor#32 print_char_cursor#44 print_char_cursor#41 print_char_cursor#46 print_char_cursor#63 print_char_cursor#12 ] +zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ sub::idx#3 sub::idx#0 sub::idx#1 sub::idx#2 ] +reg byte x [ sub::s#3 ] +reg byte a [ main::$8 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +reg byte a [ sub::$0 ] diff --git a/src/test/ref/signed-word-minus-byte-2.sym b/src/test/ref/signed-word-minus-byte-2.sym index 1daabbadc..8032d114d 100644 --- a/src/test/ref/signed-word-minus-byte-2.sym +++ b/src/test/ref/signed-word-minus-byte-2.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 8.25 +(signed word*) main::screen +(const signed word*) main::screen#0 screen = (signed word*) 1024 +(signed word) main::w1 +(signed word) main::w1#1 w1 zp ZP_WORD:2 6.6000000000000005 +(signed word) main::w1#2 w1 zp ZP_WORD:2 22.0 + +zp ZP_WORD:2 [ main::w1#2 main::w1#1 ] +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$2 ] diff --git a/src/test/ref/signed-words.sym b/src/test/ref/signed-words.sym index 1daabbadc..219fd4624 100644 --- a/src/test/ref/signed-words.sym +++ b/src/test/ref/signed-words.sym @@ -1 +1,92 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = (byte*) 8192 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = (byte*) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = (byte*) 53269 +(byte*) SPRITES_EXPAND_X +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = (byte*) 53277 +(byte*) SPRITES_EXPAND_Y +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = (byte*) 53271 +(byte*) SPRITES_PTR +(const byte*) SPRITES_PTR#0 SPRITES_PTR = (const byte*) SCREEN#0+(word) $3f8 +(byte*) SPRITES_XMSB +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = (byte*) 53264 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = (byte*) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249 +(byte) WHITE +(const byte) WHITE#0 WHITE = (byte) 1 +(void()) anim() +(byte~) anim::$10 reg byte a 4.0 +(byte~) anim::$11 reg byte a 4.0 +(signed word~) anim::$5 $5 zp ZP_WORD:14 4.0 +(signed word~) anim::$7 $7 zp ZP_WORD:16 4.0 +(byte~) anim::$9 reg byte a 4.0 +(label) anim::@1 +(label) anim::@2 +(label) anim::@3 +(label) anim::@4 +(label) anim::@return +(signed word) anim::sprite_x +(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:14 0.5714285714285714 +(signed word) anim::sprite_y +(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:16 0.6666666666666666 +(signed word) g +(const signed word) g#0 g = (signed byte) -5 +(void()) init() +(label) init::@1 +(label) init::@2 +(label) init::@return +(byte) init::i +(byte) init::i#1 reg byte x 16.5 +(byte) init::i#2 reg byte x 16.5 +(byte*) init::sc +(byte*) init::sc#1 sc zp ZP_WORD:12 16.5 +(byte*) init::sc#2 sc zp ZP_WORD:12 16.5 +(void()) main() +(label) main::@1 +(label) main::@2 +(signed word) xpos +(signed word) xpos#10 xpos zp ZP_WORD:8 1.0714285714285714 +(signed word) xpos#12 xpos zp ZP_WORD:8 3.25 +(signed word) xpos#9 xpos zp ZP_WORD:8 2.0 +(signed word) xvel +(signed word) xvel#10 xvel zp ZP_WORD:2 1.0625 +(signed word) xvel#12 xvel zp ZP_WORD:2 3.75 +(signed word) xvel#14 xvel zp ZP_WORD:2 0.6666666666666666 +(signed word) ypos +(signed word) ypos#10 ypos zp ZP_WORD:10 1.3333333333333333 +(signed word) ypos#11 ypos zp ZP_WORD:10 1.1538461538461537 +(signed word) ypos#13 ypos zp ZP_WORD:10 3.75 +(signed word) yvel +(signed word) yvel#10 yvel#10 zp ZP_WORD:6 0.9999999999999999 +(signed word) yvel#12 yvel#12 zp ZP_WORD:6 3.25 +(signed word~) yvel#20 yvel#20 zp ZP_WORD:6 4.0 +(signed word) yvel#4 yvel zp ZP_WORD:4 3.0 +(signed word) yvel#9 yvel#9 zp ZP_WORD:6 6.0 +(signed word) yvel_init +(signed word) yvel_init#11 yvel_init zp ZP_WORD:4 0.9375 +(signed word) yvel_init#13 yvel_init zp ZP_WORD:4 3.0 +(signed word) yvel_init#3 yvel_init zp ZP_WORD:4 2.0 + +zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ] +zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ] +zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#20 ] +zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ] +zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ] +zp ZP_WORD:12 [ init::sc#2 init::sc#1 ] +reg byte x [ init::i#2 init::i#1 ] +zp ZP_WORD:14 [ anim::$5 anim::sprite_x#0 ] +zp ZP_WORD:16 [ anim::$7 anim::sprite_y#0 ] +reg byte a [ anim::$9 ] +reg byte a [ anim::$10 ] +reg byte a [ anim::$11 ] diff --git a/src/test/ref/simple-loop.sym b/src/test/ref/simple-loop.sym index 1daabbadc..05c39000d 100644 --- a/src/test/ref/simple-loop.sym +++ b/src/test/ref/simple-loop.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/sinus-basic.sym b/src/test/ref/sinus-basic.sym index 1daabbadc..bfd295175 100644 --- a/src/test/ref/sinus-basic.sym +++ b/src/test/ref/sinus-basic.sym @@ -1 +1,124 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) addMEMtoFAC((byte*) addMEMtoFAC::mem) +(label) addMEMtoFAC::@1 +(label) addMEMtoFAC::@return +(byte*) addMEMtoFAC::mem +(void()) divFACby10() +(label) divFACby10::@return +(void()) divMEMbyFAC((byte*) divMEMbyFAC::mem) +(label) divMEMbyFAC::@1 +(label) divMEMbyFAC::@return +(byte*) divMEMbyFAC::mem +(word()) getFAC() +(label) getFAC::@return +(word) getFAC::return +(word) getFAC::return#0 return zp ZP_WORD:9 4.333333333333333 +(word) getFAC::return#2 return zp ZP_WORD:9 22.0 +(word) getFAC::w +(void()) main() +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte[]) main::f_127 +(const byte[]) main::f_127#0 f_127 = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte*) main::f_2pi +(const byte*) main::f_2pi#0 f_2pi = (byte*) 58085 +(byte[]) main::f_i +(const byte[]) main::f_i#0 f_i = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 11.0 +(byte) main::i#10 i zp ZP_BYTE:2 0.9166666666666666 +(byte*) memHi +(const byte*) memHi#0 memHi = (byte*) 255 +(byte*) memLo +(const byte*) memLo#0 memLo = (byte*) 254 +(void()) mulFACbyMEM((byte*) mulFACbyMEM::mem) +(label) mulFACbyMEM::@1 +(label) mulFACbyMEM::@return +(byte*) mulFACbyMEM::mem +(byte*) mulFACbyMEM::mem#2 mem zp ZP_WORD:7 2.0 +(void()) prepareMEM((byte*) prepareMEM::mem) +(byte~) prepareMEM::$0 reg byte a 4.0 +(byte~) prepareMEM::$1 reg byte a 4.0 +(label) prepareMEM::@return +(byte*) prepareMEM::mem +(byte*) prepareMEM::mem#1 mem zp ZP_WORD:7 4.0 +(byte*) prepareMEM::mem#4 mem zp ZP_WORD:7 4.0 +(byte*) prepareMEM::mem#5 mem zp ZP_WORD:7 3.333333333333333 +(byte*~) prepareMEM::mem#7 mem zp ZP_WORD:7 4.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 reg byte x 4.0 +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#2 reg byte x 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#10 print_char_cursor zp ZP_WORD:5 6.2941176470588225 +(byte*) print_char_cursor#23 print_char_cursor zp ZP_WORD:5 4.0 +(byte*) print_char_cursor#31 print_char_cursor zp ZP_WORD:5 2.0 +(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:5 0.5909090909090909 +(byte*~) print_char_cursor#53 print_char_cursor zp ZP_WORD:5 22.0 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 46.42857142857143 +(byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:3 0.5416666666666666 +(byte*) print_line_cursor#6 print_line_cursor zp ZP_WORD:3 204.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#0 w zp ZP_WORD:9 5.0 +(void()) setFAC((word) setFAC::w) +(label) setFAC::@1 +(label) setFAC::@return +(word) setFAC::w +(word) setFAC::w#1 w zp ZP_WORD:7 22.0 +(word) setFAC::w#3 w zp ZP_WORD:7 11.0 +(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem) +(label) setMEMtoFAC::@1 +(label) setMEMtoFAC::@return +(byte*) setMEMtoFAC::mem +(byte*) setMEMtoFAC::mem#2 mem zp ZP_WORD:7 2.0 +(void()) sinFAC() +(label) sinFAC::@return + +zp ZP_BYTE:2 [ main::i#10 main::i#1 ] +zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] +reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +zp ZP_WORD:5 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#53 print_char_cursor#10 ] +zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 ] +zp ZP_WORD:9 [ getFAC::return#2 print_word::w#0 getFAC::return#0 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +reg byte a [ prepareMEM::$0 ] +reg byte a [ prepareMEM::$1 ] diff --git a/src/test/ref/sinusgen16.sym b/src/test/ref/sinusgen16.sym index 1daabbadc..a0840af4c 100644 --- a/src/test/ref/sinusgen16.sym +++ b/src/test/ref/sinusgen16.sym @@ -1 +1,283 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(dword) PI2_u4f28 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword) $6487ed51 +(dword) PI_HALF_u4f28 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword) $1921fb54 +(dword) PI_u4f28 +(const dword) PI_u4f28#0 PI_u4f28 = (dword) $3243f6a9 +(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2 +(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) +(label) div32u16u::@1 +(label) div32u16u::@2 +(label) div32u16u::@return +(dword) div32u16u::dividend +(word) div32u16u::divisor +(dword) div32u16u::quotient +(word) div32u16u::quotient_hi +(word) div32u16u::quotient_hi#0 quotient_hi zp ZP_WORD:55 0.8 +(word) div32u16u::quotient_lo +(word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:45 4.0 +(dword) div32u16u::return +(dword) div32u16u::return#0 return zp ZP_DWORD:47 1.3333333333333333 +(dword) div32u16u::return#2 return zp ZP_DWORD:47 4.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@6 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:43 2.75 +(word) divr16u::dividend#3 dividend zp ZP_WORD:43 5.0 +(word) divr16u::dividend#5 dividend zp ZP_WORD:43 2.0 +(word) divr16u::divisor +(byte) divr16u::i +(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:45 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:45 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:45 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:41 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:41 22.0 +(word) divr16u::rem#10 rem zp ZP_WORD:41 4.0 +(word) divr16u::rem#11 rem zp ZP_WORD:41 11.666666666666666 +(word) divr16u::rem#2 rem zp ZP_WORD:41 22.0 +(word) divr16u::rem#4 rem zp ZP_WORD:41 4.0 +(word) divr16u::rem#5 rem zp ZP_WORD:41 24.0 +(word) divr16u::rem#6 rem zp ZP_WORD:41 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:45 5.285714285714286 +(word) divr16u::return#2 return zp ZP_WORD:45 4.0 +(word) divr16u::return#3 return zp ZP_WORD:45 4.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(signed word[$78]) main::sintab1 +(const signed word[$78]) main::sintab1#0 sintab1 = { fill( $78, 0) } +(signed word*) main::st1 +(signed word*) main::st1#1 st1 zp ZP_WORD:2 16.5 +(signed word*) main::st1#2 st1 zp ZP_WORD:2 3.3000000000000003 +(const string) main::str str = (string) " @" +(const string) main::str1 str1 = (string) " @" +(signed word) main::sw +(signed word) main::sw#0 sw zp ZP_WORD:6 6.6000000000000005 +(word) main::wavelength +(const word) main::wavelength#0 wavelength = (byte) $78 +(dword()) mul16u((word) mul16u::a , (word) mul16u::b) +(byte~) mul16u::$1 reg byte a 202.0 +(label) mul16u::@1 +(label) mul16u::@2 +(label) mul16u::@3 +(label) mul16u::@4 +(label) mul16u::@return +(word) mul16u::a +(word) mul16u::a#0 a zp ZP_WORD:31 101.0 +(word) mul16u::a#1 a zp ZP_WORD:31 1.3333333333333333 +(word) mul16u::a#2 a zp ZP_WORD:31 67.66666666666666 +(word) mul16u::b +(word) mul16u::b#0 b zp ZP_WORD:29 2.0 +(dword) mul16u::mb +(dword) mul16u::mb#1 mb zp ZP_DWORD:37 202.0 +(dword) mul16u::mb#2 mb zp ZP_DWORD:37 43.57142857142858 +(dword) mul16u::res +(dword) mul16u::res#1 res zp ZP_DWORD:33 202.0 +(dword) mul16u::res#2 res zp ZP_DWORD:33 50.83333333333333 +(dword) mul16u::res#6 res zp ZP_DWORD:33 101.0 +(dword) mul16u::return +(dword) mul16u::return#2 return zp ZP_DWORD:33 4.0 +(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select) +(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:33 4.0 +(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:33 4.0 +(label) mulu16_sel::@1 +(label) mulu16_sel::@return +(word) mulu16_sel::return +(word) mulu16_sel::return#0 return zp ZP_WORD:53 4.0 +(word) mulu16_sel::return#1 return#1 zp ZP_WORD:27 4.0 +(word) mulu16_sel::return#10 return#10 zp ZP_WORD:27 4.0 +(word) mulu16_sel::return#11 return zp ZP_WORD:53 4.0 +(word) mulu16_sel::return#12 return zp ZP_WORD:53 1.714285714285714 +(word) mulu16_sel::return#2 return zp ZP_WORD:53 4.0 +(byte) mulu16_sel::select +(byte) mulu16_sel::select#5 reg byte x 0.3333333333333333 +(word) mulu16_sel::v1 +(word) mulu16_sel::v1#0 v1 zp ZP_WORD:27 2.0 +(word) mulu16_sel::v1#1 v1 zp ZP_WORD:27 2.0 +(word) mulu16_sel::v1#2 v1 zp ZP_WORD:27 4.0 +(word) mulu16_sel::v1#3 v1 zp ZP_WORD:27 2.0 +(word) mulu16_sel::v1#4 v1 zp ZP_WORD:27 2.0 +(word) mulu16_sel::v1#5 v1 zp ZP_WORD:27 12.0 +(word) mulu16_sel::v2 +(word) mulu16_sel::v2#0 v2 zp ZP_WORD:29 4.0 +(word) mulu16_sel::v2#1 v2 zp ZP_WORD:29 4.0 +(word) mulu16_sel::v2#3 v2 zp ZP_WORD:29 4.0 +(word) mulu16_sel::v2#4 v2 zp ZP_WORD:29 4.0 +(word) mulu16_sel::v2#5 v2 zp ZP_WORD:29 5.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 reg byte x 4.0 +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#2 reg byte x 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:8 101.0 +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:8 1.1176470588235294 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:8 40.875 +(byte*) print_char_cursor#33 print_char_cursor zp ZP_WORD:8 5.0 +(byte*) print_char_cursor#43 print_char_cursor zp ZP_WORD:8 3.0 +(byte*) print_char_cursor#46 print_char_cursor zp ZP_WORD:8 2.0 +(byte*) print_char_cursor#48 print_char_cursor zp ZP_WORD:8 6.5 +(byte*) print_char_cursor#49 print_char_cursor zp ZP_WORD:8 8.25 +(byte*) print_char_cursor#51 print_char_cursor zp ZP_WORD:8 24.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:10 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:10 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:4 202.0 +(byte*) print_str::str#3 str zp ZP_WORD:4 101.5 +(byte*) print_str::str#5 str zp ZP_WORD:4 2.0 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:6 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:6 4.25 +(signed word) print_sword::w#3 w zp ZP_WORD:6 1.3333333333333333 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) rem16u +(word) rem16u#1 rem16u zp ZP_WORD:41 0.8 +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$4 $4 zp ZP_DWORD:21 4.0 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@7 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#2 isUpper zp ZP_BYTE:20 0.06060606060606061 +(signed word) sin16s::return +(signed word) sin16s::return#0 return zp ZP_WORD:25 22.0 +(signed word) sin16s::return#1 return zp ZP_WORD:25 5.0 +(signed word~) sin16s::return#5 return zp ZP_WORD:25 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 sinx zp ZP_WORD:25 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 usinx zp ZP_WORD:25 0.3333333333333333 +(word) sin16s::usinx#1 usinx zp ZP_WORD:25 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 x zp ZP_DWORD:21 8.5 +(dword) sin16s::x#1 x zp ZP_DWORD:21 4.0 +(dword) sin16s::x#2 x zp ZP_DWORD:21 4.0 +(dword) sin16s::x#4 x zp ZP_DWORD:21 5.0 +(dword) sin16s::x#6 x zp ZP_DWORD:21 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 x1 zp ZP_WORD:51 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 x2 zp ZP_WORD:27 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 x3 zp ZP_WORD:27 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:53 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 x4 zp ZP_WORD:27 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 x5 zp ZP_WORD:53 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:53 4.0 +(void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) +(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:25 22.0 +(label) sin16s_gen::@1 +(label) sin16s_gen::@2 +(label) sin16s_gen::@3 +(label) sin16s_gen::@return +(word) sin16s_gen::i +(word) sin16s_gen::i#1 i zp ZP_WORD:18 16.5 +(word) sin16s_gen::i#2 i zp ZP_WORD:18 2.75 +(signed word*) sin16s_gen::sintab +(signed word*) sin16s_gen::sintab#0 sintab zp ZP_WORD:16 5.5 +(signed word*) sin16s_gen::sintab#2 sintab zp ZP_WORD:16 5.5 +(dword) sin16s_gen::step +(dword) sin16s_gen::step#0 step zp ZP_DWORD:47 1.1818181818181819 +(word) sin16s_gen::wavelength +(dword) sin16s_gen::x +(dword) sin16s_gen::x#1 x zp ZP_DWORD:12 7.333333333333333 +(dword) sin16s_gen::x#2 x zp ZP_DWORD:12 4.714285714285714 + +zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] +zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] +zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 ] +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:8 [ print_char_cursor#33 print_char_cursor#46 print_char_cursor#43 print_char_cursor#51 print_char_cursor#48 print_char_cursor#49 print_char_cursor#2 print_char_cursor#12 print_char_cursor#1 ] +zp ZP_WORD:10 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_DWORD:12 [ sin16s_gen::x#2 sin16s_gen::x#1 ] +zp ZP_WORD:16 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] +zp ZP_WORD:18 [ sin16s_gen::i#2 sin16s_gen::i#1 ] +zp ZP_BYTE:20 [ sin16s::isUpper#2 ] +zp ZP_DWORD:21 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$4 ] +zp ZP_WORD:25 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 ] +zp ZP_WORD:27 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 ] +zp ZP_WORD:29 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mul16u::b#0 ] +reg byte x [ mulu16_sel::select#5 ] +zp ZP_WORD:31 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] +zp ZP_DWORD:33 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mulu16_sel::$0 mulu16_sel::$1 ] +zp ZP_DWORD:37 [ mul16u::mb#2 mul16u::mb#1 ] +zp ZP_WORD:41 [ 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 ] +zp ZP_WORD:43 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] +zp ZP_WORD:45 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +zp ZP_DWORD:47 [ div32u16u::return#2 sin16s_gen::step#0 div32u16u::return#0 ] +zp ZP_WORD:51 [ sin16s::x1#0 ] +zp ZP_WORD:53 [ mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 ] +reg byte a [ mul16u::$1 ] +zp ZP_WORD:55 [ div32u16u::quotient_hi#0 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] diff --git a/src/test/ref/sinusgen16b.sym b/src/test/ref/sinusgen16b.sym index 1daabbadc..b3a4e9001 100644 --- a/src/test/ref/sinusgen16b.sym +++ b/src/test/ref/sinusgen16b.sym @@ -1 +1,382 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(dword) PI2_u4f28 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword) $6487ed51 +(word) PI_HALF_u4f12 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word) $1922 +(dword) PI_HALF_u4f28 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword) $1921fb54 +(word) PI_u4f12 +(const word) PI_u4f12#0 PI_u4f12 = (word) $3244 +(dword) PI_u4f28 +(const dword) PI_u4f28#0 PI_u4f28 = (dword) $3243f6a9 +(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2 +(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) +(label) div32u16u::@1 +(label) div32u16u::@2 +(label) div32u16u::@return +(dword) div32u16u::dividend +(word) div32u16u::divisor +(dword) div32u16u::quotient +(word) div32u16u::quotient_hi +(word) div32u16u::quotient_hi#0 quotient_hi zp ZP_WORD:69 0.8 +(word) div32u16u::quotient_lo +(word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:46 4.0 +(dword) div32u16u::return +(dword) div32u16u::return#0 return zp ZP_DWORD:63 1.5 +(dword) div32u16u::return#2 return zp ZP_DWORD:63 4.0 +(dword) div32u16u::return#3 return zp ZP_DWORD:63 4.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@6 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:44 2.75 +(word) divr16u::dividend#3 dividend zp ZP_WORD:44 5.0 +(word) divr16u::dividend#5 dividend zp ZP_WORD:44 2.0 +(word) divr16u::divisor +(byte) divr16u::i +(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:46 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:46 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:46 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:42 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:42 22.0 +(word) divr16u::rem#10 rem zp ZP_WORD:42 4.0 +(word) divr16u::rem#11 rem zp ZP_WORD:42 11.666666666666666 +(word) divr16u::rem#2 rem zp ZP_WORD:42 22.0 +(word) divr16u::rem#4 rem zp ZP_WORD:42 4.0 +(word) divr16u::rem#5 rem zp ZP_WORD:42 24.0 +(word) divr16u::rem#6 rem zp ZP_WORD:42 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:46 5.285714285714286 +(word) divr16u::return#2 return zp ZP_WORD:46 4.0 +(word) divr16u::return#3 return zp ZP_WORD:46 4.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 1.8333333333333333 +(signed word[$78]) main::sintab1 +(const signed word[$78]) main::sintab1#0 sintab1 = { fill( $78, 0) } +(signed word[$78]) main::sintab2 +(const signed word[$78]) main::sintab2#0 sintab2 = { fill( $78, 0) } +(signed word*) main::st1 +(signed word*) main::st1#1 st1 zp ZP_WORD:2 5.5 +(signed word*) main::st1#2 st1 zp ZP_WORD:2 3.3000000000000003 +(signed word*) main::st2 +(signed word*) main::st2#1 st2 zp ZP_WORD:4 7.333333333333333 +(signed word*) main::st2#2 st2 zp ZP_WORD:4 3.0 +(const string) main::str str = (string) " @" +(const string) main::str1 str1 = (string) " @" +(signed word) main::sw +(signed word) main::sw#0 sw zp ZP_WORD:8 6.6000000000000005 +(word) main::wavelength +(const word) main::wavelength#0 wavelength = (byte) $78 +(dword()) mul16u((word) mul16u::a , (word) mul16u::b) +(byte~) mul16u::$1 reg byte a 202.0 +(label) mul16u::@1 +(label) mul16u::@2 +(label) mul16u::@3 +(label) mul16u::@4 +(label) mul16u::@return +(word) mul16u::a +(word) mul16u::a#0 a zp ZP_WORD:32 101.0 +(word) mul16u::a#1 a zp ZP_WORD:32 1.3333333333333333 +(word) mul16u::a#2 a zp ZP_WORD:32 67.66666666666666 +(word) mul16u::b +(word) mul16u::b#0 b zp ZP_WORD:30 2.0 +(dword) mul16u::mb +(dword) mul16u::mb#1 mb zp ZP_DWORD:38 202.0 +(dword) mul16u::mb#2 mb zp ZP_DWORD:38 43.57142857142858 +(dword) mul16u::res +(dword) mul16u::res#1 res zp ZP_DWORD:34 202.0 +(dword) mul16u::res#2 res zp ZP_DWORD:34 50.83333333333333 +(dword) mul16u::res#6 res zp ZP_DWORD:34 101.0 +(dword) mul16u::return +(dword) mul16u::return#2 return zp ZP_DWORD:34 4.0 +(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select) +(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:34 4.0 +(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:34 4.0 +(label) mulu16_sel::@1 +(label) mulu16_sel::@return +(word) mulu16_sel::return +(word) mulu16_sel::return#0 return zp ZP_WORD:28 4.0 +(word) mulu16_sel::return#1 return zp ZP_WORD:28 4.0 +(word) mulu16_sel::return#10 return zp ZP_WORD:28 4.0 +(word) mulu16_sel::return#11 return#11 zp ZP_WORD:67 4.0 +(word) mulu16_sel::return#14 return#14 zp ZP_WORD:67 4.0 +(word) mulu16_sel::return#15 return zp ZP_WORD:28 4.0 +(word) mulu16_sel::return#16 return#16 zp ZP_WORD:67 4.0 +(word) mulu16_sel::return#17 return#17 zp ZP_WORD:67 1.8333333333333335 +(word) mulu16_sel::return#18 return#18 zp ZP_WORD:67 4.0 +(word) mulu16_sel::return#19 return zp ZP_WORD:28 4.0 +(word) mulu16_sel::return#20 return#20 zp ZP_WORD:67 4.0 +(byte) mulu16_sel::select +(byte) mulu16_sel::select#10 reg byte x 0.3333333333333333 +(word) mulu16_sel::v1 +(word) mulu16_sel::v1#0 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v1#1 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v1#10 v1 zp ZP_WORD:28 22.0 +(word) mulu16_sel::v1#2 v1 zp ZP_WORD:28 4.0 +(word) mulu16_sel::v1#3 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v1#4 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v1#5 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v1#6 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v1#7 v1 zp ZP_WORD:28 4.0 +(word) mulu16_sel::v1#8 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v1#9 v1 zp ZP_WORD:28 2.0 +(word) mulu16_sel::v2 +(word) mulu16_sel::v2#0 v2 zp ZP_WORD:30 4.0 +(word) mulu16_sel::v2#1 v2 zp ZP_WORD:30 4.0 +(word) mulu16_sel::v2#10 v2 zp ZP_WORD:30 9.0 +(word) mulu16_sel::v2#3 v2 zp ZP_WORD:30 4.0 +(word) mulu16_sel::v2#4 v2 zp ZP_WORD:30 4.0 +(word) mulu16_sel::v2#5 v2 zp ZP_WORD:30 4.0 +(word) mulu16_sel::v2#6 v2 zp ZP_WORD:30 4.0 +(word) mulu16_sel::v2#8 v2 zp ZP_WORD:30 4.0 +(word) mulu16_sel::v2#9 v2 zp ZP_WORD:30 4.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:10 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:10 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:10 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:11 101.0 +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:11 1.1176470588235294 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:11 32.7 +(byte*) print_char_cursor#33 print_char_cursor zp ZP_WORD:11 5.0 +(byte*) print_char_cursor#43 print_char_cursor zp ZP_WORD:11 3.0 +(byte*) print_char_cursor#46 print_char_cursor zp ZP_WORD:11 2.0 +(byte*) print_char_cursor#48 print_char_cursor zp ZP_WORD:11 6.5 +(byte*) print_char_cursor#49 print_char_cursor zp ZP_WORD:11 8.25 +(byte*) print_char_cursor#51 print_char_cursor zp ZP_WORD:11 24.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:13 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:13 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:6 202.0 +(byte*) print_str::str#3 str zp ZP_WORD:6 101.5 +(byte*) print_str::str#5 str zp ZP_WORD:6 2.0 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:8 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:8 4.25 +(signed word) print_sword::w#3 w zp ZP_WORD:8 1.3333333333333333 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) rem16u +(word) rem16u#1 rem16u zp ZP_WORD:42 0.8 +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$4 $4 zp ZP_DWORD:57 4.0 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@7 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#2 isUpper zp ZP_BYTE:56 0.06060606060606061 +(signed word) sin16s::return +(signed word) sin16s::return#0 return zp ZP_WORD:61 22.0 +(signed word) sin16s::return#1 return zp ZP_WORD:61 5.0 +(signed word~) sin16s::return#5 return zp ZP_WORD:61 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 sinx zp ZP_WORD:61 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 usinx zp ZP_WORD:61 0.3333333333333333 +(word) sin16s::usinx#1 usinx zp ZP_WORD:61 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 x zp ZP_DWORD:57 8.5 +(dword) sin16s::x#1 x zp ZP_DWORD:57 4.0 +(dword) sin16s::x#2 x zp ZP_DWORD:57 4.0 +(dword) sin16s::x#4 x zp ZP_DWORD:57 5.0 +(dword) sin16s::x#6 x zp ZP_DWORD:57 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 x1 zp ZP_WORD:71 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 x2 zp ZP_WORD:28 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 x3 zp ZP_WORD:28 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:67 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 x4 zp ZP_WORD:28 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 x5 zp ZP_WORD:67 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:67 4.0 +(void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) +(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:61 22.0 +(label) sin16s_gen::@1 +(label) sin16s_gen::@2 +(label) sin16s_gen::@3 +(label) sin16s_gen::@return +(word) sin16s_gen::i +(word) sin16s_gen::i#1 i zp ZP_WORD:54 16.5 +(word) sin16s_gen::i#2 i zp ZP_WORD:54 2.75 +(signed word*) sin16s_gen::sintab +(signed word*) sin16s_gen::sintab#0 sintab zp ZP_WORD:52 5.5 +(signed word*) sin16s_gen::sintab#2 sintab zp ZP_WORD:52 5.5 +(dword) sin16s_gen::step +(dword) sin16s_gen::step#0 step zp ZP_DWORD:63 1.1818181818181819 +(word) sin16s_gen::wavelength +(dword) sin16s_gen::x +(dword) sin16s_gen::x#1 x zp ZP_DWORD:48 7.333333333333333 +(dword) sin16s_gen::x#2 x zp ZP_DWORD:48 4.714285714285714 +(void()) sin16s_genb((signed word*) sin16s_genb::sintab , (word) sin16s_genb::wavelength) +(signed word~) sin16s_genb::$2 $2 zp ZP_WORD:26 22.0 +(label) sin16s_genb::@1 +(label) sin16s_genb::@2 +(label) sin16s_genb::@3 +(label) sin16s_genb::@return +(word) sin16s_genb::i +(word) sin16s_genb::i#1 i zp ZP_WORD:21 16.5 +(word) sin16s_genb::i#2 i zp ZP_WORD:21 2.75 +(signed word*) sin16s_genb::sintab +(signed word*) sin16s_genb::sintab#0 sintab zp ZP_WORD:19 5.5 +(signed word*) sin16s_genb::sintab#2 sintab zp ZP_WORD:19 5.5 +(dword) sin16s_genb::step +(dword) sin16s_genb::step#0 step zp ZP_DWORD:63 1.1818181818181819 +(word) sin16s_genb::wavelength +(dword) sin16s_genb::x +(dword) sin16s_genb::x#1 x zp ZP_DWORD:15 7.333333333333333 +(dword) sin16s_genb::x#2 x zp ZP_DWORD:15 4.714285714285714 +(signed word()) sin16sb((word) sin16sb::x) +(label) sin16sb::@1 +(label) sin16sb::@10 +(label) sin16sb::@11 +(label) sin16sb::@12 +(label) sin16sb::@2 +(label) sin16sb::@3 +(label) sin16sb::@4 +(label) sin16sb::@5 +(label) sin16sb::@6 +(label) sin16sb::@7 +(label) sin16sb::@8 +(label) sin16sb::@9 +(label) sin16sb::@return +(byte) sin16sb::isUpper +(byte) sin16sb::isUpper#2 isUpper zp ZP_BYTE:23 0.0625 +(signed word) sin16sb::return +(signed word) sin16sb::return#0 return zp ZP_WORD:26 22.0 +(signed word) sin16sb::return#1 return zp ZP_WORD:26 5.0 +(signed word~) sin16sb::return#5 return zp ZP_WORD:26 4.0 +(signed word) sin16sb::sinx +(signed word) sin16sb::sinx#1 sinx zp ZP_WORD:26 4.0 +(word) sin16sb::usinx +(word) sin16sb::usinx#0 usinx zp ZP_WORD:26 0.3333333333333333 +(word) sin16sb::usinx#1 usinx zp ZP_WORD:26 1.0 +(word) sin16sb::x +(word) sin16sb::x#0 x zp ZP_WORD:24 8.5 +(word) sin16sb::x#1 x zp ZP_WORD:24 4.0 +(word) sin16sb::x#2 x zp ZP_WORD:24 4.0 +(word) sin16sb::x#4 x zp ZP_WORD:24 5.0 +(word) sin16sb::x#6 x zp ZP_WORD:24 6.0 +(word) sin16sb::x1 +(word) sin16sb::x1#0 x1 zp ZP_WORD:24 0.6363636363636365 +(word) sin16sb::x2 +(word) sin16sb::x2#0 x2 zp ZP_WORD:28 4.0 +(word) sin16sb::x3 +(word) sin16sb::x3#0 x3 zp ZP_WORD:28 1.0 +(word) sin16sb::x3_6 +(word) sin16sb::x3_6#0 x3_6 zp ZP_WORD:67 4.0 +(word) sin16sb::x4 +(word) sin16sb::x4#0 x4 zp ZP_WORD:28 4.0 +(word) sin16sb::x5 +(word) sin16sb::x5#0 x5 zp ZP_WORD:67 4.0 +(word) sin16sb::x5_128 +(word) sin16sb::x5_128#0 x5_128 zp ZP_WORD:67 4.0 + +zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] +zp ZP_WORD:4 [ main::st2#2 main::st2#1 ] +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:6 [ print_str::str#3 print_str::str#5 print_str::str#0 ] +zp ZP_WORD:8 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 ] +zp ZP_BYTE:10 [ 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:11 [ print_char_cursor#33 print_char_cursor#46 print_char_cursor#43 print_char_cursor#51 print_char_cursor#48 print_char_cursor#49 print_char_cursor#2 print_char_cursor#12 print_char_cursor#1 ] +zp ZP_WORD:13 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_DWORD:15 [ sin16s_genb::x#2 sin16s_genb::x#1 ] +zp ZP_WORD:19 [ sin16s_genb::sintab#2 sin16s_genb::sintab#0 ] +zp ZP_WORD:21 [ sin16s_genb::i#2 sin16s_genb::i#1 ] +zp ZP_BYTE:23 [ sin16sb::isUpper#2 ] +zp ZP_WORD:24 [ sin16sb::x#6 sin16sb::x#4 sin16sb::x#0 sin16sb::x#1 sin16sb::x#2 sin16sb::x1#0 ] +zp ZP_WORD:26 [ sin16sb::return#1 sin16sb::return#5 sin16sb::sinx#1 sin16sb::usinx#1 sin16sb::return#0 sin16s_genb::$2 sin16sb::usinx#0 ] +zp ZP_WORD:28 [ mulu16_sel::v1#10 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#8 mulu16_sel::v1#9 mulu16_sel::v1#5 mulu16_sel::v1#6 mulu16_sel::v1#7 sin16sb::x3#0 sin16s::x3#0 sin16sb::x2#0 sin16sb::x4#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#19 mulu16_sel::return#10 mulu16_sel::return#0 mulu16_sel::return#1 mulu16_sel::return#15 ] +zp ZP_WORD:30 [ mulu16_sel::v2#10 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mulu16_sel::v2#8 mulu16_sel::v2#9 mulu16_sel::v2#5 mulu16_sel::v2#6 mul16u::b#0 ] +reg byte x [ mulu16_sel::select#10 ] +zp ZP_WORD:32 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] +zp ZP_DWORD:34 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mulu16_sel::$0 mulu16_sel::$1 ] +zp ZP_DWORD:38 [ mul16u::mb#2 mul16u::mb#1 ] +zp ZP_WORD:42 [ 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 ] +zp ZP_WORD:44 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] +zp ZP_WORD:46 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +zp ZP_DWORD:48 [ sin16s_gen::x#2 sin16s_gen::x#1 ] +zp ZP_WORD:52 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] +zp ZP_WORD:54 [ sin16s_gen::i#2 sin16s_gen::i#1 ] +zp ZP_BYTE:56 [ sin16s::isUpper#2 ] +zp ZP_DWORD:57 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$4 ] +zp ZP_WORD:61 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +zp ZP_DWORD:63 [ div32u16u::return#3 sin16s_genb::step#0 div32u16u::return#0 div32u16u::return#2 sin16s_gen::step#0 ] +zp ZP_WORD:67 [ mulu16_sel::return#18 mulu16_sel::return#17 mulu16_sel::return#20 sin16sb::x3_6#0 mulu16_sel::return#11 sin16sb::x5#0 mulu16_sel::return#14 sin16s::x3_6#0 mulu16_sel::return#16 sin16s::x5#0 sin16sb::x5_128#0 sin16s::x5_128#0 ] +reg byte a [ mul16u::$1 ] +zp ZP_WORD:69 [ div32u16u::quotient_hi#0 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] +zp ZP_WORD:71 [ sin16s::x1#0 ] diff --git a/src/test/ref/sinusgen8.sym b/src/test/ref/sinusgen8.sym index 1daabbadc..ae397417b 100644 --- a/src/test/ref/sinusgen8.sym +++ b/src/test/ref/sinusgen8.sym @@ -1 +1,282 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(word) PI2_u4f12 +(const word) PI2_u4f12#0 PI2_u4f12 = (word) $6488 +(word) PI_HALF_u4f12 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word) $1922 +(word) PI_u4f12 +(const word) PI_u4f12#0 PI_u4f12 = (word) $3244 +(word()) div16u((word) div16u::dividend , (word) div16u::divisor) +(label) div16u::@1 +(label) div16u::@return +(word) div16u::dividend +(word) div16u::divisor +(word) div16u::return +(word) div16u::return#0 return zp ZP_WORD:27 1.3333333333333333 +(word) div16u::return#2 return zp ZP_WORD:27 4.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:25 2.75 +(word) divr16u::dividend#2 dividend zp ZP_WORD:25 4.714285714285714 +(word) divr16u::divisor +(byte) divr16u::i +(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:27 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:27 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:27 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:23 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:23 22.0 +(word) divr16u::rem#2 rem zp ZP_WORD:23 22.0 +(word) divr16u::rem#4 rem zp ZP_WORD:23 22.0 +(word) divr16u::rem#5 rem zp ZP_WORD:23 11.0 +(word) divr16u::rem#9 rem zp ZP_WORD:23 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:27 7.000000000000001 +(word) divr16u::return#2 return zp ZP_WORD:27 4.0 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 3.3000000000000003 +(signed byte) main::sb +(signed byte) main::sb#0 sb zp ZP_BYTE:4 6.6000000000000005 +(signed byte[$c0]) main::sintab2 +(const signed byte[$c0]) main::sintab2#0 sintab2 = { fill( $c0, 0) } +(byte[]) main::sintabref +(const byte[]) main::sintabref#0 sintabref = { (byte) 0, (byte) 4, (byte) 8, (byte) $c, (byte) $11, (byte) $15, (byte) $19, (byte) $1d, (byte) $21, (byte) $25, (byte) $29, (byte) $2d, (byte) $31, (byte) $35, (byte) $38, (byte) $3c, (byte) $40, (byte) $43, (byte) $47, (byte) $4a, (byte) $4e, (byte) $51, (byte) $54, (byte) $57, (byte) $5a, (byte) $5d, (byte) $60, (byte) $63, (byte) $65, (byte) $68, (byte) $6a, (byte) $6c, (byte) $6e, (byte) $70, (byte) $72, (byte) $74, (byte) $76, (byte) $77, (byte) $79, (byte) $7a, (byte) $7b, (byte) $7c, (byte) $7d, (byte) $7e, (byte) $7e, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $80, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $7e, (byte) $7e, (byte) $7d, (byte) $7c, (byte) $7b, (byte) $7a, (byte) $79, (byte) $77, (byte) $76, (byte) $74, (byte) $72, (byte) $70, (byte) $6e, (byte) $6c, (byte) $6a, (byte) $68, (byte) $65, (byte) $63, (byte) $60, (byte) $5d, (byte) $5a, (byte) $57, (byte) $54, (byte) $51, (byte) $4e, (byte) $4a, (byte) $47, (byte) $43, (byte) $40, (byte) $3c, (byte) $38, (byte) $35, (byte) $31, (byte) $2d, (byte) $29, (byte) $25, (byte) $21, (byte) $1d, (byte) $19, (byte) $15, (byte) $11, (byte) $c, (byte) 8, (byte) 4, (byte) 0, (byte) $fc, (byte) $f8, (byte) $f4, (byte) $ef, (byte) $eb, (byte) $e7, (byte) $e3, (byte) $df, (byte) $db, (byte) $d7, (byte) $d3, (byte) $cf, (byte) $cb, (byte) $c8, (byte) $c4, (byte) $c0, (byte) $bd, (byte) $b9, (byte) $b6, (byte) $b2, (byte) $af, (byte) $ac, (byte) $a9, (byte) $a6, (byte) $a3, (byte) $a0, (byte) $9d, (byte) $9b, (byte) $98, (byte) $96, (byte) $94, (byte) $92, (byte) $90, (byte) $8e, (byte) $8c, (byte) $8a, (byte) $89, (byte) $87, (byte) $86, (byte) $85, (byte) $84, (byte) $83, (byte) $82, (byte) $82, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $81, (byte) $82, (byte) $82, (byte) $83, (byte) $84, (byte) $85, (byte) $86, (byte) $87, (byte) $89, (byte) $8a, (byte) $8c, (byte) $8e, (byte) $90, (byte) $92, (byte) $94, (byte) $96, (byte) $98, (byte) $9b, (byte) $9d, (byte) $a0, (byte) $a3, (byte) $a6, (byte) $a9, (byte) $ac, (byte) $af, (byte) $b2, (byte) $b6, (byte) $b9, (byte) $bd, (byte) $c0, (byte) $c4, (byte) $c8, (byte) $cb, (byte) $cf, (byte) $d3, (byte) $d7, (byte) $db, (byte) $df, (byte) $e3, (byte) $e7, (byte) $eb, (byte) $ef, (byte) $f4, (byte) $f8, (byte) $fc } +(const string) main::str str = (string) " @" +(const string) main::str1 str1 = (string) " @" +(word) main::wavelength +(const word) main::wavelength#0 wavelength = (byte) $c0 +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 202.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 101.0 +(byte) mul8u::a#1 reg byte x 1.3333333333333333 +(byte) mul8u::a#2 reg byte x 67.66666666666666 +(byte) mul8u::b +(byte) mul8u::b#0 reg byte a 2.0 +(word) mul8u::mb +(word) mul8u::mb#1 mb zp ZP_WORD:21 202.0 +(word) mul8u::mb#2 mb zp ZP_WORD:21 43.57142857142858 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:19 202.0 +(word) mul8u::res#2 res zp ZP_WORD:19 50.83333333333333 +(word) mul8u::res#6 res zp ZP_WORD:19 101.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:19 4.0 +(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select) +(word~) mulu8_sel::$0 $0 zp ZP_WORD:19 4.0 +(word~) mulu8_sel::$1 $1 zp ZP_WORD:19 4.0 +(label) mulu8_sel::@1 +(label) mulu8_sel::@return +(byte) mulu8_sel::return +(byte) mulu8_sel::return#0 reg byte a 4.0 +(byte) mulu8_sel::return#1 reg byte a 4.0 +(byte) mulu8_sel::return#10 reg byte a 4.0 +(byte) mulu8_sel::return#11 reg byte a 4.0 +(byte) mulu8_sel::return#12 reg byte a 1.714285714285714 +(byte) mulu8_sel::return#2 reg byte a 4.0 +(byte) mulu8_sel::select +(byte) mulu8_sel::select#5 select zp ZP_BYTE:18 0.3333333333333333 +(byte) mulu8_sel::v1 +(byte) mulu8_sel::v1#0 reg byte x 2.0 +(byte) mulu8_sel::v1#1 reg byte x 2.0 +(byte) mulu8_sel::v1#2 reg byte x 4.0 +(byte) mulu8_sel::v1#3 reg byte x 2.0 +(byte) mulu8_sel::v1#4 reg byte x 2.0 +(byte) mulu8_sel::v1#5 reg byte x 12.0 +(byte) mulu8_sel::v2 +(byte) mulu8_sel::v2#0 reg byte y 4.0 +(byte) mulu8_sel::v2#1 reg byte y 4.0 +(byte) mulu8_sel::v2#3 reg byte y 4.0 +(byte) mulu8_sel::v2#4 reg byte y 4.0 +(byte) mulu8_sel::v2#5 reg byte y 5.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 101.0 +(byte*) print_char_cursor#10 print_char_cursor zp ZP_WORD:5 1.0 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:5 40.875 +(byte*) print_char_cursor#29 print_char_cursor zp ZP_WORD:5 6.0 +(byte*) print_char_cursor#44 print_char_cursor zp ZP_WORD:5 5.200000000000001 +(byte*) print_char_cursor#45 print_char_cursor zp ZP_WORD:5 8.25 +(byte*) print_char_cursor#47 print_char_cursor zp ZP_WORD:5 24.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:7 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:7 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024 +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 b zp ZP_BYTE:4 4.0 +(signed byte) print_sbyte::b#1 b zp ZP_BYTE:4 2.8333333333333335 +(signed byte) print_sbyte::b#4 b zp ZP_BYTE:4 1.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:2 202.0 +(byte*) print_str::str#3 str zp ZP_WORD:2 101.5 +(byte*) print_str::str#5 str zp ZP_WORD:2 2.0 +(signed byte()) sin8s((word) sin8s::x) +(word~) sin8s::$4 $4 zp ZP_WORD:16 4.0 +(label) sin8s::@1 +(label) sin8s::@10 +(label) sin8s::@11 +(label) sin8s::@12 +(label) sin8s::@13 +(label) sin8s::@14 +(label) sin8s::@2 +(label) sin8s::@3 +(label) sin8s::@4 +(label) sin8s::@5 +(label) sin8s::@6 +(label) sin8s::@7 +(label) sin8s::@8 +(label) sin8s::@9 +(label) sin8s::@return +(byte) sin8s::DIV_6 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte) $2b +(byte) sin8s::isUpper +(byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:15 0.05555555555555555 +(signed byte) sin8s::return +(signed byte) sin8s::return#0 reg byte a 22.0 +(signed byte) sin8s::return#1 reg byte a 5.0 +(signed byte~) sin8s::return#5 reg byte a 4.0 +(signed byte) sin8s::sinx +(signed byte) sin8s::sinx#1 reg byte a 4.0 +(byte) sin8s::usinx +(byte) sin8s::usinx#0 usinx zp ZP_BYTE:31 0.3333333333333333 +(byte) sin8s::usinx#1 reg byte x 4.0 +(byte) sin8s::usinx#2 reg byte x 4.0 +(byte) sin8s::usinx#4 reg byte x 2.0 +(word) sin8s::x +(word) sin8s::x#0 x zp ZP_WORD:16 8.5 +(word) sin8s::x#1 x zp ZP_WORD:16 4.0 +(word) sin8s::x#2 x zp ZP_WORD:16 4.0 +(word) sin8s::x#4 x zp ZP_WORD:16 5.0 +(word) sin8s::x#6 x zp ZP_WORD:16 6.0 +(byte) sin8s::x1 +(byte) sin8s::x1#0 x1 zp ZP_BYTE:29 0.6363636363636365 +(byte) sin8s::x2 +(byte) sin8s::x2#0 reg byte a 4.0 +(byte) sin8s::x3 +(byte) sin8s::x3#0 x3 zp ZP_BYTE:30 1.0 +(byte) sin8s::x3_6 +(byte) sin8s::x3_6#0 reg byte a 4.0 +(byte) sin8s::x4 +(byte) sin8s::x4#0 reg byte a 4.0 +(byte) sin8s::x5 +(byte) sin8s::x5#0 reg byte a 4.0 +(byte) sin8s::x5_128 +(byte) sin8s::x5_128#0 reg byte a 4.0 +(void()) sin8s_gen((signed byte*) sin8s_gen::sintab , (word) sin8s_gen::wavelength) +(signed byte~) sin8s_gen::$1 reg byte a 22.0 +(label) sin8s_gen::@1 +(label) sin8s_gen::@2 +(label) sin8s_gen::@3 +(label) sin8s_gen::@return +(word) sin8s_gen::i +(word) sin8s_gen::i#1 i zp ZP_WORD:13 16.5 +(word) sin8s_gen::i#2 i zp ZP_WORD:13 2.75 +(signed byte*) sin8s_gen::sintab +(signed byte*) sin8s_gen::sintab#0 sintab zp ZP_WORD:11 5.5 +(signed byte*) sin8s_gen::sintab#2 sintab zp ZP_WORD:11 5.5 +(word) sin8s_gen::step +(word) sin8s_gen::step#0 step zp ZP_WORD:27 1.1818181818181819 +(word) sin8s_gen::wavelength +(word) sin8s_gen::x +(word) sin8s_gen::x#1 x zp ZP_WORD:9 7.333333333333333 +(word) sin8s_gen::x#2 x zp ZP_WORD:9 4.714285714285714 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ print_str::str#3 print_str::str#5 print_str::str#0 ] +zp ZP_BYTE:4 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 main::sb#0 ] +reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] +zp ZP_WORD:5 [ print_char_cursor#29 print_char_cursor#47 print_char_cursor#44 print_char_cursor#45 print_char_cursor#2 print_char_cursor#10 print_char_cursor#1 ] +zp ZP_WORD:7 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_WORD:9 [ sin8s_gen::x#2 sin8s_gen::x#1 ] +zp ZP_WORD:11 [ sin8s_gen::sintab#2 sin8s_gen::sintab#0 ] +zp ZP_WORD:13 [ sin8s_gen::i#2 sin8s_gen::i#1 ] +zp ZP_BYTE:15 [ sin8s::isUpper#10 ] +zp ZP_WORD:16 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 sin8s::$4 ] +reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] +reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ] +reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] +reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] +zp ZP_BYTE:18 [ mulu8_sel::select#5 ] +reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] +zp ZP_WORD:19 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mulu8_sel::$0 mulu8_sel::$1 ] +zp ZP_WORD:21 [ mul8u::mb#2 mul8u::mb#1 ] +reg byte a [ mul8u::b#0 ] +zp ZP_WORD:23 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] +zp ZP_WORD:25 [ divr16u::dividend#2 divr16u::dividend#0 ] +zp ZP_WORD:27 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#2 sin8s_gen::step#0 div16u::return#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +reg byte a [ sin8s::return#0 ] +reg byte a [ sin8s_gen::$1 ] +zp ZP_BYTE:29 [ sin8s::x1#0 ] +reg byte a [ mulu8_sel::return#0 ] +reg byte a [ sin8s::x2#0 ] +reg byte a [ mulu8_sel::return#1 ] +zp ZP_BYTE:30 [ sin8s::x3#0 ] +reg byte a [ mulu8_sel::return#2 ] +reg byte a [ sin8s::x3_6#0 ] +zp ZP_BYTE:31 [ sin8s::usinx#0 ] +reg byte a [ mulu8_sel::return#10 ] +reg byte a [ sin8s::x4#0 ] +reg byte a [ mulu8_sel::return#11 ] +reg byte a [ sin8s::x5#0 ] +reg byte a [ sin8s::x5_128#0 ] +reg byte a [ mulu8_sel::return#12 ] +reg byte a [ mul8u::$1 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] diff --git a/src/test/ref/sinusgen8b.sym b/src/test/ref/sinusgen8b.sym index 1daabbadc..788f78380 100644 --- a/src/test/ref/sinusgen8b.sym +++ b/src/test/ref/sinusgen8b.sym @@ -1 +1,449 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(word) PI2_u4f12 +(const word) PI2_u4f12#0 PI2_u4f12 = (word) $6488 +(dword) PI2_u4f28 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword) $6487ed51 +(word) PI_HALF_u4f12 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word) $1922 +(dword) PI_HALF_u4f28 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword) $1921fb54 +(word) PI_u4f12 +(const word) PI_u4f12#0 PI_u4f12 = (word) $3244 +(dword) PI_u4f28 +(const dword) PI_u4f28#0 PI_u4f28 = (dword) $3243f6a9 +(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2 +(word()) div16u((word) div16u::dividend , (word) div16u::divisor) +(label) div16u::@1 +(label) div16u::@return +(word) div16u::dividend +(word) div16u::divisor +(word) div16u::return +(word) div16u::return#0 return zp ZP_WORD:42 1.3333333333333333 +(word) div16u::return#2 return zp ZP_WORD:42 4.0 +(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) +(label) div32u16u::@1 +(label) div32u16u::@2 +(label) div32u16u::@return +(dword) div32u16u::dividend +(word) div32u16u::divisor +(dword) div32u16u::quotient +(word) div32u16u::quotient_hi +(word) div32u16u::quotient_hi#0 quotient_hi zp ZP_WORD:71 0.8 +(word) div32u16u::quotient_lo +(word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:42 4.0 +(dword) div32u16u::return +(dword) div32u16u::return#0 return zp ZP_DWORD:63 1.3333333333333333 +(dword) div32u16u::return#2 return zp ZP_DWORD:63 4.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@6 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:40 2.75 +(word) divr16u::dividend#4 dividend zp ZP_WORD:40 5.0 +(word) divr16u::dividend#6 dividend zp ZP_WORD:40 2.0 +(word) divr16u::divisor +(byte) divr16u::i +(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:42 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:42 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:42 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:38 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:38 22.0 +(word) divr16u::rem#10 rem zp ZP_WORD:38 11.666666666666666 +(word) divr16u::rem#11 rem zp ZP_WORD:38 4.0 +(word) divr16u::rem#2 rem zp ZP_WORD:38 22.0 +(word) divr16u::rem#5 rem zp ZP_WORD:38 4.0 +(word) divr16u::rem#6 rem zp ZP_WORD:38 24.0 +(word) divr16u::rem#7 rem zp ZP_WORD:38 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:42 4.875 +(word) divr16u::return#2 return zp ZP_WORD:42 4.0 +(word) divr16u::return#3 return zp ZP_WORD:42 4.0 +(word) divr16u::return#4 return zp ZP_WORD:42 4.0 +(void()) main() +(word~) main::$11 $11 zp ZP_WORD:59 22.0 +(word~) main::$3 $3 zp ZP_WORD:59 22.0 +(signed word*~) main::$4 $4 zp ZP_WORD:59 22.0 +(byte~) main::$5 reg byte a 11.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 2.75 +(signed byte) main::sb +(signed byte) main::sb#0 sb zp ZP_BYTE:58 3.6666666666666665 +(signed byte) main::sd +(signed byte) main::sd#0 reg byte a 22.0 +(signed byte[$c0]) main::sintabb +(const signed byte[$c0]) main::sintabb#0 sintabb = { fill( $c0, 0) } +(signed word[$c0]) main::sintabw +(const signed word[$c0]) main::sintabw#0 sintabw = { fill( $c0, 0) } +(const string) main::str str = (string) " @" +(signed word) main::sw +(signed word) main::sw#0 sw zp ZP_WORD:61 22.0 +(word) main::wavelength +(const word) main::wavelength#0 wavelength = (byte) $c0 +(dword()) mul16u((word) mul16u::a , (word) mul16u::b) +(byte~) mul16u::$1 reg byte a 202.0 +(label) mul16u::@1 +(label) mul16u::@2 +(label) mul16u::@3 +(label) mul16u::@4 +(label) mul16u::@return +(word) mul16u::a +(word) mul16u::a#0 a zp ZP_WORD:28 101.0 +(word) mul16u::a#1 a zp ZP_WORD:28 1.3333333333333333 +(word) mul16u::a#2 a zp ZP_WORD:28 67.66666666666666 +(word) mul16u::b +(word) mul16u::b#0 b zp ZP_WORD:26 2.0 +(dword) mul16u::mb +(dword) mul16u::mb#1 mb zp ZP_DWORD:34 202.0 +(dword) mul16u::mb#2 mb zp ZP_DWORD:34 43.57142857142858 +(dword) mul16u::res +(dword) mul16u::res#1 res zp ZP_DWORD:30 202.0 +(dword) mul16u::res#2 res zp ZP_DWORD:30 50.83333333333333 +(dword) mul16u::res#6 res zp ZP_DWORD:30 101.0 +(dword) mul16u::return +(dword) mul16u::return#2 return zp ZP_DWORD:30 4.0 +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 202.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 101.0 +(byte) mul8u::a#1 reg byte x 1.3333333333333333 +(byte) mul8u::a#2 reg byte x 67.66666666666666 +(byte) mul8u::b +(byte) mul8u::b#0 reg byte a 2.0 +(word) mul8u::mb +(word) mul8u::mb#1 mb zp ZP_WORD:56 202.0 +(word) mul8u::mb#2 mb zp ZP_WORD:56 43.57142857142858 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:54 202.0 +(word) mul8u::res#2 res zp ZP_WORD:54 50.83333333333333 +(word) mul8u::res#6 res zp ZP_WORD:54 101.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:54 4.0 +(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select) +(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:30 4.0 +(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:30 4.0 +(label) mulu16_sel::@1 +(label) mulu16_sel::@return +(word) mulu16_sel::return +(word) mulu16_sel::return#0 return zp ZP_WORD:69 4.0 +(word) mulu16_sel::return#1 return#1 zp ZP_WORD:24 4.0 +(word) mulu16_sel::return#10 return#10 zp ZP_WORD:24 4.0 +(word) mulu16_sel::return#11 return zp ZP_WORD:69 4.0 +(word) mulu16_sel::return#12 return zp ZP_WORD:69 1.714285714285714 +(word) mulu16_sel::return#2 return zp ZP_WORD:69 4.0 +(byte) mulu16_sel::select +(byte) mulu16_sel::select#5 reg byte x 0.3333333333333333 +(word) mulu16_sel::v1 +(word) mulu16_sel::v1#0 v1 zp ZP_WORD:24 2.0 +(word) mulu16_sel::v1#1 v1 zp ZP_WORD:24 2.0 +(word) mulu16_sel::v1#2 v1 zp ZP_WORD:24 4.0 +(word) mulu16_sel::v1#3 v1 zp ZP_WORD:24 2.0 +(word) mulu16_sel::v1#4 v1 zp ZP_WORD:24 2.0 +(word) mulu16_sel::v1#5 v1 zp ZP_WORD:24 12.0 +(word) mulu16_sel::v2 +(word) mulu16_sel::v2#0 v2 zp ZP_WORD:26 4.0 +(word) mulu16_sel::v2#1 v2 zp ZP_WORD:26 4.0 +(word) mulu16_sel::v2#3 v2 zp ZP_WORD:26 4.0 +(word) mulu16_sel::v2#4 v2 zp ZP_WORD:26 4.0 +(word) mulu16_sel::v2#5 v2 zp ZP_WORD:26 5.0 +(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select) +(word~) mulu8_sel::$0 $0 zp ZP_WORD:54 4.0 +(word~) mulu8_sel::$1 $1 zp ZP_WORD:54 4.0 +(label) mulu8_sel::@1 +(label) mulu8_sel::@return +(byte) mulu8_sel::return +(byte) mulu8_sel::return#0 reg byte a 4.0 +(byte) mulu8_sel::return#1 reg byte a 4.0 +(byte) mulu8_sel::return#10 reg byte a 4.0 +(byte) mulu8_sel::return#11 reg byte a 4.0 +(byte) mulu8_sel::return#12 reg byte a 1.714285714285714 +(byte) mulu8_sel::return#2 reg byte a 4.0 +(byte) mulu8_sel::select +(byte) mulu8_sel::select#5 select zp ZP_BYTE:53 0.3333333333333333 +(byte) mulu8_sel::v1 +(byte) mulu8_sel::v1#0 reg byte x 2.0 +(byte) mulu8_sel::v1#1 reg byte x 2.0 +(byte) mulu8_sel::v1#2 reg byte x 4.0 +(byte) mulu8_sel::v1#3 reg byte x 2.0 +(byte) mulu8_sel::v1#4 reg byte x 2.0 +(byte) mulu8_sel::v1#5 reg byte x 12.0 +(byte) mulu8_sel::v2 +(byte) mulu8_sel::v2#0 reg byte y 4.0 +(byte) mulu8_sel::v2#1 reg byte y 4.0 +(byte) mulu8_sel::v2#3 reg byte y 4.0 +(byte) mulu8_sel::v2#4 reg byte y 4.0 +(byte) mulu8_sel::v2#5 reg byte y 5.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 101.0 +(byte*) print_char_cursor#10 print_char_cursor zp ZP_WORD:5 0.4444444444444444 +(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:5 45.142857142857146 +(byte*) print_char_cursor#28 print_char_cursor zp ZP_WORD:5 6.0 +(byte*) print_char_cursor#42 print_char_cursor zp ZP_WORD:5 1.25 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:7 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:7 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024 +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 b zp ZP_BYTE:4 4.0 +(signed byte) print_sbyte::b#1 b zp ZP_BYTE:4 2.8333333333333335 +(signed byte) print_sbyte::b#4 b zp ZP_BYTE:4 1.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:2 202.0 +(byte*) print_str::str#2 str zp ZP_WORD:2 101.0 +(word) rem16u +(word) rem16u#1 rem16u zp ZP_WORD:38 0.8 +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$4 $4 zp ZP_DWORD:18 4.0 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@7 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#2 isUpper zp ZP_BYTE:17 0.06060606060606061 +(signed word) sin16s::return +(signed word) sin16s::return#0 return zp ZP_WORD:22 22.0 +(signed word) sin16s::return#1 return zp ZP_WORD:22 5.0 +(signed word~) sin16s::return#5 return zp ZP_WORD:22 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 sinx zp ZP_WORD:22 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 usinx zp ZP_WORD:22 0.3333333333333333 +(word) sin16s::usinx#1 usinx zp ZP_WORD:22 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 x zp ZP_DWORD:18 8.5 +(dword) sin16s::x#1 x zp ZP_DWORD:18 4.0 +(dword) sin16s::x#2 x zp ZP_DWORD:18 4.0 +(dword) sin16s::x#4 x zp ZP_DWORD:18 5.0 +(dword) sin16s::x#6 x zp ZP_DWORD:18 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 x1 zp ZP_WORD:67 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 x2 zp ZP_WORD:24 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 x3 zp ZP_WORD:24 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:69 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 x4 zp ZP_WORD:24 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 x5 zp ZP_WORD:69 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:69 4.0 +(void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) +(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:22 22.0 +(label) sin16s_gen::@1 +(label) sin16s_gen::@2 +(label) sin16s_gen::@3 +(label) sin16s_gen::@return +(word) sin16s_gen::i +(word) sin16s_gen::i#1 i zp ZP_WORD:15 16.5 +(word) sin16s_gen::i#2 i zp ZP_WORD:15 2.75 +(signed word*) sin16s_gen::sintab +(signed word*) sin16s_gen::sintab#0 sintab zp ZP_WORD:13 5.5 +(signed word*) sin16s_gen::sintab#2 sintab zp ZP_WORD:13 5.5 +(dword) sin16s_gen::step +(dword) sin16s_gen::step#0 step zp ZP_DWORD:63 1.1818181818181819 +(word) sin16s_gen::wavelength +(dword) sin16s_gen::x +(dword) sin16s_gen::x#1 x zp ZP_DWORD:9 7.333333333333333 +(dword) sin16s_gen::x#2 x zp ZP_DWORD:9 4.714285714285714 +(signed byte()) sin8s((word) sin8s::x) +(word~) sin8s::$4 $4 zp ZP_WORD:51 4.0 +(label) sin8s::@1 +(label) sin8s::@10 +(label) sin8s::@11 +(label) sin8s::@12 +(label) sin8s::@13 +(label) sin8s::@14 +(label) sin8s::@2 +(label) sin8s::@3 +(label) sin8s::@4 +(label) sin8s::@5 +(label) sin8s::@6 +(label) sin8s::@7 +(label) sin8s::@8 +(label) sin8s::@9 +(label) sin8s::@return +(byte) sin8s::DIV_6 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte) $2b +(byte) sin8s::isUpper +(byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:50 0.05555555555555555 +(signed byte) sin8s::return +(signed byte) sin8s::return#0 reg byte a 22.0 +(signed byte) sin8s::return#1 reg byte a 5.0 +(signed byte~) sin8s::return#5 reg byte a 4.0 +(signed byte) sin8s::sinx +(signed byte) sin8s::sinx#1 reg byte a 4.0 +(byte) sin8s::usinx +(byte) sin8s::usinx#0 usinx zp ZP_BYTE:75 0.3333333333333333 +(byte) sin8s::usinx#1 reg byte x 4.0 +(byte) sin8s::usinx#2 reg byte x 4.0 +(byte) sin8s::usinx#4 reg byte x 2.0 +(word) sin8s::x +(word) sin8s::x#0 x zp ZP_WORD:51 8.5 +(word) sin8s::x#1 x zp ZP_WORD:51 4.0 +(word) sin8s::x#2 x zp ZP_WORD:51 4.0 +(word) sin8s::x#4 x zp ZP_WORD:51 5.0 +(word) sin8s::x#6 x zp ZP_WORD:51 6.0 +(byte) sin8s::x1 +(byte) sin8s::x1#0 x1 zp ZP_BYTE:73 0.6363636363636365 +(byte) sin8s::x2 +(byte) sin8s::x2#0 reg byte a 4.0 +(byte) sin8s::x3 +(byte) sin8s::x3#0 x3 zp ZP_BYTE:74 1.0 +(byte) sin8s::x3_6 +(byte) sin8s::x3_6#0 reg byte a 4.0 +(byte) sin8s::x4 +(byte) sin8s::x4#0 reg byte a 4.0 +(byte) sin8s::x5 +(byte) sin8s::x5#0 reg byte a 4.0 +(byte) sin8s::x5_128 +(byte) sin8s::x5_128#0 reg byte a 4.0 +(void()) sin8s_gen((signed byte*) sin8s_gen::sintab , (word) sin8s_gen::wavelength) +(signed byte~) sin8s_gen::$1 reg byte a 22.0 +(label) sin8s_gen::@1 +(label) sin8s_gen::@2 +(label) sin8s_gen::@3 +(label) sin8s_gen::@return +(word) sin8s_gen::i +(word) sin8s_gen::i#1 i zp ZP_WORD:48 16.5 +(word) sin8s_gen::i#2 i zp ZP_WORD:48 2.75 +(signed byte*) sin8s_gen::sintab +(signed byte*) sin8s_gen::sintab#0 sintab zp ZP_WORD:46 5.5 +(signed byte*) sin8s_gen::sintab#2 sintab zp ZP_WORD:46 5.5 +(word) sin8s_gen::step +(word) sin8s_gen::step#0 step zp ZP_WORD:42 1.1818181818181819 +(word) sin8s_gen::wavelength +(word) sin8s_gen::x +(word) sin8s_gen::x#1 x zp ZP_WORD:44 7.333333333333333 +(word) sin8s_gen::x#2 x zp ZP_WORD:44 4.714285714285714 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ print_str::str#2 print_str::str#0 ] +zp ZP_BYTE:4 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] +reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] +zp ZP_WORD:5 [ print_char_cursor#28 print_char_cursor#42 print_char_cursor#19 print_char_cursor#10 print_char_cursor#1 ] +zp ZP_WORD:7 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_DWORD:9 [ sin16s_gen::x#2 sin16s_gen::x#1 ] +zp ZP_WORD:13 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] +zp ZP_WORD:15 [ sin16s_gen::i#2 sin16s_gen::i#1 ] +zp ZP_BYTE:17 [ sin16s::isUpper#2 ] +zp ZP_DWORD:18 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$4 ] +zp ZP_WORD:22 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 ] +zp ZP_WORD:24 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 ] +zp ZP_WORD:26 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mul16u::b#0 ] +reg byte x [ mulu16_sel::select#5 ] +zp ZP_WORD:28 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] +zp ZP_DWORD:30 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mulu16_sel::$0 mulu16_sel::$1 ] +zp ZP_DWORD:34 [ mul16u::mb#2 mul16u::mb#1 ] +zp ZP_WORD:38 [ divr16u::rem#6 divr16u::rem#11 divr16u::rem#5 divr16u::rem#10 divr16u::rem#7 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ] +zp ZP_WORD:40 [ divr16u::dividend#4 divr16u::dividend#6 divr16u::dividend#0 ] +zp ZP_WORD:42 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#3 divr16u::return#4 divr16u::return#2 div32u16u::quotient_lo#0 div16u::return#2 sin8s_gen::step#0 div16u::return#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +zp ZP_WORD:44 [ sin8s_gen::x#2 sin8s_gen::x#1 ] +zp ZP_WORD:46 [ sin8s_gen::sintab#2 sin8s_gen::sintab#0 ] +zp ZP_WORD:48 [ sin8s_gen::i#2 sin8s_gen::i#1 ] +zp ZP_BYTE:50 [ sin8s::isUpper#10 ] +zp ZP_WORD:51 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 sin8s::$4 ] +reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] +reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ] +reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] +reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] +zp ZP_BYTE:53 [ mulu8_sel::select#5 ] +reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] +zp ZP_WORD:54 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mulu8_sel::$0 mulu8_sel::$1 ] +zp ZP_WORD:56 [ mul8u::mb#2 mul8u::mb#1 ] +reg byte a [ mul8u::b#0 ] +zp ZP_BYTE:58 [ main::sb#0 ] +zp ZP_WORD:59 [ main::$3 main::$11 main::$4 ] +zp ZP_WORD:61 [ main::sw#0 ] +reg byte a [ main::$5 ] +reg byte a [ main::sd#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +zp ZP_DWORD:63 [ div32u16u::return#2 sin16s_gen::step#0 div32u16u::return#0 ] +zp ZP_WORD:67 [ sin16s::x1#0 ] +zp ZP_WORD:69 [ mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 ] +reg byte a [ mul16u::$1 ] +zp ZP_WORD:71 [ div32u16u::quotient_hi#0 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] +reg byte a [ sin8s::return#0 ] +reg byte a [ sin8s_gen::$1 ] +zp ZP_BYTE:73 [ sin8s::x1#0 ] +reg byte a [ mulu8_sel::return#0 ] +reg byte a [ sin8s::x2#0 ] +reg byte a [ mulu8_sel::return#1 ] +zp ZP_BYTE:74 [ sin8s::x3#0 ] +reg byte a [ mulu8_sel::return#2 ] +reg byte a [ sin8s::x3_6#0 ] +zp ZP_BYTE:75 [ sin8s::usinx#0 ] +reg byte a [ mulu8_sel::return#10 ] +reg byte a [ sin8s::x4#0 ] +reg byte a [ mulu8_sel::return#11 ] +reg byte a [ sin8s::x5#0 ] +reg byte a [ sin8s::x5_128#0 ] +reg byte a [ mulu8_sel::return#12 ] +reg byte a [ mul8u::$1 ] diff --git a/src/test/ref/sinusgenscale8.sym b/src/test/ref/sinusgenscale8.sym index 1daabbadc..3e4a01d1e 100644 --- a/src/test/ref/sinusgenscale8.sym +++ b/src/test/ref/sinusgenscale8.sym @@ -1 +1,368 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(word) PI2_u4f12 +(const word) PI2_u4f12#0 PI2_u4f12 = (word) $6488 +(word) PI_HALF_u4f12 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word) $1922 +(word) PI_u4f12 +(const word) PI_u4f12#0 PI_u4f12 = (word) $3244 +(word()) div16u((word) div16u::dividend , (word) div16u::divisor) +(label) div16u::@1 +(label) div16u::@return +(word) div16u::dividend +(word) div16u::divisor +(word) div16u::return +(word) div16u::return#0 return zp ZP_WORD:29 1.3333333333333333 +(word) div16u::return#2 return zp ZP_WORD:29 4.0 +(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem) +(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 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:27 2.75 +(word) divr16u::dividend#2 dividend zp ZP_WORD:27 4.714285714285714 +(word) divr16u::divisor +(byte) divr16u::i +(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:29 16.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:29 11.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:29 2.75 +(word) divr16u::rem +(word) divr16u::rem#0 rem zp ZP_WORD:25 8.25 +(word) divr16u::rem#1 rem zp ZP_WORD:25 22.0 +(word) divr16u::rem#2 rem zp ZP_WORD:25 22.0 +(word) divr16u::rem#4 rem zp ZP_WORD:25 22.0 +(word) divr16u::rem#5 rem zp ZP_WORD:25 11.0 +(word) divr16u::rem#9 rem zp ZP_WORD:25 11.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:29 7.000000000000001 +(word) divr16u::return#2 return zp ZP_WORD:29 4.0 +(void()) main() +(label) main::@1 +(label) main::@return +(byte[$14]) main::sintab +(const byte[$14]) main::sintab#0 sintab = { fill( $14, 0) } +(word) main::tabsize +(const word) main::tabsize#0 tabsize = (byte) $14 +(signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b) +(byte~) mul8su::$10 reg byte a 4.0 +(byte~) mul8su::$7 reg byte a 4.0 +(label) mul8su::@1 +(label) mul8su::@2 +(label) mul8su::@3 +(label) mul8su::@return +(signed byte) mul8su::a +(signed byte) mul8su::a#0 reg byte y 2.6 +(byte) mul8su::b +(const byte) mul8su::b#0 b = (const byte) sin8u_table::amplitude#0+(byte) 1 +(word) mul8su::m +(word) mul8su::m#0 m zp ZP_WORD:13 2.0 +(word) mul8su::m#1 m zp ZP_WORD:13 4.0 +(word) mul8su::m#2 m zp ZP_WORD:13 0.19047619047619047 +(signed word) mul8su::return +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 202.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 101.0 +(byte) mul8u::a#2 reg byte x 2.0 +(byte) mul8u::a#3 reg byte x 67.66666666666666 +(byte) mul8u::a#6 reg byte x 6.0 +(byte~) mul8u::a#8 reg byte x 4.0 +(byte) mul8u::b +(byte) mul8u::b#1 reg byte a 4.0 +(word) mul8u::mb +(word) mul8u::mb#0 mb zp ZP_WORD:19 4.0 +(word) mul8u::mb#1 mb zp ZP_WORD:19 202.0 +(word) mul8u::mb#2 mb zp ZP_WORD:19 43.57142857142858 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:13 202.0 +(word) mul8u::res#2 res zp ZP_WORD:13 43.85714285714286 +(word) mul8u::res#6 res zp ZP_WORD:13 101.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:13 4.0 +(word) mul8u::return#3 return zp ZP_WORD:13 4.0 +(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select) +(word~) mulu8_sel::$0 $0 zp ZP_WORD:13 4.0 +(word~) mulu8_sel::$1 $1 zp ZP_WORD:13 4.0 +(label) mulu8_sel::@1 +(label) mulu8_sel::@return +(byte) mulu8_sel::return +(byte) mulu8_sel::return#0 reg byte a 4.0 +(byte) mulu8_sel::return#1 reg byte a 4.0 +(byte) mulu8_sel::return#10 reg byte a 4.0 +(byte) mulu8_sel::return#11 reg byte a 4.0 +(byte) mulu8_sel::return#12 reg byte a 1.714285714285714 +(byte) mulu8_sel::return#2 reg byte a 4.0 +(byte) mulu8_sel::select +(byte) mulu8_sel::select#5 select zp ZP_BYTE:24 0.3333333333333333 +(byte) mulu8_sel::v1 +(byte) mulu8_sel::v1#0 reg byte x 2.0 +(byte) mulu8_sel::v1#1 reg byte x 2.0 +(byte) mulu8_sel::v1#2 reg byte x 4.0 +(byte) mulu8_sel::v1#3 reg byte x 2.0 +(byte) mulu8_sel::v1#4 reg byte x 2.0 +(byte) mulu8_sel::v1#5 reg byte x 12.0 +(byte) mulu8_sel::v2 +(byte) mulu8_sel::v2#0 reg byte y 4.0 +(byte) mulu8_sel::v2#1 reg byte y 4.0 +(byte) mulu8_sel::v2#3 reg byte y 4.0 +(byte) mulu8_sel::v2#4 reg byte y 4.0 +(byte) mulu8_sel::v2#5 reg byte y 5.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#1 b zp ZP_BYTE:10 4.0 +(byte~) print_byte::b#10 b zp ZP_BYTE:10 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:10 4.0 +(byte) print_byte::b#7 b zp ZP_BYTE:10 22.0 +(byte) print_byte::b#8 b zp ZP_BYTE:10 5.25 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#3 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 4.0 +(byte) print_char::ch#5 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:15 101.0 +(byte*) print_char_cursor#100 print_char_cursor zp ZP_WORD:15 9.0 +(byte*) print_char_cursor#105 print_char_cursor zp ZP_WORD:15 54.0 +(byte*~) print_char_cursor#113 print_char_cursor zp ZP_WORD:15 22.0 +(byte*) print_char_cursor#18 print_char_cursor zp ZP_WORD:15 3.454545454545454 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:15 12.321428571428571 +(byte*) print_char_cursor#64 print_char_cursor zp ZP_WORD:15 7.0 +(byte*) print_char_cursor#94 print_char_cursor zp ZP_WORD:15 3.0 +(byte*) print_char_cursor#99 print_char_cursor zp ZP_WORD:15 8.5 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:31 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:31 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:8 9.027777777777777 +(byte*) print_line_cursor#12 print_line_cursor zp ZP_WORD:8 204.0 +(byte*) print_line_cursor#23 print_line_cursor zp ZP_WORD:8 13.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 b zp ZP_BYTE:10 4.0 +(signed byte) print_sbyte::b#1 b zp ZP_BYTE:10 2.8333333333333335 +(signed byte) print_sbyte::b#4 b zp ZP_BYTE:10 4.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:11 202.0 +(byte*) print_str::str#10 str zp ZP_WORD:11 101.5 +(byte*) print_str::str#12 str zp ZP_WORD:11 2.0 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@4 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:13 4.0 +(signed word) print_sword::w#3 w zp ZP_WORD:13 4.0 +(signed word~) print_sword::w#6 w zp ZP_WORD:13 4.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#1 w zp ZP_WORD:17 4.0 +(word) print_word::w#2 w zp ZP_WORD:17 22.0 +(word) print_word::w#3 w zp ZP_WORD:17 6.333333333333334 +(word~) print_word::w#5 w zp ZP_WORD:17 4.0 +(signed byte()) sin8s((word) sin8s::x) +(word~) sin8s::$4 $4 zp ZP_WORD:22 4.0 +(label) sin8s::@1 +(label) sin8s::@10 +(label) sin8s::@11 +(label) sin8s::@12 +(label) sin8s::@13 +(label) sin8s::@14 +(label) sin8s::@2 +(label) sin8s::@3 +(label) sin8s::@4 +(label) sin8s::@5 +(label) sin8s::@6 +(label) sin8s::@7 +(label) sin8s::@8 +(label) sin8s::@9 +(label) sin8s::@return +(byte) sin8s::DIV_6 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte) $2b +(byte) sin8s::isUpper +(byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:21 0.05555555555555555 +(signed byte) sin8s::return +(signed byte) sin8s::return#0 reg byte a 5.0 +(signed byte) sin8s::return#2 reg byte a 22.0 +(signed byte~) sin8s::return#5 reg byte a 4.0 +(signed byte) sin8s::sinx +(signed byte) sin8s::sinx#1 reg byte a 4.0 +(byte) sin8s::usinx +(byte) sin8s::usinx#0 usinx zp ZP_BYTE:36 0.3333333333333333 +(byte) sin8s::usinx#1 reg byte x 4.0 +(byte) sin8s::usinx#2 reg byte x 4.0 +(byte) sin8s::usinx#4 reg byte x 2.0 +(word) sin8s::x +(word) sin8s::x#0 x zp ZP_WORD:22 4.0 +(word) sin8s::x#1 x zp ZP_WORD:22 4.0 +(word) sin8s::x#2 x zp ZP_WORD:22 8.5 +(word) sin8s::x#4 x zp ZP_WORD:22 5.0 +(word) sin8s::x#6 x zp ZP_WORD:22 6.0 +(byte) sin8s::x1 +(byte) sin8s::x1#0 x1 zp ZP_BYTE:34 0.6363636363636365 +(byte) sin8s::x2 +(byte) sin8s::x2#0 reg byte a 4.0 +(byte) sin8s::x3 +(byte) sin8s::x3#0 x3 zp ZP_BYTE:35 1.0 +(byte) sin8s::x3_6 +(byte) sin8s::x3_6#0 reg byte a 4.0 +(byte) sin8s::x4 +(byte) sin8s::x4#0 reg byte a 4.0 +(byte) sin8s::x5 +(byte) sin8s::x5#0 reg byte a 4.0 +(byte) sin8s::x5_128 +(byte) sin8s::x5_128#0 reg byte a 4.0 +(void()) sin8u_table((byte*) sin8u_table::sintab , (word) sin8u_table::tabsize , (byte) sin8u_table::min , (byte) sin8u_table::max) +(byte~) sin8u_table::$21 reg byte a 22.0 +(label) sin8u_table::@1 +(label) sin8u_table::@10 +(label) sin8u_table::@11 +(label) sin8u_table::@12 +(label) sin8u_table::@13 +(label) sin8u_table::@14 +(label) sin8u_table::@15 +(label) sin8u_table::@16 +(label) sin8u_table::@17 +(label) sin8u_table::@18 +(label) sin8u_table::@19 +(label) sin8u_table::@2 +(label) sin8u_table::@20 +(label) sin8u_table::@21 +(label) sin8u_table::@22 +(label) sin8u_table::@23 +(label) sin8u_table::@3 +(label) sin8u_table::@4 +(label) sin8u_table::@5 +(label) sin8u_table::@6 +(label) sin8u_table::@7 +(label) sin8u_table::@8 +(label) sin8u_table::@9 +(label) sin8u_table::@return +(byte) sin8u_table::amplitude +(const byte) sin8u_table::amplitude#0 amplitude = (const byte) sin8u_table::max#0-(const byte) sin8u_table::min#0 +(word) sin8u_table::i +(word) sin8u_table::i#1 i zp ZP_WORD:6 16.5 +(word) sin8u_table::i#10 i zp ZP_WORD:6 0.7333333333333333 +(byte) sin8u_table::max +(const byte) sin8u_table::max#0 max = (byte) $ff +(byte) sin8u_table::mid +(const byte) sin8u_table::mid#0 mid = (byte)(const word) sin8u_table::sum#0/(byte) 2+(byte) 1 +(byte) sin8u_table::min +(const byte) sin8u_table::min#0 min = (byte) $a +(byte*) sin8u_table::sintab +(byte*) sin8u_table::sintab#1 sintab zp ZP_WORD:4 1.0 +(byte*) sin8u_table::sintab#2 sintab zp ZP_WORD:4 3.3000000000000003 +(signed byte) sin8u_table::sinx +(signed byte) sin8u_table::sinx#0 sinx zp ZP_BYTE:33 2.5384615384615383 +(signed word) sin8u_table::sinx_sc +(byte) sin8u_table::sinx_tr +(byte) sin8u_table::sinx_tr#0 reg byte x 1.9411764705882355 +(word) sin8u_table::step +(word) sin8u_table::step#0 step zp ZP_WORD:29 0.2777777777777778 +(const string) sin8u_table::str str = (string) "step:@" +(const string) sin8u_table::str1 str1 = (string) " min:@" +(const string) sin8u_table::str2 str2 = (string) " max:@" +(const string) sin8u_table::str3 str3 = (string) " ampl:@" +(const string) sin8u_table::str4 str4 = (string) " mid:@" +(const string) sin8u_table::str5 str5 = (string) "x: @" +(const string) sin8u_table::str6 str6 = (string) " sin: @" +(const string) sin8u_table::str7 str7 = (string) " scaled: @" +(const string) sin8u_table::str8 str8 = (string) " trans: @" +(word) sin8u_table::sum +(const word) sin8u_table::sum#0 sum = (word)(const byte) sin8u_table::min#0+(const byte) sin8u_table::max#0 +(word) sin8u_table::tabsize +(word) sin8u_table::x +(word) sin8u_table::x#1 x zp ZP_WORD:2 7.333333333333333 +(word) sin8u_table::x#10 x zp ZP_WORD:2 1.5172413793103448 + +zp ZP_WORD:2 [ sin8u_table::x#10 sin8u_table::x#1 ] +zp ZP_WORD:4 [ sin8u_table::sintab#2 sin8u_table::sintab#1 ] +zp ZP_WORD:6 [ sin8u_table::i#10 sin8u_table::i#1 ] +zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] +zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] +reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ] +zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ] +zp ZP_WORD:13 [ print_sword::w#3 print_sword::w#6 print_sword::w#0 mul8su::m#2 mul8su::m#1 mul8su::m#0 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u::return#3 mulu8_sel::$0 mulu8_sel::$1 ] +zp ZP_WORD:15 [ print_char_cursor#94 print_char_cursor#105 print_char_cursor#64 print_char_cursor#100 print_char_cursor#18 print_char_cursor#99 print_char_cursor#2 print_char_cursor#113 print_char_cursor#1 ] +zp ZP_WORD:17 [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ] +reg byte a [ mul8u::b#1 ] +reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] +zp ZP_WORD:19 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] +zp ZP_BYTE:21 [ sin8s::isUpper#10 ] +zp ZP_WORD:22 [ sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 sin8s::$4 ] +reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] +reg byte a [ sin8s::return#0 sin8s::return#5 sin8s::sinx#1 ] +reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] +reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] +zp ZP_BYTE:24 [ mulu8_sel::select#5 ] +zp ZP_WORD:25 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] +zp ZP_WORD:27 [ divr16u::dividend#2 divr16u::dividend#0 ] +zp ZP_WORD:29 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#2 sin8u_table::step#0 div16u::return#0 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +zp ZP_WORD:31 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ sin8s::return#2 ] +zp ZP_BYTE:33 [ sin8u_table::sinx#0 ] +reg byte y [ mul8su::a#0 ] +reg byte a [ sin8u_table::$21 ] +reg byte x [ sin8u_table::sinx_tr#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +reg byte a [ mul8su::$7 ] +reg byte a [ mul8su::$10 ] +reg byte a [ mul8u::$1 ] +zp ZP_BYTE:34 [ sin8s::x1#0 ] +reg byte a [ mulu8_sel::return#0 ] +reg byte a [ sin8s::x2#0 ] +reg byte a [ mulu8_sel::return#1 ] +zp ZP_BYTE:35 [ sin8s::x3#0 ] +reg byte a [ mulu8_sel::return#2 ] +reg byte a [ sin8s::x3_6#0 ] +zp ZP_BYTE:36 [ sin8s::usinx#0 ] +reg byte a [ mulu8_sel::return#10 ] +reg byte a [ sin8s::x4#0 ] +reg byte a [ mulu8_sel::return#11 ] +reg byte a [ sin8s::x5#0 ] +reg byte a [ sin8s::x5_128#0 ] +reg byte a [ mulu8_sel::return#12 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] diff --git a/src/test/ref/sizeof-arrays.sym b/src/test/ref/sizeof-arrays.sym index 1daabbadc..cff9889ee 100644 --- a/src/test/ref/sizeof-arrays.sym +++ b/src/test/ref/sizeof-arrays.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(const byte) SIZEOF_BYTE SIZEOF_BYTE = (byte) 1 +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(label) main::@return +(byte[3]) main::ba +(byte[main::sz#0+2]) main::bb +(byte) main::idx +(byte[]) main::sa +(byte[]) main::sb +(byte) main::sz +(const byte) main::sz#0 sz = (byte) 7 +(word[3]) main::wa +(word[]) main::wb + diff --git a/src/test/ref/sizeof-expr.sym b/src/test/ref/sizeof-expr.sym index 1daabbadc..61ecdea91 100644 --- a/src/test/ref/sizeof-expr.sym +++ b/src/test/ref/sizeof-expr.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(const byte) SIZEOF_BYTE SIZEOF_BYTE = (byte) 1 +(const byte) SIZEOF_NUMBER SIZEOF_NUMBER = (byte) $ff +(const byte) SIZEOF_POINTER SIZEOF_POINTER = (byte) 2 +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(label) main::@return +(byte) main::b +(byte) main::b#0 b zp ZP_BYTE:2 20.0 +(byte) main::idx +(word) main::w +(word) main::w#0 w zp ZP_WORD:3 20.0 + +zp ZP_BYTE:2 [ main::b#0 ] +zp ZP_WORD:3 [ main::w#0 ] diff --git a/src/test/ref/sizeof-struct.sym b/src/test/ref/sizeof-struct.sym index 1daabbadc..b0f706ba1 100644 --- a/src/test/ref/sizeof-struct.sym +++ b/src/test/ref/sizeof-struct.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(struct Point) Circle::center +(byte) Circle::radius +(byte) Point::x +(byte) Point::y +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(const byte) SIZEOF_STRUCT_CIRCLE SIZEOF_STRUCT_CIRCLE = (byte) 3 +(const byte) SIZEOF_STRUCT_POINT SIZEOF_STRUCT_POINT = (byte) 2 +(void()) main() +(label) main::@return +(byte) main::NUM_CIRCLES +(const byte) main::NUM_CIRCLES#0 NUM_CIRCLES = (const byte) main::NUM_POINTS#0-(byte) 1 +(byte) main::NUM_POINTS +(const byte) main::NUM_POINTS#0 NUM_POINTS = (byte) 4 +(struct Circle) main::c +(struct Point) main::c_center +(struct Circle[main::NUM_CIRCLES#0]) main::circles +(byte) main::idx +(struct Point) main::p +(struct Point[main::NUM_POINTS#0]) main::points + diff --git a/src/test/ref/sizeof-types.sym b/src/test/ref/sizeof-types.sym index 1daabbadc..5bc610509 100644 --- a/src/test/ref/sizeof-types.sym +++ b/src/test/ref/sizeof-types.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(const byte) SIZEOF_BOOL SIZEOF_BOOL = (byte) 1 +(const byte) SIZEOF_BYTE SIZEOF_BYTE = (byte) 1 +(const byte) SIZEOF_DWORD SIZEOF_DWORD = (byte) 4 +(const byte) SIZEOF_POINTER SIZEOF_POINTER = (byte) 2 +(const byte) SIZEOF_SIGNED_BYTE SIZEOF_SIGNED_BYTE = (byte) 1 +(const byte) SIZEOF_SIGNED_DWORD SIZEOF_SIGNED_DWORD = (byte) 4 +(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2 +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(label) main::@return +(byte) main::idx + diff --git a/src/test/ref/statement-sequence-1.sym b/src/test/ref/statement-sequence-1.sym index 1daabbadc..7b3816934 100644 --- a/src/test/ref/statement-sequence-1.sym +++ b/src/test/ref/statement-sequence-1.sym @@ -1 +1,23 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::c +(byte) main::c#0 reg byte x 8.25 +(byte) main::c#1 reg byte x 22.0 +(byte) main::c#2 reg byte x 33.0 +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 8.25 + +reg byte y [ main::i#2 main::i#1 ] +reg byte x [ main::c#2 main::c#0 main::c#1 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/string-const-consolidation-noroot.sym b/src/test/ref/string-const-consolidation-noroot.sym index 1daabbadc..0285f0a7a 100644 --- a/src/test/ref/string-const-consolidation-noroot.sym +++ b/src/test/ref/string-const-consolidation-noroot.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte[]) main::rex1 +(byte[]) main::rex2 +(const string) main::string string = (string) "rex@" +(void()) print((byte*) print::string) +(label) print::@1 +(label) print::@2 +(label) print::@return +(byte*) print::string +(byte*) print::string#3 string zp ZP_WORD:4 22.0 +(byte*) print::string#4 string zp ZP_WORD:4 11.0 +(byte*) screen +(byte*) screen#12 screen zp ZP_WORD:2 4.875 +(byte*) screen#18 screen zp ZP_WORD:2 6.0 +(byte*) screen#5 screen zp ZP_WORD:2 11.0 + +zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] +zp ZP_WORD:4 [ print::string#4 print::string#3 ] diff --git a/src/test/ref/string-const-consolidation.sym b/src/test/ref/string-const-consolidation.sym index 1daabbadc..4eee53597 100644 --- a/src/test/ref/string-const-consolidation.sym +++ b/src/test/ref/string-const-consolidation.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte[]) main::rex2 +(void()) print((byte*) print::string) +(label) print::@1 +(label) print::@2 +(label) print::@return +(byte*) print::string +(byte*) print::string#3 string zp ZP_WORD:4 22.0 +(byte*) print::string#4 string zp ZP_WORD:4 11.0 +(byte[]) rex1 +(const byte[]) rex1#0 rex1 = (string) "rex@" +(byte*) screen +(byte*) screen#12 screen zp ZP_WORD:2 4.875 +(byte*) screen#18 screen zp ZP_WORD:2 6.0 +(byte*) screen#5 screen zp ZP_WORD:2 11.0 + +zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] +zp ZP_WORD:4 [ print::string#4 print::string#3 ] diff --git a/src/test/ref/string-encoding-literals.sym b/src/test/ref/string-encoding-literals.sym index 1daabbadc..a21d2c992 100644 --- a/src/test/ref/string-encoding-literals.sym +++ b/src/test/ref/string-encoding-literals.sym @@ -1 +1,27 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 +(byte[]) petscii_mixed +(const byte[]) petscii_mixed#0 petscii_mixed = (string) PETSCII_MIXED"abcABC1@" +(byte[]) petscii_standard +(const byte[]) petscii_standard#0 petscii_standard = (string) PETSCII_MIXED"abcABC3@" +(byte[]) petscii_upper +(const byte[]) petscii_upper#0 petscii_upper = (string) PETSCII_UPPER"abcABC2@" +(byte[]) screencode_mixed +(const byte[]) screencode_mixed#0 screencode_mixed = (string) "abcABC4@" +(byte[]) screencode_standard +(const byte[]) screencode_standard#0 screencode_standard = (string) "abcABC6@" +(byte[]) screencode_upper +(const byte[]) screencode_upper#0 screencode_upper = (string) SCREENCODE_UPPER"abcABC5@" +(byte[]) standard +(const byte[]) standard#0 standard = (string) "abcABC7@" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-encoding-pragma.sym b/src/test/ref/string-encoding-pragma.sym index 1daabbadc..e6fd1385e 100644 --- a/src/test/ref/string-encoding-pragma.sym +++ b/src/test/ref/string-encoding-pragma.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.000000000000004 +(byte[]) petscii_mixed1 +(const byte[]) petscii_mixed1#0 petscii_mixed1 = (string) PETSCII_MIXED"abcABC2@" +(byte[]) petscii_mixed2 +(const byte[]) petscii_mixed2#0 petscii_mixed2 = (string) PETSCII_MIXED"abcABC3@" +(byte[]) screencode_mixed1 +(const byte[]) screencode_mixed1#0 screencode_mixed1 = (string) "abcABC1@" +(byte[]) screencode_mixed2 +(const byte[]) screencode_mixed2#0 screencode_mixed2 = (string) "abcABC4@" +(byte[]) screencode_mixed3 +(const byte[]) screencode_mixed3#0 screencode_mixed3 = (string) "abcABC6@" +(byte[]) screencode_upper +(const byte[]) screencode_upper#0 screencode_upper = (string) SCREENCODE_UPPER"abcABC5@" + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/strip.sym b/src/test/ref/strip.sym index 1daabbadc..6e48216b4 100644 --- a/src/test/ref/strip.sym +++ b/src/test/ref/strip.sym @@ -1 +1,48 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte[]) msg1 +(const byte[]) msg1#0 msg1 = (string) "hello world!@" +(byte[]) msg2 +(const byte[]) msg2#0 msg2 = (string) "goodbye blue sky!@" +(void()) print((byte*) print::msg) +(label) print::@1 +(label) print::@return +(byte*) print::msg +(byte*) print::msg#2 msg zp ZP_WORD:2 16.5 +(byte*) print::msg#3 msg zp ZP_WORD:2 11.666666666666666 +(byte*) print::msg#4 msg zp ZP_WORD:2 2.0 +(byte*) screen +(byte*) screen#10 screen zp ZP_WORD:4 17.5 +(byte*) screen#11 screen zp ZP_WORD:4 3.0 +(byte*) screen#15 screen zp ZP_WORD:4 4.0 +(void()) strip((byte*) strip::p , (byte) strip::c) +(label) strip::@1 +(label) strip::@2 +(label) strip::@3 +(label) strip::@4 +(label) strip::@return +(byte) strip::c +(byte) strip::c#3 reg byte x 1.1 +(byte*) strip::dest +(byte*) strip::dest#0 dest zp ZP_WORD:8 2.0 +(byte*) strip::dest#1 dest zp ZP_WORD:8 22.0 +(byte*) strip::dest#2 dest zp ZP_WORD:8 15.333333333333332 +(byte*) strip::dest#4 dest zp ZP_WORD:8 8.25 +(byte*) strip::p +(byte*) strip::p#2 p zp ZP_WORD:10 11.0 +(byte*) strip::p#4 p#4 zp ZP_WORD:6 9.5 +(byte*~) strip::p#7 p#7 zp ZP_WORD:6 4.0 +(byte*~) strip::p#8 p#8 zp ZP_WORD:6 22.0 + +zp ZP_WORD:2 [ print::msg#3 print::msg#4 print::msg#2 ] +zp ZP_WORD:4 [ screen#10 screen#15 screen#11 ] +reg byte x [ strip::c#3 ] +zp ZP_WORD:6 [ strip::p#4 strip::p#7 strip::p#8 ] +zp ZP_WORD:8 [ strip::dest#2 strip::dest#0 strip::dest#4 strip::dest#1 ] +zp ZP_WORD:10 [ strip::p#2 ] diff --git a/src/test/ref/struct-0.sym b/src/test/ref/struct-0.sym index 1daabbadc..14deba491 100644 --- a/src/test/ref/struct-0.sym +++ b/src/test/ref/struct-0.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) Point::x +(byte) Point::y +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Point) point +(byte) point_x +(const byte) point_x#1 point_x = (byte) 2 +(byte) point_y +(const byte) point_y#1 point_y = (byte) 3 + diff --git a/src/test/ref/struct-1.sym b/src/test/ref/struct-1.sym index 1daabbadc..321bb9eb5 100644 --- a/src/test/ref/struct-1.sym +++ b/src/test/ref/struct-1.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) Point::x +(byte) Point::y +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Point) point1 +(byte) point1_x +(const byte) point1_x#1 point1_x = (byte) 2 +(byte) point1_y +(const byte) point1_y#1 point1_y = (byte) 3 +(struct Point) point2 +(byte) point2_x +(byte) point2_y + diff --git a/src/test/ref/struct-2.sym b/src/test/ref/struct-2.sym index 1daabbadc..97ac30f8a 100644 --- a/src/test/ref/struct-2.sym +++ b/src/test/ref/struct-2.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) Point::x +(byte) Point::y +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Point) point1 +(byte) point1_x +(const byte) point1_x#1 point1_x = (byte) 2 +(byte) point1_y +(const byte) point1_y#1 point1_y = (byte) 3 +(struct Point) point2 +(byte) point2_x +(const byte) point2_x#2 point2_x = (byte) 4 +(byte) point2_y + diff --git a/src/test/ref/struct-3.sym b/src/test/ref/struct-3.sym index 1daabbadc..4616c1686 100644 --- a/src/test/ref/struct-3.sym +++ b/src/test/ref/struct-3.sym @@ -1 +1,28 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) Point::x +(byte) Point::y +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) idx +(byte) idx#11 reg byte x 3.0 +(byte) idx#12 reg byte x 1.0 +(byte) idx#4 reg byte x 3.0 +(void()) main() +(label) main::@1 +(label) main::@return +(struct Point) main::p1 +(byte) main::p1_x +(byte) main::p1_y +(const byte) main::p1_y#1 p1_y = (byte) 4 +(void()) print((byte) print::p_x , (byte) print::p_y) +(label) print::@return +(struct Point) print::p +(byte) print::p_x +(byte) print::p_x#2 reg byte a 2.0 +(byte) print::p_y + +reg byte a [ print::p_x#2 ] +reg byte x [ idx#11 idx#12 ] +reg byte x [ idx#4 ] diff --git a/src/test/ref/struct-4.sym b/src/test/ref/struct-4.sym index 1daabbadc..c289025bf 100644 --- a/src/test/ref/struct-4.sym +++ b/src/test/ref/struct-4.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) Point::x +(byte) Point::y +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Point) main::p +(byte) main::p_x +(byte) main::p_y +(const byte) main::p_y#0 p_y = (const byte) main::y#0+(byte) 1 +(byte) main::x +(const byte) main::x#0 x = (byte) 2 +(byte) main::y +(const byte) main::y#0 y = (byte) 3 + diff --git a/src/test/ref/struct-5.sym b/src/test/ref/struct-5.sym index 1daabbadc..bcb9b8a3d 100644 --- a/src/test/ref/struct-5.sym +++ b/src/test/ref/struct-5.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) Point::x +(byte) Point::y +(void()) main() +(struct Point~) main::$0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Point) main::q +(byte) main::q_x +(byte) main::q_y +(struct Point()) point() +(label) point::@return +(struct Point) point::p +(byte) point::p_x +(const byte) point::p_x#0 p_x = (byte) 2 +(byte) point::p_y +(const byte) point::p_y#0 p_y = (byte) 3 +(struct Point) point::return +(byte) point::return_x +(byte) point::return_y + diff --git a/src/test/ref/struct-6.sym b/src/test/ref/struct-6.sym index 1daabbadc..f20f7e70e 100644 --- a/src/test/ref/struct-6.sym +++ b/src/test/ref/struct-6.sym @@ -1 +1,23 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(struct Point) Circle::center +(byte) Circle::radius +(byte) Point::x +(byte) Point::y +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Circle) main::c +(struct Point) main::c_center +(byte) main::c_center_x +(byte) main::c_center_y +(byte) main::c_radius +(const byte) main::c_radius#0 c_radius = (byte) 5 +(struct Point) main::p +(byte) main::p_x +(const byte) main::p_x#0 p_x = (byte) $a +(byte) main::p_y +(const byte) main::p_y#0 p_y = (byte) $a + diff --git a/src/test/ref/struct-7.sym b/src/test/ref/struct-7.sym index 1daabbadc..8eb381988 100644 --- a/src/test/ref/struct-7.sym +++ b/src/test/ref/struct-7.sym @@ -1 +1,31 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(struct Point) Circle::center +(byte) Circle::radius +(byte) Point::x +(byte) Point::y +(struct Circle) TwoCircles::c1 +(struct Circle) TwoCircles::c2 +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct TwoCircles) main::t +(struct Circle) main::t_c1 +(struct Point) main::t_c1_center +(byte) main::t_c1_center_x +(const byte) main::t_c1_center_x#0 t_c1_center_x = (byte) 1 +(byte) main::t_c1_center_y +(const byte) main::t_c1_center_y#0 t_c1_center_y = (byte) 2 +(byte) main::t_c1_radius +(const byte) main::t_c1_radius#0 t_c1_radius = (byte) 3 +(struct Circle) main::t_c2 +(struct Point) main::t_c2_center +(byte) main::t_c2_center_x +(const byte) main::t_c2_center_x#0 t_c2_center_x = (byte) 4 +(byte) main::t_c2_center_y +(const byte) main::t_c2_center_y#0 t_c2_center_y = (byte) 5 +(byte) main::t_c2_radius +(const byte) main::t_c2_radius#0 t_c2_radius = (byte) 6 + diff --git a/src/test/ref/struct-ptr-0.sym b/src/test/ref/struct-ptr-0.sym index 1daabbadc..b96d36f23 100644 --- a/src/test/ref/struct-ptr-0.sym +++ b/src/test/ref/struct-ptr-0.sym @@ -1 +1,28 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) Point::x +(byte) Point::y +(void()) main() +(byte~) main::$0 reg byte y 22.0 +(byte~) main::$5 $5 zp ZP_BYTE:2 3.6666666666666665 +(byte~) main::$7 reg byte x 5.5 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(byte) main::i1 +(byte) main::i1#1 reg byte y 16.5 +(byte) main::i1#2 reg byte y 13.75 +(struct Point[4]) points +(const struct Point[4]) points#0 points = { fill( 4, 0) } + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::i1#2 main::i1#1 ] +zp ZP_BYTE:2 [ main::$5 ] +reg byte y [ main::$0 ] +reg byte x [ main::$7 ] diff --git a/src/test/ref/struct-ptr-1.sym b/src/test/ref/struct-ptr-1.sym index 1daabbadc..63d1a01f8 100644 --- a/src/test/ref/struct-ptr-1.sym +++ b/src/test/ref/struct-ptr-1.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) OFFS_X +(byte) OFFS_Y +(const byte) OFFS_Y#0 OFFS_Y = (byte) 1 +(byte) Point::x +(byte) Point::y +(byte) SIZEOF_POINT +(void()) main() +(byte~) main::$17 reg byte x 16.5 +(byte~) main::$6 reg byte y 11.0 +(byte~) main::$8 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(byte) main::i1 +(byte) main::i1#1 reg byte y 16.5 +(byte) main::i1#2 reg byte y 13.75 +(struct Point[4]) points +(const struct Point[4]) points#0 points = { fill( 4, 0) } + +reg byte x [ main::i#2 main::i#1 ] +reg byte y [ main::i1#2 main::i1#1 ] +reg byte y [ main::$6 ] +reg byte a [ main::$8 ] +reg byte x [ main::$17 ] diff --git a/src/test/ref/struct-ptr-2.sym b/src/test/ref/struct-ptr-2.sym index 1daabbadc..a21805323 100644 --- a/src/test/ref/struct-ptr-2.sym +++ b/src/test/ref/struct-ptr-2.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) OFFS_X +(byte) OFFS_Y +(const byte) OFFS_Y#0 OFFS_Y = (byte) 1 +(byte) Point::x +(byte) Point::y +(void()) main() +(byte~) main::$14 reg byte y 16.5 +(byte~) main::$15 reg byte y 16.5 +(byte~) main::$5 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 9.166666666666666 +(byte) main::i1 +(byte) main::i1#1 reg byte x 16.5 +(byte) main::i1#2 reg byte x 11.0 +(struct Point*) main::point_i +(struct Point*) main::point_i#0 point_i zp ZP_WORD:2 3.6666666666666665 +(struct Point*) main::point_i1 +(struct Point*) main::point_i1#0 point_i1 zp ZP_WORD:4 5.5 +(struct Point[4]) points +(const struct Point[4]) points#0 points = { fill( 4, 0) } + +reg byte x [ main::i#2 main::i#1 ] +reg byte x [ main::i1#2 main::i1#1 ] +reg byte y [ main::$14 ] +zp ZP_WORD:2 [ main::point_i#0 ] +reg byte a [ main::$5 ] +reg byte y [ main::$15 ] +zp ZP_WORD:4 [ main::point_i1#0 ] diff --git a/src/test/ref/struct-ptr-3.sym b/src/test/ref/struct-ptr-3.sym index 1daabbadc..378509f66 100644 --- a/src/test/ref/struct-ptr-3.sym +++ b/src/test/ref/struct-ptr-3.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) OFFSET_STRUCT_POINT_Y OFFSET_STRUCT_POINT_Y = (byte) 1 +(byte) Point::x +(byte) Point::y +(const byte) SIZEOF_STRUCT_POINT SIZEOF_STRUCT_POINT = (byte) 2 +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Point*) points + diff --git a/src/test/ref/struct-ptr-4.sym b/src/test/ref/struct-ptr-4.sym index 1daabbadc..62d487333 100644 --- a/src/test/ref/struct-ptr-4.sym +++ b/src/test/ref/struct-ptr-4.sym @@ -1 +1,41 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) OFFSET_STRUCT_POINT_Y OFFSET_STRUCT_POINT_Y = (byte) 1 +(struct Point*) POINTS +(const struct Point*) POINTS#0 POINTS = (struct Point*) 4096 +(byte) Point::x +(byte) Point::y +(const byte) SIZEOF_STRUCT_POINT SIZEOF_STRUCT_POINT = (byte) 2 +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 8.8 +(byte) main::i1 +(byte) main::i1#1 i1 zp ZP_BYTE:6 16.5 +(byte) main::i1#2 i1 zp ZP_BYTE:6 2.75 +(byte) main::idx +(byte) main::idx#1 reg byte x 16.5 +(byte) main::idx#2 reg byte x 16.5 +(byte) main::idx#3 reg byte x 5.5 +(byte) main::idx#4 reg byte x 16.5 +(struct Point*) main::points +(struct Point*) main::points#1 points zp ZP_WORD:2 7.333333333333333 +(struct Point*) main::points#3 points#3 zp ZP_WORD:4 7.333333333333333 +(struct Point*) main::points#4 points zp ZP_WORD:2 5.5 +(struct Point*) main::points#5 points#5 zp ZP_WORD:4 3.142857142857143 + +zp ZP_WORD:2 [ main::points#4 main::points#1 ] +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:4 [ main::points#5 main::points#3 ] +reg byte x [ main::idx#4 main::idx#3 ] +zp ZP_BYTE:6 [ main::i1#2 main::i1#1 ] +reg byte a [ main::$0 ] +reg byte x [ main::idx#1 ] +reg byte x [ main::idx#2 ] diff --git a/src/test/ref/struct-ptr-5.sym b/src/test/ref/struct-ptr-5.sym index 1daabbadc..80ab52614 100644 --- a/src/test/ref/struct-ptr-5.sym +++ b/src/test/ref/struct-ptr-5.sym @@ -1 +1,44 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(struct Entry*) ENTRIES +(const struct Entry*) ENTRIES#0 ENTRIES = (struct Entry*) 4096 +(struct Entry*) Entry::next +(byte) Entry::value +(const byte) OFFSET_STRUCT_ENTRY_VALUE OFFSET_STRUCT_ENTRY_VALUE = (byte) 2 +(const byte) SIZEOF_STRUCT_ENTRY SIZEOF_STRUCT_ENTRY = (byte) 3 +(void()) main() +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$3 reg byte a 22.0 +(byte~) main::$4 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(struct Entry*) main::entry +(struct Entry*) main::entry#1 entry zp ZP_WORD:2 22.0 +(struct Entry*) main::entry#2 entry zp ZP_WORD:2 1.5714285714285714 +(struct Entry*) main::entry0 +(struct Entry*) main::entry1 +(const struct Entry*) main::entry1#0 entry1 = (const struct Entry*) ENTRIES#0+(byte) 1*(const byte) SIZEOF_STRUCT_ENTRY +(struct Entry*) main::entry2 +(const struct Entry*) main::entry2#0 entry2 = (const struct Entry*) ENTRIES#0+(byte) 2*(const byte) SIZEOF_STRUCT_ENTRY +(byte) main::idx +(byte) main::idx#1 reg byte x 8.25 +(byte) main::idx#2 reg byte x 11.0 +(byte) main::idx#3 reg byte x 16.5 +(byte) main::idx#4 reg byte x 11.0 +(byte) main::idx#5 reg byte x 8.25 +(struct Entry*) main::next +(struct Entry*) main::next#0 next zp ZP_WORD:4 8.25 + +zp ZP_WORD:2 [ main::entry#2 main::entry#1 ] +reg byte x [ main::idx#5 main::idx#4 ] +reg byte a [ main::$2 ] +reg byte x [ main::idx#1 ] +zp ZP_WORD:4 [ main::next#0 ] +reg byte a [ main::$3 ] +reg byte x [ main::idx#2 ] +reg byte a [ main::$4 ] +reg byte x [ main::idx#3 ] diff --git a/src/test/ref/subexpr-optimize-0.sym b/src/test/ref/subexpr-optimize-0.sym index 1daabbadc..0bea2f478 100644 --- a/src/test/ref/subexpr-optimize-0.sym +++ b/src/test/ref/subexpr-optimize-0.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 $1 zp ZP_BYTE:4 11.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 5.5 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 16.5 +(byte*) main::screen#2 screen zp ZP_WORD:2 7.333333333333333 +(byte*) main::screen#3 screen zp ZP_WORD:2 11.0 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::screen#3 main::screen#2 main::screen#1 ] +zp ZP_BYTE:4 [ main::$1 ] diff --git a/src/test/ref/subexpr-optimize-1.sym b/src/test/ref/subexpr-optimize-1.sym index 1daabbadc..295a749fc 100644 --- a/src/test/ref/subexpr-optimize-1.sym +++ b/src/test/ref/subexpr-optimize-1.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 21.999999999999996 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/subexpr-optimize-2.sym b/src/test/ref/subexpr-optimize-2.sym index 1daabbadc..58be3d6f4 100644 --- a/src/test/ref/subexpr-optimize-2.sym +++ b/src/test/ref/subexpr-optimize-2.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$1 reg byte a 22.0 +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$3 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 16.5 +(byte) main::i#2 i zp ZP_BYTE:2 4.888888888888889 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:3 8.25 +(byte*) main::screen#2 screen zp ZP_WORD:3 7.333333333333333 +(byte*) main::screen#3 screen zp ZP_WORD:3 8.25 + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +zp ZP_WORD:3 [ main::screen#3 main::screen#2 main::screen#1 ] +reg byte a [ main::$0 ] +reg byte a [ main::$1 ] +reg byte a [ main::$2 ] +reg byte a [ main::$3 ] diff --git a/src/test/ref/subexpr-optimize-3.sym b/src/test/ref/subexpr-optimize-3.sym index 1daabbadc..78e8dd35b 100644 --- a/src/test/ref/subexpr-optimize-3.sym +++ b/src/test/ref/subexpr-optimize-3.sym @@ -1 +1,26 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$3 $3 zp ZP_BYTE:4 6.6000000000000005 +(byte~) main::$4 reg byte a 22.0 +(byte~) main::$5 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 5.5 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 8.25 +(byte*) main::screen#2 screen zp ZP_WORD:2 7.333333333333333 +(byte*) main::screen#3 screen zp ZP_WORD:2 6.6000000000000005 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::screen#3 main::screen#2 main::screen#1 ] +zp ZP_BYTE:4 [ main::$3 ] +reg byte a [ main::$1 ] +reg byte a [ main::$2 ] +reg byte a [ main::$4 ] +reg byte a [ main::$5 ] diff --git a/src/test/ref/subexpr-optimize-4.sym b/src/test/ref/subexpr-optimize-4.sym index 1daabbadc..d7dd3aa34 100644 --- a/src/test/ref/subexpr-optimize-4.sym +++ b/src/test/ref/subexpr-optimize-4.sym @@ -1 +1,34 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$10 reg byte a 22.0 +(byte~) main::$11 reg byte a 33.0 +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$4 reg byte a 22.0 +(byte~) main::$5 reg byte a 33.0 +(byte~) main::$6 reg byte a 22.0 +(byte~) main::$8 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 5.866666666666666 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 4.714285714285714 +(byte*) main::screen#2 screen zp ZP_WORD:2 7.333333333333333 +(byte*) main::screen#3 screen zp ZP_WORD:2 4.714285714285714 + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::screen#3 main::screen#2 main::screen#1 ] +reg byte a [ main::$5 main::$4 main::$2 ] +reg byte a [ main::$11 main::$10 main::$8 ] +reg byte a [ main::$0 ] +reg byte a [ main::$6 ] diff --git a/src/test/ref/summin.sym b/src/test/ref/summin.sym index 1daabbadc..dcf7f4311 100644 --- a/src/test/ref/summin.sym +++ b/src/test/ref/summin.sym @@ -1 +1,42 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$3 reg byte a 4.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::s1 +(byte) main::s1#0 s1 zp ZP_BYTE:2 0.5714285714285714 +(byte) main::s2 +(byte) main::s2#0 reg byte x 1.0 +(byte) main::s3 +(byte) main::s3#0 s3 zp ZP_BYTE:3 2.0 +(byte) main::s4 +(byte) main::s4#0 reg byte a 4.0 +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 +(byte()) sum((byte) sum::a , (byte) sum::b) +(label) sum::@return +(byte) sum::a +(byte) sum::a#3 reg byte y 2.0 +(byte) sum::b +(byte) sum::b#3 reg byte a 2.0 +(byte) sum::return +(byte) sum::return#0 reg byte a 4.0 +(byte) sum::return#1 reg byte a 4.0 +(byte) sum::return#2 reg byte a 4.0 +(byte) sum::return#3 reg byte a 1.6 + +reg byte y [ sum::a#3 ] +reg byte a [ sum::b#3 ] +reg byte a [ sum::return#0 ] +zp ZP_BYTE:2 [ main::s1#0 ] +reg byte a [ sum::return#1 ] +reg byte x [ main::s2#0 ] +reg byte a [ sum::return#2 ] +zp ZP_BYTE:3 [ main::s3#0 ] +reg byte a [ main::$3 ] +reg byte a [ main::s4#0 ] +reg byte a [ sum::return#3 ] diff --git a/src/test/ref/ternary-1.sym b/src/test/ref/ternary-1.sym index 1daabbadc..2949ea515 100644 --- a/src/test/ref/ternary-1.sym +++ b/src/test/ref/ternary-1.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$3 reg byte a 11.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 8.8 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$3 ] diff --git a/src/test/ref/ternary-2.sym b/src/test/ref/ternary-2.sym index 1daabbadc..5a352032f 100644 --- a/src/test/ref/ternary-2.sym +++ b/src/test/ref/ternary-2.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 + diff --git a/src/test/ref/ternary-3.sym b/src/test/ref/ternary-3.sym index 1daabbadc..940ba1408 100644 --- a/src/test/ref/ternary-3.sym +++ b/src/test/ref/ternary-3.sym @@ -1 +1,55 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(bool()) cond((byte) cond::b) +(label) cond::@return +(byte) cond::b +(byte) cond::b#0 reg byte y 13.0 +(bool) cond::return +(bool) cond::return#0 reg byte a 22.0 +(bool) cond::return#1 reg byte a 4.333333333333333 +(byte()) m1((byte) m1::i) +(label) m1::@return +(byte) m1::i +(byte) m1::i#0 reg byte y 13.0 +(byte) m1::return +(byte) m1::return#0 reg byte a 22.0 +(byte) m1::return#1 reg byte a 4.333333333333333 +(byte()) m2((byte) m2::i) +(label) m2::@return +(byte) m2::i +(byte) m2::i#0 reg byte y 13.0 +(byte) m2::return +(byte) m2::return#0 reg byte a 22.0 +(byte) m2::return#1 reg byte a 4.333333333333333 +(void()) main() +(bool~) main::$0 reg byte a 22.0 +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$4 reg byte a 22.0 +(byte~) main::$5 reg byte a 33.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 4.125 + +reg byte y [ main::i#2 main::i#1 ] +reg byte a [ main::$5 main::$4 main::$2 ] +reg byte y [ cond::b#0 ] +reg byte a [ cond::return#0 ] +reg byte a [ main::$0 ] +reg byte y [ m2::i#0 ] +reg byte a [ m2::return#0 ] +reg byte y [ m1::i#0 ] +reg byte a [ m1::return#0 ] +reg byte a [ m1::return#1 ] +reg byte a [ m2::return#1 ] +reg byte a [ cond::return#1 ] diff --git a/src/test/ref/ternary-inference.sym b/src/test/ref/ternary-inference.sym index 1daabbadc..fc7afc695 100644 --- a/src/test/ref/ternary-inference.sym +++ b/src/test/ref/ternary-inference.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$3 reg byte a 11.0 +(byte~) main::$4 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 9.166666666666666 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$3 ] +reg byte a [ main::$4 ] diff --git a/src/test/ref/test-address-of-param.sym b/src/test/ref/test-address-of-param.sym index 1daabbadc..158103e77 100644 --- a/src/test/ref/test-address-of-param.sym +++ b/src/test/ref/test-address-of-param.sym @@ -1 +1,28 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b1 +(byte) main::b1#0 b1 zp ZP_BYTE:4 0.36363636363636365 +(byte) main::b2 +(byte) main::b2#0 b2 zp ZP_BYTE:5 0.36363636363636365 +(byte) main::b3 +(byte) main::b3#0 b3 zp ZP_BYTE:6 0.36363636363636365 +(void()) setByte((byte*) setByte::ptr , (byte) setByte::b) +(label) setByte::@return +(byte) setByte::b +(byte) setByte::b#3 reg byte x 2.0 +(byte*) setByte::ptr +(byte*) setByte::ptr#3 ptr zp ZP_WORD:2 2.0 + +reg byte x [ setByte::b#3 ] +zp ZP_WORD:2 [ setByte::ptr#3 ] +zp ZP_BYTE:4 [ main::b1#0 ] +zp ZP_BYTE:5 [ main::b2#0 ] +zp ZP_BYTE:6 [ main::b3#0 ] diff --git a/src/test/ref/test-address-of.sym b/src/test/ref/test-address-of.sym index 1daabbadc..d06f605a2 100644 --- a/src/test/ref/test-address-of.sym +++ b/src/test/ref/test-address-of.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b +(byte) main::b#1 b zp ZP_BYTE:2 16.5 +(byte) main::b#2 b zp ZP_BYTE:2 11.0 +(byte*) main::bp +(const byte*) main::bp#0 bp = &(byte) main::b#2 +(byte) main::c +(byte) main::c#0 reg byte a 22.0 + +zp ZP_BYTE:2 [ main::b#2 main::b#1 ] +reg byte a [ main::c#0 ] diff --git a/src/test/ref/test-comments-block.sym b/src/test/ref/test-comments-block.sym index 1daabbadc..6c8231bb1 100644 --- a/src/test/ref/test-comments-block.sym +++ b/src/test/ref/test-comments-block.sym @@ -1 +1,34 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) a +(const byte) a#0 a = (byte) 'a' +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::b +(byte) main::b#1 reg byte x 16.5 +(byte) main::b#2 reg byte x 4.714285714285714 +(byte) main::i +(byte) main::i#1 reg byte y 7.333333333333333 +(byte) main::i#2 reg byte y 5.5 +(byte()) sum((byte) sum::a , (byte) sum::b) +(label) sum::@return +(byte) sum::a +(byte) sum::b +(byte) sum::b#0 reg byte a 13.0 +(byte) sum::r +(byte) sum::return +(byte) sum::return#0 reg byte a 22.0 +(byte) sum::return#1 reg byte a 4.333333333333333 + +reg byte x [ main::b#2 main::b#1 ] +reg byte y [ main::i#2 main::i#1 ] +reg byte a [ sum::b#0 ] +reg byte a [ sum::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ sum::return#1 ] diff --git a/src/test/ref/test-comments-loop.sym b/src/test/ref/test-comments-loop.sym index 1daabbadc..aa4c0476d 100644 --- a/src/test/ref/test-comments-loop.sym +++ b/src/test/ref/test-comments-loop.sym @@ -1 +1,13 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::b +(byte) main::b#1 reg byte x 16.5 +(byte) main::b#2 reg byte x 16.5 + +reg byte x [ main::b#2 main::b#1 ] diff --git a/src/test/ref/test-comments-single.sym b/src/test/ref/test-comments-single.sym index 1daabbadc..6c8231bb1 100644 --- a/src/test/ref/test-comments-single.sym +++ b/src/test/ref/test-comments-single.sym @@ -1 +1,34 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) a +(const byte) a#0 a = (byte) 'a' +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::b +(byte) main::b#1 reg byte x 16.5 +(byte) main::b#2 reg byte x 4.714285714285714 +(byte) main::i +(byte) main::i#1 reg byte y 7.333333333333333 +(byte) main::i#2 reg byte y 5.5 +(byte()) sum((byte) sum::a , (byte) sum::b) +(label) sum::@return +(byte) sum::a +(byte) sum::b +(byte) sum::b#0 reg byte a 13.0 +(byte) sum::r +(byte) sum::return +(byte) sum::return#0 reg byte a 22.0 +(byte) sum::return#1 reg byte a 4.333333333333333 + +reg byte x [ main::b#2 main::b#1 ] +reg byte y [ main::i#2 main::i#1 ] +reg byte a [ sum::b#0 ] +reg byte a [ sum::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ sum::return#1 ] diff --git a/src/test/ref/test-comments-usage.sym b/src/test/ref/test-comments-usage.sym index 1daabbadc..d0863c4b5 100644 --- a/src/test/ref/test-comments-usage.sym +++ b/src/test/ref/test-comments-usage.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/test-comparisons-sword.sym b/src/test/ref/test-comparisons-sword.sym index 1daabbadc..2878bf7fe 100644 --- a/src/test/ref/test-comparisons-sword.sym +++ b/src/test/ref/test-comparisons-sword.sym @@ -1 +1,201 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) EQ +(const byte) EQ#0 EQ = (byte) 4 +(byte) FF +(const byte) FF#0 FF = (byte) $57 +(byte) GE +(const byte) GE#0 GE = (byte) 3 +(byte) GT +(const byte) GT#0 GT = (byte) 2 +(byte) LE +(const byte) LE#0 LE = (byte) 1 +(byte) LT +(const byte) LT#0 LT = (byte) 0 +(byte) NE +(const byte) NE#0 NE = (byte) 5 +(byte) TT +(const byte) TT#0 TT = (byte) $51 +(void()) compare((signed word) compare::w1 , (signed word) compare::w2 , (byte) compare::op) +(label) compare::@1 +(label) compare::@10 +(label) compare::@11 +(label) compare::@12 +(label) compare::@13 +(label) compare::@14 +(label) compare::@15 +(label) compare::@16 +(label) compare::@17 +(label) compare::@18 +(label) compare::@19 +(label) compare::@2 +(label) compare::@20 +(label) compare::@21 +(label) compare::@22 +(label) compare::@23 +(label) compare::@24 +(label) compare::@25 +(label) compare::@26 +(label) compare::@27 +(label) compare::@28 +(label) compare::@29 +(label) compare::@3 +(label) compare::@30 +(label) compare::@31 +(label) compare::@4 +(label) compare::@5 +(label) compare::@6 +(label) compare::@7 +(label) compare::@8 +(label) compare::@9 +(label) compare::@return +(byte) compare::op +(byte) compare::op#0 reg byte x 168.8333333333334 +(byte*) compare::ops +(const byte*) compare::ops#1 ops#1 = (string) "!=@" +(byte*) compare::ops#10 ops zp ZP_WORD:7 0.2857142857142857 +(const byte*) compare::ops#2 ops#2 = (string) "==@" +(const byte*) compare::ops#3 ops#3 = (string) ">=@" +(const byte*) compare::ops#4 ops#4 = (string) "> @" +(const byte*) compare::ops#5 ops#5 = (string) "<=@" +(const byte*) compare::ops#6 ops#6 = (string) "< @" +(byte) compare::r +(byte) compare::r#10 r zp ZP_BYTE:9 0.9333333333333332 +(byte) compare::r#17 r zp ZP_BYTE:9 2.0 +(byte) compare::r#18 r zp ZP_BYTE:9 2.0 +(byte) compare::r#19 r zp ZP_BYTE:9 2.0 +(byte) compare::r#20 r zp ZP_BYTE:9 2.0 +(byte) compare::r#21 r zp ZP_BYTE:9 2.0 +(byte) compare::r#22 r zp ZP_BYTE:9 2.0 +(signed word) compare::w1 +(signed word) compare::w1#0 w1 zp ZP_WORD:10 31.78125 +(signed word) compare::w2 +(signed word) compare::w2#0 w2 zp ZP_WORD:19 26.076923076923077 +(void()) main() +(byte~) main::$8 reg byte a 22.0 +(byte~) main::$9 reg byte a 202.0 +(label) main::@1 +(label) main::@10 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 16.5 +(byte) main::i#2 i zp ZP_BYTE:2 1.5714285714285716 +(byte) main::j +(byte) main::j#1 j zp ZP_BYTE:3 151.5 +(byte) main::j#2 j zp ZP_BYTE:3 18.9375 +(byte) main::op +(byte) main::op#1 reg byte x 1501.5 +(byte) main::op#2 reg byte x 273.0 +(byte) main::s +(byte) main::s#1 s zp ZP_BYTE:4 1501.5 +(byte) main::s#10 s zp ZP_BYTE:4 302.0 +(byte) main::s#3 s zp ZP_BYTE:4 420.59999999999997 +(byte) main::s#5 s zp ZP_BYTE:4 71.0 +(byte) main::s#7 s zp ZP_BYTE:4 7.333333333333333 +(signed word) main::w1 +(signed word) main::w1#0 w1 zp ZP_WORD:17 53.26315789473684 +(signed word) main::w2 +(signed word) main::w2#0 w2 zp ZP_WORD:19 78.71428571428571 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:14 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:14 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:14 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 4.0 +(byte) print_char::ch#6 reg byte a 8.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:12 10001.0 +(byte*~) print_char_cursor#128 print_char_cursor zp ZP_WORD:12 2002.0 +(byte*) print_char_cursor#14 print_char_cursor zp ZP_WORD:12 344.3125 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:12 4287.0 +(byte*) print_char_cursor#43 print_char_cursor zp ZP_WORD:12 8.0 +(byte*) print_char_cursor#60 print_char_cursor zp ZP_WORD:12 3.0 +(byte*) print_char_cursor#61 print_char_cursor zp ZP_WORD:12 2.6666666666666665 +(byte*) print_char_cursor#63 print_char_cursor zp ZP_WORD:12 2.0 +(byte*) print_char_cursor#67 print_char_cursor zp ZP_WORD:12 35.677419354838705 +(byte*) print_char_cursor#70 print_char_cursor zp ZP_WORD:12 3.0 +(byte*) print_char_cursor#71 print_char_cursor zp ZP_WORD:12 3.0 +(byte*) print_char_cursor#75 print_char_cursor zp ZP_WORD:12 71.0 +(byte*) print_char_cursor#76 print_char_cursor zp ZP_WORD:12 445.0 +(byte*) print_char_cursor#80 print_char_cursor zp ZP_WORD:12 7.333333333333333 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:15 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:15 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:5 6401.0 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:5 233.8888888888889 +(byte*) print_line_cursor#23 print_line_cursor zp ZP_WORD:5 445.0 +(byte*) print_line_cursor#29 print_line_cursor zp ZP_WORD:5 71.0 +(byte*) print_line_cursor#31 print_line_cursor zp ZP_WORD:5 7.333333333333333 +(byte*) print_line_cursor#9 print_line_cursor zp ZP_WORD:5 20004.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:7 20002.0 +(byte*) print_str::str#1 str zp ZP_WORD:7 2.0 +(byte*) print_str::str#2 str zp ZP_WORD:7 10001.5 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:10 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:10 4.0 +(signed word) print_sword::w#2 w zp ZP_WORD:10 4.0 +(signed word) print_sword::w#3 w zp ZP_WORD:10 2.5 +(signed word) print_sword::w#4 w zp ZP_WORD:10 1.3333333333333333 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(signed word[]) swords +(const signed word[]) swords#0 swords = { (signed word) -$6fed, (signed word) $12, (signed word) $7fed } + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +zp ZP_BYTE:3 [ main::j#2 main::j#1 ] +reg byte x [ main::op#2 main::op#1 ] +zp ZP_BYTE:4 [ main::s#3 main::s#5 main::s#7 main::s#10 main::s#1 ] +zp ZP_WORD:5 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#29 print_line_cursor#31 print_line_cursor#23 print_line_cursor#1 ] +zp ZP_WORD:7 [ compare::ops#10 print_str::str#2 print_str::str#1 print_str::str#0 ] +zp ZP_BYTE:9 [ compare::r#10 compare::r#17 compare::r#18 compare::r#19 compare::r#20 compare::r#21 compare::r#22 ] +reg byte a [ print_char::ch#6 print_char::ch#4 print_char::ch#1 print_char::ch#2 ] +zp ZP_WORD:10 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 compare::w1#0 ] +zp ZP_WORD:12 [ print_char_cursor#60 print_char_cursor#43 print_char_cursor#71 print_char_cursor#2 print_char_cursor#70 print_char_cursor#67 print_char_cursor#75 print_char_cursor#80 print_char_cursor#76 print_char_cursor#14 print_char_cursor#128 print_char_cursor#63 print_char_cursor#61 print_char_cursor#1 ] +zp ZP_BYTE:14 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +zp ZP_WORD:15 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ main::$8 ] +zp ZP_WORD:17 [ main::w1#0 ] +reg byte a [ main::$9 ] +zp ZP_WORD:19 [ main::w2#0 compare::w2#0 ] +reg byte x [ compare::op#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] diff --git a/src/test/ref/test-comparisons-word.sym b/src/test/ref/test-comparisons-word.sym index 1daabbadc..b8c64a961 100644 --- a/src/test/ref/test-comparisons-word.sym +++ b/src/test/ref/test-comparisons-word.sym @@ -1 +1,175 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) FF +(const byte) FF#0 FF = (byte) $57 +(byte) TT +(const byte) TT#0 TT = (byte) $51 +(void()) compare((word) compare::w1 , (word) compare::w2 , (byte) compare::op) +(label) compare::@1 +(label) compare::@10 +(label) compare::@11 +(label) compare::@12 +(label) compare::@13 +(label) compare::@14 +(label) compare::@15 +(label) compare::@16 +(label) compare::@17 +(label) compare::@18 +(label) compare::@19 +(label) compare::@2 +(label) compare::@20 +(label) compare::@21 +(label) compare::@22 +(label) compare::@23 +(label) compare::@24 +(label) compare::@25 +(label) compare::@26 +(label) compare::@27 +(label) compare::@28 +(label) compare::@3 +(label) compare::@4 +(label) compare::@5 +(label) compare::@6 +(label) compare::@7 +(label) compare::@8 +(label) compare::@9 +(label) compare::@return +(byte) compare::op +(byte) compare::op#0 reg byte x 168.8333333333334 +(byte*) compare::ops +(const byte*) compare::ops#1 ops#1 = (string) "!=@" +(const byte*) compare::ops#2 ops#2 = (string) "==@" +(const byte*) compare::ops#3 ops#3 = (string) ">=@" +(const byte*) compare::ops#4 ops#4 = (string) "> @" +(const byte*) compare::ops#5 ops#5 = (string) "<=@" +(const byte*) compare::ops#6 ops#6 = (string) "< @" +(byte*) compare::ops#7 ops zp ZP_WORD:7 0.6666666666666666 +(byte) compare::r +(byte) compare::r#10 r zp ZP_BYTE:9 1.9999999999999996 +(byte) compare::r#12 r zp ZP_BYTE:9 2.0 +(byte) compare::r#13 r zp ZP_BYTE:9 2.0 +(byte) compare::r#14 r zp ZP_BYTE:9 2.0 +(byte) compare::r#15 r zp ZP_BYTE:9 2.0 +(byte) compare::r#16 r zp ZP_BYTE:9 2.0 +(byte) compare::r#17 r zp ZP_BYTE:9 2.0 +(word) compare::w1 +(word) compare::w1#0 w1 zp ZP_WORD:10 36.249999999999986 +(word) compare::w2 +(word) compare::w2#0 w2 zp ZP_WORD:19 32.741935483870954 +(void()) main() +(byte~) main::$8 reg byte a 22.0 +(byte~) main::$9 reg byte a 202.0 +(label) main::@1 +(label) main::@10 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 16.5 +(byte) main::i#2 i zp ZP_BYTE:2 1.5714285714285716 +(byte) main::j +(byte) main::j#1 j zp ZP_BYTE:3 151.5 +(byte) main::j#2 j zp ZP_BYTE:3 18.9375 +(byte) main::op +(byte) main::op#1 reg byte x 1501.5 +(byte) main::op#2 reg byte x 273.0 +(byte) main::s +(byte) main::s#1 s zp ZP_BYTE:4 1501.5 +(byte) main::s#10 s zp ZP_BYTE:4 302.0 +(byte) main::s#3 s zp ZP_BYTE:4 420.59999999999997 +(byte) main::s#5 s zp ZP_BYTE:4 71.0 +(byte) main::s#7 s zp ZP_BYTE:4 7.333333333333333 +(word) main::w1 +(word) main::w1#0 w1 zp ZP_WORD:17 53.26315789473684 +(word) main::w2 +(word) main::w2#0 w2 zp ZP_WORD:19 78.71428571428571 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:14 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:14 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:14 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 8.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:12 10001.0 +(byte*~) print_char_cursor#109 print_char_cursor zp ZP_WORD:12 2002.0 +(byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:12 393.3571428571428 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:12 5001.166666666666 +(byte*) print_char_cursor#36 print_char_cursor zp ZP_WORD:12 6.0 +(byte*) print_char_cursor#52 print_char_cursor zp ZP_WORD:12 3.0 +(byte*) print_char_cursor#53 print_char_cursor zp ZP_WORD:12 2.0 +(byte*) print_char_cursor#55 print_char_cursor zp ZP_WORD:12 36.800000000000004 +(byte*) print_char_cursor#61 print_char_cursor zp ZP_WORD:12 71.0 +(byte*) print_char_cursor#62 print_char_cursor zp ZP_WORD:12 445.0 +(byte*) print_char_cursor#72 print_char_cursor zp ZP_WORD:12 7.333333333333333 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:15 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:15 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:5 6401.0 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:5 233.8888888888889 +(byte*) print_line_cursor#23 print_line_cursor zp ZP_WORD:5 445.0 +(byte*) print_line_cursor#29 print_line_cursor zp ZP_WORD:5 71.0 +(byte*) print_line_cursor#31 print_line_cursor zp ZP_WORD:5 7.333333333333333 +(byte*) print_line_cursor#9 print_line_cursor zp ZP_WORD:5 20004.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:7 20002.0 +(byte*) print_str::str#1 str zp ZP_WORD:7 2.0 +(byte*) print_str::str#2 str zp ZP_WORD:7 10001.5 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#0 w zp ZP_WORD:10 4.0 +(word) print_word::w#1 w zp ZP_WORD:10 4.0 +(word) print_word::w#2 w zp ZP_WORD:10 2.6666666666666665 +(word[]) words +(const word[]) words#0 words = { (word) $12, (word) $3f34, (word) $cfed } + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +zp ZP_BYTE:3 [ main::j#2 main::j#1 ] +reg byte x [ main::op#2 main::op#1 ] +zp ZP_BYTE:4 [ main::s#3 main::s#5 main::s#7 main::s#10 main::s#1 ] +zp ZP_WORD:5 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#29 print_line_cursor#31 print_line_cursor#23 print_line_cursor#1 ] +zp ZP_WORD:7 [ compare::ops#7 print_str::str#2 print_str::str#1 print_str::str#0 ] +zp ZP_BYTE:9 [ compare::r#10 compare::r#12 compare::r#13 compare::r#14 compare::r#15 compare::r#16 compare::r#17 ] +reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +zp ZP_WORD:10 [ print_word::w#2 print_word::w#0 print_word::w#1 compare::w1#0 ] +zp ZP_WORD:12 [ print_char_cursor#52 print_char_cursor#36 print_char_cursor#55 print_char_cursor#61 print_char_cursor#72 print_char_cursor#62 print_char_cursor#11 print_char_cursor#109 print_char_cursor#53 print_char_cursor#2 print_char_cursor#1 ] +zp ZP_BYTE:14 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +zp ZP_WORD:15 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ main::$8 ] +zp ZP_WORD:17 [ main::w1#0 ] +reg byte a [ main::$9 ] +zp ZP_WORD:19 [ main::w2#0 compare::w2#0 ] +reg byte x [ compare::op#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] diff --git a/src/test/ref/test-comparisons.sym b/src/test/ref/test-comparisons.sym index 1daabbadc..75e013031 100644 --- a/src/test/ref/test-comparisons.sym +++ b/src/test/ref/test-comparisons.sym @@ -1 +1,266 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@18 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@22 +(label) main::@23 +(label) main::@24 +(label) main::@25 +(label) main::@26 +(label) main::@27 +(label) main::@28 +(label) main::@29 +(label) main::@3 +(label) main::@30 +(label) main::@31 +(label) main::@32 +(label) main::@33 +(label) main::@34 +(label) main::@35 +(label) main::@36 +(label) main::@37 +(label) main::@38 +(label) main::@39 +(label) main::@4 +(label) main::@40 +(label) main::@41 +(label) main::@42 +(label) main::@43 +(label) main::@44 +(label) main::@45 +(label) main::@46 +(label) main::@47 +(label) main::@48 +(label) main::@49 +(label) main::@5 +(label) main::@50 +(label) main::@51 +(label) main::@52 +(label) main::@53 +(label) main::@54 +(label) main::@55 +(label) main::@56 +(label) main::@57 +(label) main::@58 +(label) main::@59 +(label) main::@6 +(label) main::@60 +(label) main::@61 +(label) main::@62 +(label) main::@63 +(label) main::@64 +(label) main::@65 +(label) main::@66 +(label) main::@67 +(label) main::@68 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::a +(byte) main::a#1 a zp ZP_BYTE:2 5.5 +(byte) main::a#10 a zp ZP_BYTE:2 3.860927152317884 +(byte) main::b +(byte) main::b#0 b zp ZP_BYTE:14 0.9758064516129035 +(byte[5]) main::cs +(const byte[5]) main::cs#0 cs = { (byte) 7, (byte) $c7, (byte) $37, (byte) $97, (byte) $67 } +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:3 11.0 +(byte) main::i#10 i zp ZP_BYTE:3 0.8684210526315792 +(const string) main::op op = (string) "< @" +(const string) main::op12 op12 = (string) ">=@" +(const string) main::op16 op16 = (string) "==@" +(const string) main::op4 op4 = (string) "> @" +(const string) main::op8 op8 = (string) "<=@" +(byte) main::r +(byte) main::r#41 reg byte x 3.6666666666666665 +(byte) main::r#42 reg byte x 5.5 +(byte) main::r#43 reg byte x 3.6666666666666665 +(byte) main::r#44 reg byte x 3.6666666666666665 +(byte) main::r#45 reg byte x 3.6666666666666665 +(byte) main::r#46 reg byte x 5.5 +(byte) main::r#47 reg byte x 3.6666666666666665 +(byte) main::r#48 reg byte x 3.6666666666666665 +(byte) main::r#49 reg byte x 3.6666666666666665 +(byte) main::r#50 reg byte x 5.5 +(byte) main::r#51 reg byte x 3.6666666666666665 +(byte) main::r#52 reg byte x 3.6666666666666665 +(byte) main::r#53 reg byte x 3.6666666666666665 +(byte) main::r#54 reg byte x 5.5 +(byte) main::r#55 reg byte x 3.6666666666666665 +(byte) main::r#56 reg byte x 3.6666666666666665 +(byte) main::r#57 reg byte x 3.6666666666666665 +(byte) main::r#58 reg byte x 5.5 +(byte) main::r#59 reg byte x 3.6666666666666665 +(byte) main::r#60 reg byte x 3.6666666666666665 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:11 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:11 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:11 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 4.0 +(byte) print_char::ch#5 reg byte a 8.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:9 101.0 +(byte*) print_char_cursor#120 print_char_cursor zp ZP_WORD:9 2.75 +(byte*~) print_char_cursor#151 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#152 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#156 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#160 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#168 print_char_cursor zp ZP_WORD:9 22.0 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:9 51.16666666666666 +(byte*) print_char_cursor#54 print_char_cursor zp ZP_WORD:9 7.0 +(byte*) print_char_cursor#55 print_char_cursor zp ZP_WORD:9 2.106060606060605 +(byte*) print_char_cursor#94 print_char_cursor zp ZP_WORD:9 2.0 +(byte*) print_char_cursor#95 print_char_cursor zp ZP_WORD:9 222.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:12 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:12 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:4 3.2265625 +(byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:4 204.0 +(byte*) print_line_cursor#25 print_line_cursor zp ZP_WORD:4 57.0 +(byte*) print_line_cursor#27 print_line_cursor zp ZP_WORD:4 0.7333333333333333 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:6 202.0 +(byte*) print_str::str#1 str zp ZP_WORD:6 2.0 +(byte*) print_str::str#2 str zp ZP_WORD:6 101.5 +(void()) printu((byte) printu::a , (byte[]) printu::op , (byte) printu::b , (byte) printu::res) +(label) printu::@1 +(label) printu::@2 +(label) printu::@3 +(label) printu::@4 +(label) printu::@5 +(label) printu::@return +(byte) printu::a +(byte) printu::a#0 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#1 a zp ZP_BYTE:2 11.0 +(byte) printu::a#10 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#11 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#12 a zp ZP_BYTE:2 5.5 +(byte) printu::a#13 a zp ZP_BYTE:2 11.0 +(byte) printu::a#14 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#15 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#16 a zp ZP_BYTE:2 5.5 +(byte) printu::a#17 a zp ZP_BYTE:2 11.0 +(byte) printu::a#18 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#19 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#2 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#20 a zp ZP_BYTE:2 111.0 +(byte) printu::a#3 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#4 a zp ZP_BYTE:2 5.5 +(byte) printu::a#5 a zp ZP_BYTE:2 11.0 +(byte) printu::a#6 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#7 a zp ZP_BYTE:2 7.333333333333333 +(byte) printu::a#8 a zp ZP_BYTE:2 5.5 +(byte) printu::a#9 a zp ZP_BYTE:2 11.0 +(byte) printu::b +(byte) printu::b#0 b zp ZP_BYTE:8 11.0 +(byte) printu::b#10 b zp ZP_BYTE:8 11.0 +(byte) printu::b#11 b zp ZP_BYTE:8 11.0 +(byte) printu::b#12 b zp ZP_BYTE:8 7.333333333333333 +(byte) printu::b#14 b zp ZP_BYTE:8 11.0 +(byte) printu::b#15 b zp ZP_BYTE:8 11.0 +(byte) printu::b#16 b zp ZP_BYTE:8 7.333333333333333 +(byte) printu::b#18 b zp ZP_BYTE:8 11.0 +(byte) printu::b#19 b zp ZP_BYTE:8 11.0 +(byte) printu::b#2 b zp ZP_BYTE:8 11.0 +(byte) printu::b#20 b zp ZP_BYTE:8 27.833333333333325 +(byte) printu::b#3 b zp ZP_BYTE:8 11.0 +(byte) printu::b#4 b zp ZP_BYTE:8 7.333333333333333 +(byte) printu::b#6 b zp ZP_BYTE:8 11.0 +(byte) printu::b#7 b zp ZP_BYTE:8 11.0 +(byte) printu::b#8 b zp ZP_BYTE:8 7.333333333333333 +(byte[]) printu::op +(byte[]) printu::op#20 op zp ZP_WORD:6 0.5 +(byte) printu::res +(byte) printu::res#0 reg byte x 22.0 +(byte) printu::res#1 reg byte x 22.0 +(byte) printu::res#10 reg byte x 22.0 +(byte) printu::res#11 reg byte x 22.0 +(byte) printu::res#12 reg byte x 11.0 +(byte) printu::res#13 reg byte x 22.0 +(byte) printu::res#14 reg byte x 22.0 +(byte) printu::res#15 reg byte x 22.0 +(byte) printu::res#16 reg byte x 11.0 +(byte) printu::res#17 reg byte x 22.0 +(byte) printu::res#18 reg byte x 22.0 +(byte) printu::res#19 reg byte x 22.0 +(byte) printu::res#2 reg byte x 22.0 +(byte) printu::res#20 reg byte x 22.200000000000003 +(byte) printu::res#3 reg byte x 22.0 +(byte) printu::res#4 reg byte x 11.0 +(byte) printu::res#5 reg byte x 22.0 +(byte) printu::res#6 reg byte x 22.0 +(byte) printu::res#7 reg byte x 22.0 +(byte) printu::res#8 reg byte x 11.0 +(byte) printu::res#9 reg byte x 22.0 + +zp ZP_BYTE:2 [ main::a#10 main::a#1 printu::a#20 printu::a#8 printu::a#9 printu::a#10 printu::a#11 printu::a#12 printu::a#13 printu::a#14 printu::a#15 printu::a#16 printu::a#17 printu::a#0 printu::a#18 printu::a#19 printu::a#1 printu::a#2 printu::a#3 printu::a#4 printu::a#5 printu::a#6 printu::a#7 ] +zp ZP_BYTE:3 [ main::i#10 main::i#1 ] +reg byte x [ main::r#41 ] +reg byte x [ main::r#42 ] +reg byte x [ main::r#43 ] +reg byte x [ main::r#44 ] +reg byte x [ main::r#45 ] +reg byte x [ main::r#46 ] +reg byte x [ main::r#47 ] +reg byte x [ main::r#48 ] +reg byte x [ main::r#49 ] +reg byte x [ main::r#50 ] +reg byte x [ main::r#51 ] +reg byte x [ main::r#52 ] +reg byte x [ main::r#53 ] +reg byte x [ main::r#54 ] +reg byte x [ main::r#55 ] +reg byte x [ main::r#56 ] +reg byte x [ main::r#57 ] +reg byte x [ main::r#58 ] +reg byte x [ main::r#59 ] +reg byte x [ main::r#60 ] +zp ZP_WORD:4 [ print_line_cursor#13 print_line_cursor#25 print_line_cursor#27 print_line_cursor#1 ] +zp ZP_WORD:6 [ printu::op#20 print_str::str#2 print_str::str#1 print_str::str#0 ] +zp ZP_BYTE:8 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] +reg byte x [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] +reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] +zp ZP_WORD:9 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#152 print_char_cursor#55 print_char_cursor#156 print_char_cursor#160 print_char_cursor#120 print_char_cursor#151 print_char_cursor#168 print_char_cursor#2 print_char_cursor#1 ] +zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_BYTE:14 [ main::b#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] diff --git a/src/test/ref/test-division.sym b/src/test/ref/test-division.sym index 1daabbadc..e46f96671 100644 --- a/src/test/ref/test-division.sym +++ b/src/test/ref/test-division.sym @@ -1 +1,456 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor) +(label) div16s::@1 +(label) div16s::@return +(signed word) div16s::dividend +(signed word) div16s::dividend#0 dividend zp ZP_WORD:5 6.5 +(signed word) div16s::divisor +(signed word) div16s::divisor#0 divisor zp ZP_WORD:28 6.5 +(signed word) div16s::return +(signed word) div16s::return#0 return zp ZP_WORD:16 4.333333333333333 +(signed word) div16s::return#2 return zp ZP_WORD:16 22.0 +(word()) div16u((word) div16u::dividend , (word) div16u::divisor) +(label) div16u::@1 +(label) div16u::@return +(word) div16u::dividend +(word) div16u::dividend#0 dividend zp ZP_WORD:5 6.5 +(word) div16u::divisor +(word) div16u::divisor#0 divisor zp ZP_WORD:14 6.5 +(word) div16u::return +(word) div16u::return#0 return zp ZP_WORD:16 4.333333333333333 +(word) div16u::return#2 return zp ZP_WORD:16 22.0 +(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor) +(signed byte~) div8s::$5 reg byte a 2.0 +(signed byte~) div8s::$8 reg byte x 1.0 +(label) div8s::@1 +(label) div8s::@2 +(label) div8s::@3 +(label) div8s::@4 +(label) div8s::@5 +(label) div8s::@6 +(label) div8s::@7 +(label) div8s::@8 +(label) div8s::@9 +(label) div8s::@return +(signed byte) div8s::dividend +(signed byte) div8s::dividend#0 reg byte y 5.0 +(byte) div8s::dividendu +(byte) div8s::dividendu#3 reg byte y 0.8571428571428571 +(byte~) div8s::dividendu#7 reg byte y 4.0 +(byte~) div8s::dividendu#8 reg byte y 4.0 +(signed byte) div8s::divisor +(signed byte) div8s::divisor#0 reg byte x 2.142857142857143 +(byte) div8s::divisoru +(byte) div8s::divisoru#3 reg byte x 3.0 +(byte~) div8s::divisoru#4 reg byte x 4.0 +(byte~) div8s::divisoru#5 reg byte x 4.0 +(byte) div8s::neg +(byte) div8s::neg#2 neg zp ZP_BYTE:21 2.0 +(byte) div8s::neg#3 neg zp ZP_BYTE:21 1.0 +(byte) div8s::neg#4 neg zp ZP_BYTE:21 1.0 +(byte) div8s::resultu +(byte) div8s::resultu#0 reg byte y 0.6666666666666666 +(signed byte) div8s::return +(signed byte) div8s::return#1 reg byte a 4.0 +(signed byte) div8s::return#2 reg byte a 5.0 +(signed byte) div8s::return#3 reg byte a 22.0 +(signed byte~) div8s::return#7 reg byte a 2.0 +(byte()) div8u((byte) div8u::dividend , (byte) div8u::divisor) +(label) div8u::@1 +(label) div8u::@return +(byte) div8u::dividend +(byte) div8u::dividend#0 reg byte a 2.0 +(byte) div8u::dividend#1 reg byte a 11.0 +(byte) div8u::dividend#2 reg byte a 15.0 +(byte) div8u::divisor +(byte) div8u::divisor#0 reg byte x 4.0 +(byte) div8u::divisor#1 reg byte x 22.0 +(byte) div8u::divisor#2 reg byte x 7.5 +(byte) div8u::return +(byte) div8u::return#0 reg byte a 3.75 +(byte) div8u::return#2 reg byte a 4.0 +(byte) div8u::return#3 reg byte a 22.0 +(signed word()) divr16s((signed word) divr16s::dividend , (signed word) divr16s::divisor , (signed word) divr16s::rem) +(signed word~) divr16s::$13 $13 zp ZP_WORD:14 1.0 +(signed word~) divr16s::$8 $8 zp ZP_WORD:12 2.0 +(label) divr16s::@1 +(label) divr16s::@2 +(label) divr16s::@3 +(label) divr16s::@4 +(label) divr16s::@5 +(label) divr16s::@6 +(label) divr16s::@7 +(label) divr16s::@8 +(label) divr16s::@9 +(label) divr16s::@return +(signed word) divr16s::dividend +(signed word) divr16s::dividend#0 dividend zp ZP_WORD:12 2.0 +(word) divr16s::dividendu +(word) divr16s::dividendu#3 dividendu zp ZP_WORD:12 0.8571428571428571 +(word~) divr16s::dividendu#7 dividendu zp ZP_WORD:12 4.0 +(word~) divr16s::dividendu#8 dividendu zp ZP_WORD:12 4.0 +(signed word) divr16s::divisor +(signed word) divr16s::divisor#0 divisor zp ZP_WORD:14 0.8571428571428571 +(word) divr16s::divisoru +(word) divr16s::divisoru#3 divisoru zp ZP_WORD:14 3.0 +(word~) divr16s::divisoru#4 divisoru zp ZP_WORD:14 4.0 +(word~) divr16s::divisoru#5 divisoru zp ZP_WORD:14 4.0 +(byte) divr16s::neg +(byte) divr16s::neg#2 reg byte y 2.0 +(byte) divr16s::neg#3 reg byte y 1.0 +(byte) divr16s::neg#4 reg byte y 1.0 +(signed word) divr16s::rem +(word) divr16s::remu +(word) divr16s::resultu +(word) divr16s::resultu#0 resultu zp ZP_WORD:16 0.6666666666666666 +(signed word) divr16s::return +(signed word) divr16s::return#1 return zp ZP_WORD:16 4.0 +(signed word) divr16s::return#2 return zp ZP_WORD:16 2.0 +(signed word) divr16s::return#3 return zp ZP_WORD:16 4.0 +(signed word~) divr16s::return#7 return zp ZP_WORD:16 2.0 +(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 +(label) divr16u::@1 +(label) divr16u::@2 +(label) divr16u::@3 +(label) divr16u::@4 +(label) divr16u::@5 +(label) divr16u::@6 +(label) divr16u::@return +(word) divr16u::dividend +(word) divr16u::dividend#0 dividend zp ZP_WORD:12 25.25 +(word) divr16u::dividend#1 dividend zp ZP_WORD:12 2.0 +(word) divr16u::dividend#2 dividend zp ZP_WORD:12 2.0 +(word) divr16u::dividend#3 dividend zp ZP_WORD:12 43.57142857142858 +(word) divr16u::dividend#5 dividend zp ZP_WORD:12 6.0 +(word) divr16u::divisor +(word) divr16u::divisor#0 divisor zp ZP_WORD:14 4.0 +(word) divr16u::divisor#1 divisor zp ZP_WORD:14 4.0 +(word) divr16u::divisor#6 divisor zp ZP_WORD:14 12.875 +(byte) divr16u::i +(byte) divr16u::i#1 reg byte x 151.5 +(byte) divr16u::i#2 reg byte x 15.538461538461538 +(word) divr16u::quotient +(word) divr16u::quotient#1 quotient zp ZP_WORD:16 151.5 +(word) divr16u::quotient#2 quotient zp ZP_WORD:16 101.0 +(word) divr16u::quotient#3 quotient zp ZP_WORD:16 25.25 +(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#11 rem zp ZP_WORD:18 101.66666666666667 +(word) divr16u::rem#2 rem zp ZP_WORD:18 202.0 +(word) divr16u::rem#5 rem zp ZP_WORD:18 202.0 +(word) divr16u::rem#6 rem zp ZP_WORD:18 101.0 +(word) divr16u::return +(word) divr16u::return#0 return zp ZP_WORD:16 43.85714285714286 +(word) divr16u::return#2 return zp ZP_WORD:16 4.0 +(word) divr16u::return#3 return zp ZP_WORD:16 4.0 +(byte()) divr8u((byte) divr8u::dividend , (byte) divr8u::divisor , (byte) divr8u::rem) +(byte~) divr8u::$1 reg byte a 202.0 +(label) divr8u::@1 +(label) divr8u::@2 +(label) divr8u::@3 +(label) divr8u::@4 +(label) divr8u::@5 +(label) divr8u::@6 +(label) divr8u::@return +(byte) divr8u::dividend +(byte) divr8u::dividend#0 dividend zp ZP_BYTE:22 1.3333333333333333 +(byte) divr8u::dividend#1 dividend zp ZP_BYTE:22 25.25 +(byte) divr8u::dividend#2 dividend zp ZP_BYTE:22 50.83333333333333 +(byte) divr8u::divisor +(byte) divr8u::divisor#0 divisor zp ZP_BYTE:32 12.75 +(byte) divr8u::i +(byte) divr8u::i#1 reg byte x 151.5 +(byte) divr8u::i#2 reg byte x 16.833333333333332 +(byte) divr8u::quotient +(byte) divr8u::quotient#1 quotient zp ZP_BYTE:23 151.5 +(byte) divr8u::quotient#2 quotient zp ZP_BYTE:23 101.0 +(byte) divr8u::quotient#3 quotient zp ZP_BYTE:23 28.857142857142858 +(byte) divr8u::rem +(byte) divr8u::rem#1 reg byte y 101.0 +(byte) divr8u::rem#10 reg byte y 101.66666666666667 +(byte) divr8u::rem#2 reg byte y 202.0 +(byte) divr8u::rem#3 reg byte y 202.0 +(byte) divr8u::rem#4 reg byte y 202.0 +(byte) divr8u::rem#5 reg byte y 101.0 +(byte) divr8u::return +(byte) divr8u::return#0 reg byte a 4.0 +(byte) divr8u::return#1 return zp ZP_BYTE:23 50.83333333333333 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#1 b zp ZP_BYTE:7 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:7 4.0 +(byte) print_byte::b#3 b zp ZP_BYTE:7 22.0 +(byte) print_byte::b#4 b zp ZP_BYTE:7 22.0 +(byte) print_byte::b#5 b zp ZP_BYTE:7 22.0 +(byte) print_byte::b#6 b zp ZP_BYTE:7 22.0 +(byte) print_byte::b#7 b zp ZP_BYTE:7 13.5 +(byte~) print_byte::b#9 b zp ZP_BYTE:7 4.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#3 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 4.0 +(byte) print_char::ch#5 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:8 101.0 +(byte*) print_char_cursor#128 print_char_cursor zp ZP_WORD:8 15.607142857142856 +(byte*) print_char_cursor#130 print_char_cursor zp ZP_WORD:8 3.0 +(byte*) print_char_cursor#131 print_char_cursor zp ZP_WORD:8 15.999999999999998 +(byte*) print_char_cursor#132 print_char_cursor zp ZP_WORD:8 12.0 +(byte*) print_char_cursor#135 print_char_cursor zp ZP_WORD:8 24.0 +(byte*) print_char_cursor#136 print_char_cursor zp ZP_WORD:8 17.333333333333332 +(byte*) print_char_cursor#138 print_char_cursor zp ZP_WORD:8 2.4444444444444446 +(byte*~) print_char_cursor#161 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#167 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#172 print_char_cursor zp ZP_WORD:8 22.0 +(byte*) print_char_cursor#18 print_char_cursor zp ZP_WORD:8 1.9152542372881352 +(byte*~) print_char_cursor#188 print_char_cursor zp ZP_WORD:8 22.0 +(byte*) print_char_cursor#82 print_char_cursor zp ZP_WORD:8 7.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:26 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:26 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 3.833333333333334 +(byte*) print_line_cursor#20 print_line_cursor zp ZP_WORD:3 204.0 +(byte*) print_line_cursor#39 print_line_cursor zp ZP_WORD:3 46.0 +(byte*) print_line_cursor#41 print_line_cursor zp ZP_WORD:3 0.9565217391304348 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 b zp ZP_BYTE:7 4.0 +(signed byte) print_sbyte::b#1 b zp ZP_BYTE:7 11.0 +(signed byte) print_sbyte::b#10 b zp ZP_BYTE:7 8.333333333333332 +(signed byte) print_sbyte::b#2 b zp ZP_BYTE:7 22.0 +(signed byte) print_sbyte::b#3 b zp ZP_BYTE:7 22.0 +(signed byte) print_sbyte::b#4 b zp ZP_BYTE:7 22.0 +(signed byte) print_sbyte::b#7 b zp ZP_BYTE:7 4.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:10 202.0 +(byte*) print_str::str#13 str zp ZP_WORD:10 101.5 +(byte*) print_str::str#15 str zp ZP_WORD:10 2.0 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:5 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:5 11.0 +(signed word) print_sword::w#2 w zp ZP_WORD:5 22.0 +(signed word) print_sword::w#3 w zp ZP_WORD:5 22.0 +(signed word) print_sword::w#4 w zp ZP_WORD:5 22.0 +(signed word) print_sword::w#5 w zp ZP_WORD:5 12.5 +(signed word) print_sword::w#6 w zp ZP_WORD:5 4.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#1 w zp ZP_WORD:5 11.0 +(word) print_word::w#2 w zp ZP_WORD:5 22.0 +(word) print_word::w#3 w zp ZP_WORD:5 22.0 +(word) print_word::w#4 w zp ZP_WORD:5 22.0 +(word) print_word::w#5 w zp ZP_WORD:5 16.666666666666664 +(word~) print_word::w#7 w zp ZP_WORD:5 4.0 +(signed word) rem16s +(signed word) rem16s#11 rem16s zp ZP_WORD:18 0.6818181818181819 +(signed word) rem16s#2 rem16s zp ZP_WORD:18 2.0 +(signed word~) rem16s#37 rem16s zp ZP_WORD:18 4.0 +(word) rem16u +(word) rem16u#1 rem16u zp ZP_WORD:18 0.48148148148148145 +(signed byte) rem8s +(signed byte) rem8s#2 reg byte x 2.0 +(signed byte) rem8s#3 reg byte x 0.8333333333333335 +(signed byte~) rem8s#33 reg byte x 4.0 +(byte) rem8u +(byte) rem8u#17 reg byte x 0.5 +(const string) str str = (string) " / @" +(const string) str1 str1 = (string) " = @" +(const string) str2 str2 = (string) " @" +(void()) test_16s() +(byte~) test_16s::$11 reg byte x 16.5 +(label) test_16s::@1 +(label) test_16s::@10 +(label) test_16s::@2 +(label) test_16s::@3 +(label) test_16s::@4 +(label) test_16s::@5 +(label) test_16s::@6 +(label) test_16s::@7 +(label) test_16s::@8 +(label) test_16s::@9 +(label) test_16s::@return +(signed word) test_16s::dividend +(signed word) test_16s::dividend#0 dividend zp ZP_WORD:5 4.714285714285714 +(signed word[]) test_16s::dividends +(const signed word[]) test_16s::dividends#0 dividends = { (signed word) $7fff, (signed word) $7fff, (signed word) -$7fff, (signed word) -$7fff, (signed word) $7fff, (signed word) -$7fff } +(signed word) test_16s::divisor +(signed word) test_16s::divisor#0 divisor zp ZP_WORD:28 3.0 +(signed word[]) test_16s::divisors +(const signed word[]) test_16s::divisors#0 divisors = { (signed word) 5, (signed word) -7, (signed word) $b, (signed word) -$d, (signed word) -$11, (signed word) $13 } +(byte) test_16s::i +(byte) test_16s::i#1 i zp ZP_BYTE:2 16.5 +(byte) test_16s::i#10 i zp ZP_BYTE:2 1.2692307692307692 +(signed word) test_16s::res +(signed word) test_16s::res#0 res zp ZP_WORD:16 2.2 +(void()) test_16u() +(byte~) test_16u::$11 reg byte x 16.5 +(label) test_16u::@1 +(label) test_16u::@10 +(label) test_16u::@2 +(label) test_16u::@3 +(label) test_16u::@4 +(label) test_16u::@5 +(label) test_16u::@6 +(label) test_16u::@7 +(label) test_16u::@8 +(label) test_16u::@9 +(label) test_16u::@return +(word) test_16u::dividend +(word) test_16u::dividend#0 dividend zp ZP_WORD:5 4.714285714285714 +(word[]) test_16u::dividends +(const word[]) test_16u::dividends#0 dividends = { (word) $ffff, (word) $ffff, (word) $ffff, (word) $ffff, (word) $ffff, (word) $ffff } +(word) test_16u::divisor +(word) test_16u::divisor#0 divisor zp ZP_WORD:14 3.0 +(word[]) test_16u::divisors +(const word[]) test_16u::divisors#0 divisors = { (word) 5, (word) 7, (word) $b, (word) $d, (word) $11, (word) $13 } +(byte) test_16u::i +(byte) test_16u::i#1 i zp ZP_BYTE:24 16.5 +(byte) test_16u::i#10 i zp ZP_BYTE:24 1.2692307692307692 +(word) test_16u::res +(word) test_16u::res#0 res zp ZP_WORD:16 2.2 +(void()) test_8s() +(label) test_8s::@1 +(label) test_8s::@10 +(label) test_8s::@2 +(label) test_8s::@3 +(label) test_8s::@4 +(label) test_8s::@5 +(label) test_8s::@6 +(label) test_8s::@7 +(label) test_8s::@8 +(label) test_8s::@9 +(label) test_8s::@return +(signed byte) test_8s::dividend +(signed byte) test_8s::dividend#0 dividend zp ZP_BYTE:7 4.714285714285714 +(signed byte[]) test_8s::dividends +(const signed byte[]) test_8s::dividends#0 dividends = { (signed byte) $7f, (signed byte) -$7f, (signed byte) -$7f, (signed byte) $7f, (signed byte) $7f, (signed byte) $7f } +(signed byte) test_8s::divisor +(signed byte) test_8s::divisor#0 divisor zp ZP_BYTE:30 3.0 +(signed byte[]) test_8s::divisors +(const signed byte[]) test_8s::divisors#0 divisors = { (signed byte) 5, (signed byte) 7, (signed byte) -$b, (signed byte) -$d, (signed byte) $11, (signed byte) $13 } +(byte) test_8s::i +(byte) test_8s::i#1 i zp ZP_BYTE:20 16.5 +(byte) test_8s::i#10 i zp ZP_BYTE:20 1.76 +(signed byte) test_8s::res +(signed byte) test_8s::res#0 res zp ZP_BYTE:31 2.2 +(void()) test_8u() +(label) test_8u::@1 +(label) test_8u::@10 +(label) test_8u::@11 +(label) test_8u::@2 +(label) test_8u::@3 +(label) test_8u::@4 +(label) test_8u::@5 +(label) test_8u::@6 +(label) test_8u::@7 +(label) test_8u::@8 +(label) test_8u::@9 +(label) test_8u::@return +(byte) test_8u::dividend +(byte) test_8u::dividend#0 dividend zp ZP_BYTE:7 4.714285714285714 +(byte[]) test_8u::dividends +(const byte[]) test_8u::dividends#0 dividends = { (byte) $ff, (byte) $ff, (byte) $ff, (byte) $ff, (byte) $ff, (byte) $ff } +(byte) test_8u::divisor +(byte) test_8u::divisor#0 divisor zp ZP_BYTE:33 3.3000000000000003 +(byte[]) test_8u::divisors +(const byte[]) test_8u::divisors#0 divisors = { (byte) 5, (byte) 7, (byte) $b, (byte) $d, (byte) $11, (byte) $13 } +(byte) test_8u::i +(byte) test_8u::i#1 i zp ZP_BYTE:25 11.0 +(byte) test_8u::i#10 i zp ZP_BYTE:25 1.8333333333333333 +(byte) test_8u::res +(byte) test_8u::res#0 res zp ZP_BYTE:34 2.4444444444444446 + +zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ] +zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] +zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 test_16s::dividend#0 div16s::dividend#0 test_16u::dividend#0 div16u::dividend#0 ] +zp ZP_BYTE:7 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 print_sbyte::b#7 print_sbyte::b#0 print_sbyte::b#10 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 test_8u::dividend#0 test_8s::dividend#0 ] +reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ] +zp ZP_WORD:8 [ print_char_cursor#82 print_char_cursor#136 print_char_cursor#135 print_char_cursor#130 print_char_cursor#131 print_char_cursor#161 print_char_cursor#128 print_char_cursor#18 print_char_cursor#172 print_char_cursor#138 print_char_cursor#132 print_char_cursor#1 print_char_cursor#167 print_char_cursor#188 ] +zp ZP_WORD:10 [ print_str::str#13 print_str::str#15 print_str::str#0 ] +zp ZP_WORD:12 [ divr16s::dividendu#3 divr16s::dividendu#7 divr16s::dividendu#8 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#2 divr16u::dividend#0 divr16s::dividend#0 divr16s::$8 ] +zp ZP_WORD:14 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 divr16s::divisor#0 divr16s::$13 test_16u::divisor#0 div16u::divisor#0 ] +reg byte y [ divr16s::neg#4 divr16s::neg#2 divr16s::neg#3 ] +zp ZP_WORD:16 [ divr16s::return#2 divr16s::return#1 divr16s::return#7 divr16s::resultu#0 divr16s::return#3 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#3 divr16u::return#2 div16s::return#2 test_16s::res#0 div16s::return#0 div16u::return#2 test_16u::res#0 div16u::return#0 ] +zp ZP_WORD:18 [ rem16s#11 rem16s#2 rem16s#37 rem16u#1 divr16u::rem#5 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] +reg byte x [ divr16u::i#2 divr16u::i#1 ] +zp ZP_BYTE:20 [ test_8s::i#10 test_8s::i#1 ] +reg byte y [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ] +reg byte x [ div8s::divisoru#3 div8s::divisoru#4 div8s::divisoru#5 ] +zp ZP_BYTE:21 [ div8s::neg#4 div8s::neg#2 div8s::neg#3 ] +reg byte a [ div8s::return#2 div8s::return#1 div8s::return#7 ] +reg byte x [ rem8s#3 rem8s#2 rem8s#33 ] +reg byte a [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ] +reg byte x [ div8u::divisor#2 div8u::divisor#0 div8u::divisor#1 ] +reg byte y [ divr8u::rem#4 divr8u::rem#10 divr8u::rem#5 divr8u::rem#1 divr8u::rem#2 divr8u::rem#3 ] +zp ZP_BYTE:22 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ] +zp ZP_BYTE:23 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ] +reg byte x [ divr8u::i#2 divr8u::i#1 ] +zp ZP_BYTE:24 [ test_16u::i#10 test_16u::i#1 ] +zp ZP_BYTE:25 [ test_8u::i#10 test_8u::i#1 ] +zp ZP_WORD:26 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte x [ test_16s::$11 ] +zp ZP_WORD:28 [ test_16s::divisor#0 div16s::divisor#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +reg byte a [ divr16u::$1 ] +reg byte a [ divr16u::$2 ] +zp ZP_BYTE:30 [ test_8s::divisor#0 ] +reg byte y [ div8s::dividend#0 ] +reg byte x [ div8s::divisor#0 ] +reg byte a [ div8s::return#3 ] +zp ZP_BYTE:31 [ test_8s::res#0 ] +reg byte a [ div8u::return#2 ] +reg byte y [ div8s::resultu#0 ] +reg byte x [ div8s::$8 ] +reg byte a [ div8s::$5 ] +zp ZP_BYTE:32 [ divr8u::divisor#0 ] +reg byte a [ divr8u::return#0 ] +reg byte a [ div8u::return#0 ] +reg byte a [ divr8u::$1 ] +reg byte x [ rem8u#17 ] +reg byte x [ test_16u::$11 ] +zp ZP_BYTE:33 [ test_8u::divisor#0 ] +reg byte a [ div8u::return#3 ] +zp ZP_BYTE:34 [ test_8u::res#0 ] diff --git a/src/test/ref/test-interrupt-notype.sym b/src/test/ref/test-interrupt-notype.sym index 1daabbadc..7faf40049 100644 --- a/src/test/ref/test-interrupt-notype.sym +++ b/src/test/ref/test-interrupt-notype.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte*) FGCOL +(const byte*) FGCOL#0 FGCOL = (byte*) 53281 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@1 + diff --git a/src/test/ref/test-interrupt-volatile-write.sym b/src/test/ref/test-interrupt-volatile-write.sym index 1daabbadc..a87c6992c 100644 --- a/src/test/ref/test-interrupt-volatile-write.sym +++ b/src/test/ref/test-interrupt-volatile-write.sym @@ -1 +1,23 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte) col +(byte) col#0 col zp ZP_BYTE:2 1.9999999999999998 +(byte) col#1 col zp ZP_BYTE:2 22.0 +(byte) col#14 col zp ZP_BYTE:2 114.0 +(byte) col#3 col zp ZP_BYTE:2 20.0 +(byte) col#4 col zp ZP_BYTE:2 20.0 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@1 +(label) irq::@2 +(label) irq::@return +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 + +zp ZP_BYTE:2 [ col#14 col#0 col#1 col#3 col#4 ] diff --git a/src/test/ref/test-interrupt-volatile.sym b/src/test/ref/test-interrupt-volatile.sym index 1daabbadc..e4e8486c9 100644 --- a/src/test/ref/test-interrupt-volatile.sym +++ b/src/test/ref/test-interrupt-volatile.sym @@ -1 +1,18 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +(byte) col +(byte) col#0 col zp ZP_BYTE:2 1.5 +(byte) col#1 col zp ZP_BYTE:2 22.0 +(byte) col#2 col zp ZP_BYTE:2 24.0 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@1 +(label) main::@2 + +zp ZP_BYTE:2 [ col#2 col#0 col#1 ] diff --git a/src/test/ref/test-interrupt.sym b/src/test/ref/test-interrupt.sym index 1daabbadc..7faf40049 100644 --- a/src/test/ref/test-interrupt.sym +++ b/src/test/ref/test-interrupt.sym @@ -1 +1,14 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53280 +(byte*) FGCOL +(const byte*) FGCOL#0 FGCOL = (byte*) 53281 +(void()**) KERNEL_IRQ +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = (void()**) 788 +interrupt(KERNEL_MIN)(void()) irq() +(label) irq::@return +(void()) main() +(label) main::@1 + diff --git a/src/test/ref/test-kasm-pc.sym b/src/test/ref/test-kasm-pc.sym index 1daabbadc..ef19abb91 100644 --- a/src/test/ref/test-kasm-pc.sym +++ b/src/test/ref/test-kasm-pc.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) TABLE +(const byte*) TABLE#0 TABLE = (byte*) 8192 +(void()) main() +(label) main::@1 +(label) main::@2 +(byte*) main::BORDERCOL +(const byte*) main::BORDERCOL#0 BORDERCOL = (byte*) 53280 +(byte) main::i +(byte) main::i#1 reg byte x 22.0 +(byte) main::i#2 reg byte x 16.5 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/test-kasm.sym b/src/test/ref/test-kasm.sym index 1daabbadc..2beed4a4e 100644 --- a/src/test/ref/test-kasm.sym +++ b/src/test/ref/test-kasm.sym @@ -1 +1,6 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 + diff --git a/src/test/ref/test-keyboard-space.sym b/src/test/ref/test-keyboard-space.sym index 1daabbadc..31da39226 100644 --- a/src/test/ref/test-keyboard-space.sym +++ b/src/test/ref/test-keyboard-space.sym @@ -1 +1,60 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(byte) BLUE +(const byte) BLUE#0 BLUE = (byte) 6 +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_A_DDR +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = (byte*) 56322 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte*) CIA1_PORT_B_DDR +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = (byte*) 56323 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte) 5 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(void()) keyboard_init() +(label) keyboard_init::@return +(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) +(byte~) keyboard_key_pressed::$2 reg byte a 4.0 +(label) keyboard_key_pressed::@1 +(label) keyboard_key_pressed::@return +(byte) keyboard_key_pressed::colidx +(const byte) keyboard_key_pressed::colidx#0 colidx = (const byte) KEY_SPACE#0&(byte) 7 +(byte) keyboard_key_pressed::key +(byte) keyboard_key_pressed::return +(byte) keyboard_key_pressed::return#0 reg byte a 4.333333333333333 +(byte) keyboard_key_pressed::return#2 reg byte a 22.0 +(byte) keyboard_key_pressed::rowidx +(const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(byte) 3 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333 +(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(void()) main() +(byte~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 + +reg byte a [ keyboard_key_pressed::return#2 ] +reg byte a [ main::$2 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_key_pressed::$2 ] +reg byte a [ keyboard_key_pressed::return#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] diff --git a/src/test/ref/test-keyboard.sym b/src/test/ref/test-keyboard.sym index 1daabbadc..45958e04f 100644 --- a/src/test/ref/test-keyboard.sym +++ b/src/test/ref/test-keyboard.sym @@ -1 +1,225 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = (byte*) 56320 +(byte*) CIA1_PORT_A_DDR +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = (byte*) 56322 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = (byte*) 56321 +(byte*) CIA1_PORT_B_DDR +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = (byte*) 56323 +(byte) KEY_0 +(const byte) KEY_0#0 KEY_0 = (byte) $23 +(byte) KEY_1 +(const byte) KEY_1#0 KEY_1 = (byte) $38 +(byte) KEY_2 +(const byte) KEY_2#0 KEY_2 = (byte) $3b +(byte) KEY_3 +(const byte) KEY_3#0 KEY_3 = (byte) 8 +(byte) KEY_4 +(const byte) KEY_4#0 KEY_4 = (byte) $b +(byte) KEY_5 +(const byte) KEY_5#0 KEY_5 = (byte) $10 +(byte) KEY_6 +(const byte) KEY_6#0 KEY_6 = (byte) $13 +(byte) KEY_7 +(const byte) KEY_7#0 KEY_7 = (byte) $18 +(byte) KEY_8 +(const byte) KEY_8#0 KEY_8 = (byte) $1b +(byte) KEY_9 +(const byte) KEY_9#0 KEY_9 = (byte) $20 +(byte) KEY_A +(const byte) KEY_A#0 KEY_A = (byte) $a +(byte) KEY_ARROW_LEFT +(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte) $39 +(byte) KEY_ARROW_UP +(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte) $36 +(byte) KEY_ASTERISK +(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte) $31 +(byte) KEY_AT +(const byte) KEY_AT#0 KEY_AT = (byte) $2e +(byte) KEY_B +(const byte) KEY_B#0 KEY_B = (byte) $1c +(byte) KEY_C +(const byte) KEY_C#0 KEY_C = (byte) $14 +(byte) KEY_COLON +(const byte) KEY_COLON#0 KEY_COLON = (byte) $2d +(byte) KEY_COMMA +(const byte) KEY_COMMA#0 KEY_COMMA = (byte) $2f +(byte) KEY_D +(const byte) KEY_D#0 KEY_D = (byte) $12 +(byte) KEY_DOT +(const byte) KEY_DOT#0 KEY_DOT = (byte) $2c +(byte) KEY_E +(const byte) KEY_E#0 KEY_E = (byte) $e +(byte) KEY_EQUALS +(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte) $35 +(byte) KEY_F +(const byte) KEY_F#0 KEY_F = (byte) $15 +(byte) KEY_G +(const byte) KEY_G#0 KEY_G = (byte) $1a +(byte) KEY_H +(const byte) KEY_H#0 KEY_H = (byte) $1d +(byte) KEY_I +(const byte) KEY_I#0 KEY_I = (byte) $21 +(byte) KEY_J +(const byte) KEY_J#0 KEY_J = (byte) $22 +(byte) KEY_K +(const byte) KEY_K#0 KEY_K = (byte) $25 +(byte) KEY_L +(const byte) KEY_L#0 KEY_L = (byte) $2a +(byte) KEY_M +(const byte) KEY_M#0 KEY_M = (byte) $24 +(byte) KEY_MINUS +(const byte) KEY_MINUS#0 KEY_MINUS = (byte) $2b +(byte) KEY_N +(const byte) KEY_N#0 KEY_N = (byte) $27 +(byte) KEY_O +(const byte) KEY_O#0 KEY_O = (byte) $26 +(byte) KEY_P +(const byte) KEY_P#0 KEY_P = (byte) $29 +(byte) KEY_PLUS +(const byte) KEY_PLUS#0 KEY_PLUS = (byte) $28 +(byte) KEY_POUND +(const byte) KEY_POUND#0 KEY_POUND = (byte) $30 +(byte) KEY_Q +(const byte) KEY_Q#0 KEY_Q = (byte) $3e +(byte) KEY_R +(const byte) KEY_R#0 KEY_R = (byte) $11 +(byte) KEY_S +(const byte) KEY_S#0 KEY_S = (byte) $d +(byte) KEY_SEMICOLON +(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte) $32 +(byte) KEY_SLASH +(const byte) KEY_SLASH#0 KEY_SLASH = (byte) $37 +(byte) KEY_SPACE +(const byte) KEY_SPACE#0 KEY_SPACE = (byte) $3c +(byte) KEY_T +(const byte) KEY_T#0 KEY_T = (byte) $16 +(byte) KEY_U +(const byte) KEY_U#0 KEY_U = (byte) $1e +(byte) KEY_V +(const byte) KEY_V#0 KEY_V = (byte) $1f +(byte) KEY_W +(const byte) KEY_W#0 KEY_W = (byte) 9 +(byte) KEY_X +(const byte) KEY_X#0 KEY_X = (byte) $17 +(byte) KEY_Y +(const byte) KEY_Y#0 KEY_Y = (byte) $19 +(byte) KEY_Z +(const byte) KEY_Z#0 KEY_Z = (byte) $c +(byte*) RASTER +(const byte*) RASTER#0 RASTER = (byte*) 53266 +(byte[]) keyboard_char_keycodes +(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte) $3f, (const byte) KEY_POUND#0, (byte) $3f, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (byte) $3f, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte) $3f, (const byte) KEY_EQUALS#0, (byte) $3f, (byte) $3f } +(byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) +(label) keyboard_get_keycode::@return +(byte) keyboard_get_keycode::ch +(byte) keyboard_get_keycode::ch#0 reg byte y 103.0 +(byte) keyboard_get_keycode::return +(byte) keyboard_get_keycode::return#0 reg byte a 34.33333333333333 +(byte) keyboard_get_keycode::return#2 reg byte a 202.0 +(void()) keyboard_init() +(label) keyboard_init::@return +(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) +(byte~) keyboard_key_pressed::$2 reg byte a 4.0 +(label) keyboard_key_pressed::@1 +(label) keyboard_key_pressed::@return +(byte) keyboard_key_pressed::colidx +(byte) keyboard_key_pressed::colidx#0 colidx zp ZP_BYTE:8 0.6666666666666666 +(byte) keyboard_key_pressed::key +(byte) keyboard_key_pressed::key#0 reg byte y 52.5 +(byte) keyboard_key_pressed::return +(byte) keyboard_key_pressed::return#0 reg byte a 34.33333333333333 +(byte) keyboard_key_pressed::return#2 reg byte a 202.0 +(byte) keyboard_key_pressed::rowidx +(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 } +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 reg byte a 26.25 +(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::return#3 reg byte a 202.0 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte y 4.0 +(byte) keyboard_matrix_read::rowid#1 reg byte y 202.0 +(byte) keyboard_matrix_read::rowid#2 reg byte y 105.0 +(byte[8]) keyboard_matrix_row_bitmask +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f } +(void()) main() +(byte~) main::$15 reg byte a 202.0 +(byte~) main::$5 reg byte a 2002.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@18 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::ch +(byte) main::ch#1 ch zp ZP_BYTE:7 151.5 +(byte) main::ch#2 ch zp ZP_BYTE:7 28.857142857142858 +(byte) main::col +(byte) main::col#1 reg byte y 1501.5 +(byte) main::col#2 reg byte y 667.3333333333334 +(byte) main::i +(byte) main::i#1 reg byte x 202.0 +(byte) main::i#2 reg byte x 151.5 +(byte) main::i#3 reg byte x 42.08333333333333 +(byte) main::i#4 reg byte x 202.0 +(byte) main::i#6 reg byte x 168.33333333333331 +(byte) main::key +(byte) main::key#0 reg byte a 151.5 +(byte) main::row +(byte) main::row#1 row zp ZP_BYTE:4 151.5 +(byte) main::row#2 row zp ZP_BYTE:4 21.642857142857142 +(byte) main::row_pressed_bits +(byte) main::row_pressed_bits#0 reg byte x 202.0 +(byte) main::row_pressed_bits#1 reg byte x 667.3333333333334 +(byte) main::row_pressed_bits#2 reg byte x 620.8 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) main::sc#2 sc zp ZP_WORD:2 16.5 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:5 71.0 +(byte*) main::screen#13 screen zp ZP_WORD:5 169.53846153846155 +(byte*) main::screen#2 screen zp ZP_WORD:5 10.142857142857142 + +zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] +zp ZP_BYTE:4 [ main::row#2 main::row#1 ] +zp ZP_WORD:5 [ main::screen#13 main::screen#1 main::screen#2 ] +reg byte x [ main::row_pressed_bits#2 main::row_pressed_bits#1 main::row_pressed_bits#0 ] +reg byte y [ main::col#2 main::col#1 ] +zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] +reg byte x [ main::i#4 main::i#3 main::i#6 main::i#1 main::i#2 ] +reg byte y [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0 keyboard_matrix_read::rowid#1 ] +reg byte a [ keyboard_matrix_read::return#3 ] +reg byte a [ main::$5 ] +reg byte y [ keyboard_get_keycode::ch#0 ] +reg byte a [ keyboard_get_keycode::return#2 ] +reg byte a [ main::key#0 ] +reg byte y [ keyboard_key_pressed::key#0 ] +reg byte a [ keyboard_key_pressed::return#2 ] +reg byte a [ main::$15 ] +zp ZP_BYTE:8 [ keyboard_key_pressed::colidx#0 ] +reg byte a [ keyboard_key_pressed::rowidx#0 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_key_pressed::$2 ] +reg byte a [ keyboard_key_pressed::return#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ keyboard_get_keycode::return#0 ] diff --git a/src/test/ref/test-lohiconst.sym b/src/test/ref/test-lohiconst.sym index 1daabbadc..b8bf27e71 100644 --- a/src/test/ref/test-lohiconst.sym +++ b/src/test/ref/test-lohiconst.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(dword) PI_u4f28 +(const dword) PI_u4f28#0 PI_u4f28 = (dword) $3243f6a9 +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 + diff --git a/src/test/ref/test-lowhigh.sym b/src/test/ref/test-lowhigh.sym index 1daabbadc..fe9e85b27 100644 --- a/src/test/ref/test-lowhigh.sym +++ b/src/test/ref/test-lowhigh.sym @@ -1 +1,108 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(word~) main::$15 $15 zp ZP_WORD:22 22.0 +(word~) main::$19 $19 zp ZP_WORD:24 22.0 +(word~) main::$2 $2 zp ZP_WORD:14 22.0 +(word~) main::$23 $23 zp ZP_WORD:26 22.0 +(word~) main::$27 $27 zp ZP_WORD:28 22.0 +(word~) main::$32 $32 zp ZP_WORD:14 22.0 +(word~) main::$33 $33 zp ZP_WORD:20 22.0 +(word~) main::$5 $5 zp ZP_WORD:20 22.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(dword) main::dw +(dword) main::dw#1 dw zp ZP_DWORD:2 11.0 +(dword) main::dw#10 dw zp ZP_DWORD:2 1.4102564102564101 +(dword) main::dw2 +(dword) main::dw2#1 dw2 zp ZP_DWORD:16 7.333333333333333 +(dword) main::dw2#10 dw2 zp ZP_DWORD:16 3.142857142857143 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 reg byte x 4.0 +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#2 reg byte x 22.0 +(byte) print_byte::b#3 reg byte x 22.0 +(byte) print_byte::b#4 reg byte x 22.0 +(byte) print_byte::b#5 reg byte x 22.0 +(byte) print_byte::b#6 reg byte x 13.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 reg byte a 4.0 +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#8 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:8 4.918367346938773 +(byte*) print_char_cursor#44 print_char_cursor zp ZP_WORD:8 37.0 +(byte*) print_char_cursor#65 print_char_cursor zp ZP_WORD:8 14.0 +(byte*) print_char_cursor#67 print_char_cursor zp ZP_WORD:8 16.666666666666664 +(byte*) print_char_cursor#69 print_char_cursor zp ZP_WORD:8 1.4444444444444446 +(byte*~) print_char_cursor#90 print_char_cursor zp ZP_WORD:8 22.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:12 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:12 16.5 +(void()) print_dword((dword) print_dword::dw) +(label) print_dword::@1 +(label) print_dword::@return +(dword) print_dword::dw +(dword) print_dword::dw#0 dw zp ZP_DWORD:16 5.0 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:6 46.42857142857143 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:6 0.3333333333333333 +(byte*) print_line_cursor#9 print_line_cursor zp ZP_WORD:6 204.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#0 w zp ZP_WORD:10 4.0 +(word) print_word::w#1 w zp ZP_WORD:10 4.0 +(word) print_word::w#2 w zp ZP_WORD:10 22.0 +(word) print_word::w#3 w zp ZP_WORD:10 22.0 +(word) print_word::w#4 w zp ZP_WORD:10 9.999999999999998 + +zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] +zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] +reg byte x [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] +zp ZP_WORD:8 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#90 ] +zp ZP_WORD:10 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 ] +zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_WORD:14 [ main::$2 main::$32 ] +zp ZP_DWORD:16 [ main::dw2#1 main::dw2#10 print_dword::dw#0 ] +zp ZP_WORD:20 [ main::$5 main::$33 ] +zp ZP_WORD:22 [ main::$15 ] +zp ZP_WORD:24 [ main::$19 ] +zp ZP_WORD:26 [ main::$23 ] +zp ZP_WORD:28 [ main::$27 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] diff --git a/src/test/ref/test-multiply-16bit.sym b/src/test/ref/test-multiply-16bit.sym index 1daabbadc..809e2e620 100644 --- a/src/test/ref/test-multiply-16bit.sym +++ b/src/test/ref/test-multiply-16bit.sym @@ -1 +1,471 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b) +(word~) mul16s::$13 $13 zp ZP_WORD:62 4.0 +(word~) mul16s::$16 $16 zp ZP_WORD:60 4.0 +(word~) mul16s::$17 $17 zp ZP_WORD:62 4.0 +(word~) mul16s::$9 $9 zp ZP_WORD:60 4.0 +(label) mul16s::@1 +(label) mul16s::@2 +(label) mul16s::@3 +(label) mul16s::@4 +(label) mul16s::@5 +(label) mul16s::@return +(signed word) mul16s::a +(signed word) mul16s::a#0 a zp ZP_WORD:3 7.357142857142858 +(signed word) mul16s::b +(signed word) mul16s::b#0 b zp ZP_WORD:5 9.363636363636363 +(dword) mul16s::m +(dword) mul16s::m#0 m zp ZP_DWORD:25 2.0 +(dword) mul16s::m#1 m zp ZP_DWORD:25 4.0 +(dword) mul16s::m#2 m zp ZP_DWORD:25 4.0 +(dword) mul16s::m#4 m zp ZP_DWORD:25 4.0 +(dword) mul16s::m#5 m zp ZP_DWORD:25 2.5 +(signed dword) mul16s::return +(signed dword) mul16s::return#0 return zp ZP_DWORD:25 34.33333333333333 +(signed dword) mul16s::return#2 return zp ZP_DWORD:25 202.0 +(void()) mul16s_compare() +(label) mul16s_compare::@1 +(label) mul16s_compare::@10 +(label) mul16s_compare::@11 +(label) mul16s_compare::@12 +(label) mul16s_compare::@13 +(label) mul16s_compare::@14 +(label) mul16s_compare::@15 +(label) mul16s_compare::@2 +(label) mul16s_compare::@3 +(label) mul16s_compare::@4 +(label) mul16s_compare::@5 +(label) mul16s_compare::@6 +(label) mul16s_compare::@7 +(label) mul16s_compare::@8 +(label) mul16s_compare::@9 +(label) mul16s_compare::@return +(signed word) mul16s_compare::a +(signed word) mul16s_compare::a#1 a zp ZP_WORD:3 17.862068965517242 +(signed word) mul16s_compare::a#2 a zp ZP_WORD:3 213.0 +(signed word) mul16s_compare::a#6 a zp ZP_WORD:3 11.0 +(signed word) mul16s_compare::b +(signed word) mul16s_compare::b#1 b zp ZP_WORD:5 17.862068965517242 +(signed word) mul16s_compare::b#2 b zp ZP_WORD:5 106.5 +(signed word) mul16s_compare::b#6 b zp ZP_WORD:5 11.0 +(byte) mul16s_compare::i +(byte) mul16s_compare::i#1 i zp ZP_BYTE:2 16.5 +(byte) mul16s_compare::i#12 i zp ZP_BYTE:2 0.7586206896551724 +(byte) mul16s_compare::j +(byte) mul16s_compare::j#1 reg byte y 151.5 +(byte) mul16s_compare::j#10 reg byte y 8.08 +(signed dword) mul16s_compare::mf +(signed dword) mul16s_compare::mf#0 mf zp ZP_DWORD:17 15.692307692307692 +(signed dword) mul16s_compare::mn +(signed dword) mul16s_compare::mn#0 mn zp ZP_DWORD:25 12.0 +(signed dword) mul16s_compare::ms +(signed dword) mul16s_compare::ms#0 ms zp ZP_DWORD:11 14.523809523809522 +(byte) mul16s_compare::ok +(byte) mul16s_compare::ok#3 reg byte x 202.0 +(byte) mul16s_compare::ok#4 reg byte x 33.666666666666664 +(const string) mul16s_compare::str1 str1 = (string) "signed word multiply results match!@" +(void()) mul16s_error((signed word) mul16s_error::a , (signed word) mul16s_error::b , (signed dword) mul16s_error::ms , (signed dword) mul16s_error::mn , (signed dword) mul16s_error::mf) +(label) mul16s_error::@1 +(label) mul16s_error::@10 +(label) mul16s_error::@2 +(label) mul16s_error::@3 +(label) mul16s_error::@4 +(label) mul16s_error::@5 +(label) mul16s_error::@6 +(label) mul16s_error::@7 +(label) mul16s_error::@8 +(label) mul16s_error::@9 +(label) mul16s_error::@return +(signed word) mul16s_error::a +(signed word) mul16s_error::a#0 a zp ZP_WORD:3 0.5714285714285714 +(signed word) mul16s_error::b +(signed word) mul16s_error::b#0 b zp ZP_WORD:5 0.4 +(signed dword) mul16s_error::mf +(signed dword) mul16s_error::mf#0 mf zp ZP_DWORD:17 0.21052631578947367 +(signed dword) mul16s_error::mn +(signed dword) mul16s_error::mn#0 mn zp ZP_DWORD:25 0.25 +(signed dword) mul16s_error::ms +(signed dword) mul16s_error::ms#0 ms zp ZP_DWORD:11 0.3076923076923077 +(const string) mul16s_error::str str = (string) "signed word multiply mismatch @" +(dword()) mul16u((word) mul16u::a , (word) mul16u::b) +(byte~) mul16u::$1 reg byte a 2002.0 +(label) mul16u::@1 +(label) mul16u::@2 +(label) mul16u::@3 +(label) mul16u::@4 +(label) mul16u::@return +(word) mul16u::a +(word) mul16u::a#0 a zp ZP_WORD:29 1001.0 +(word) mul16u::a#2 a zp ZP_WORD:29 101.0 +(word) mul16u::a#3 a zp ZP_WORD:29 667.6666666666667 +(word) mul16u::a#6 a zp ZP_WORD:29 105.0 +(word~) mul16u::a#8 a zp ZP_WORD:29 4.0 +(word) mul16u::b +(word) mul16u::b#1 b zp ZP_WORD:23 202.0 +(dword) mul16u::mb +(dword) mul16u::mb#0 mb zp ZP_DWORD:31 105.0 +(dword) mul16u::mb#1 mb zp ZP_DWORD:31 2002.0 +(dword) mul16u::mb#2 mb zp ZP_DWORD:31 429.2857142857143 +(dword~) mul16u::mb#6 mb zp ZP_DWORD:31 2.0 +(dword) mul16u::res +(dword) mul16u::res#1 res zp ZP_DWORD:25 2002.0 +(dword) mul16u::res#2 res zp ZP_DWORD:25 443.7142857142857 +(dword) mul16u::res#6 res zp ZP_DWORD:25 1001.0 +(dword) mul16u::return +(dword) mul16u::return#2 return zp ZP_DWORD:25 4.0 +(dword) mul16u::return#3 return zp ZP_DWORD:25 202.0 +(void()) mul16u_compare() +(label) mul16u_compare::@1 +(label) mul16u_compare::@10 +(label) mul16u_compare::@11 +(label) mul16u_compare::@12 +(label) mul16u_compare::@13 +(label) mul16u_compare::@14 +(label) mul16u_compare::@15 +(label) mul16u_compare::@2 +(label) mul16u_compare::@3 +(label) mul16u_compare::@4 +(label) mul16u_compare::@5 +(label) mul16u_compare::@6 +(label) mul16u_compare::@7 +(label) mul16u_compare::@8 +(label) mul16u_compare::@9 +(label) mul16u_compare::@return +(word) mul16u_compare::a +(word) mul16u_compare::a#1 a zp ZP_WORD:21 17.862068965517242 +(word) mul16u_compare::a#2 a zp ZP_WORD:21 213.0 +(word) mul16u_compare::a#6 a zp ZP_WORD:21 11.0 +(word) mul16u_compare::b +(word) mul16u_compare::b#1 b zp ZP_WORD:23 17.862068965517242 +(word) mul16u_compare::b#2 b zp ZP_WORD:23 106.5 +(word) mul16u_compare::b#6 b zp ZP_WORD:23 11.0 +(byte) mul16u_compare::i +(byte) mul16u_compare::i#1 i zp ZP_BYTE:39 16.5 +(byte) mul16u_compare::i#12 i zp ZP_BYTE:39 0.7586206896551724 +(byte) mul16u_compare::j +(byte) mul16u_compare::j#1 reg byte y 151.5 +(byte) mul16u_compare::j#10 reg byte y 8.08 +(dword) mul16u_compare::mf +(dword) mul16u_compare::mf#0 mf zp ZP_DWORD:17 15.692307692307692 +(dword) mul16u_compare::mn +(dword) mul16u_compare::mn#0 mn zp ZP_DWORD:25 12.0 +(dword) mul16u_compare::ms +(dword) mul16u_compare::ms#0 ms zp ZP_DWORD:11 14.523809523809522 +(byte) mul16u_compare::ok +(byte) mul16u_compare::ok#3 reg byte x 202.0 +(byte) mul16u_compare::ok#4 reg byte x 33.666666666666664 +(const string) mul16u_compare::str1 str1 = (string) "word multiply results match!@" +(void()) mul16u_error((word) mul16u_error::a , (word) mul16u_error::b , (dword) mul16u_error::ms , (dword) mul16u_error::mn , (dword) mul16u_error::mf) +(label) mul16u_error::@1 +(label) mul16u_error::@10 +(label) mul16u_error::@2 +(label) mul16u_error::@3 +(label) mul16u_error::@4 +(label) mul16u_error::@5 +(label) mul16u_error::@6 +(label) mul16u_error::@7 +(label) mul16u_error::@8 +(label) mul16u_error::@9 +(label) mul16u_error::@return +(word) mul16u_error::a +(word) mul16u_error::a#0 a zp ZP_WORD:3 0.5714285714285714 +(word) mul16u_error::b +(word) mul16u_error::b#0 b zp ZP_WORD:23 0.4 +(dword) mul16u_error::mf +(dword) mul16u_error::mf#0 mf zp ZP_DWORD:17 0.21052631578947367 +(dword) mul16u_error::mn +(dword) mul16u_error::mn#0 mn zp ZP_DWORD:25 0.25 +(dword) mul16u_error::ms +(dword) mul16u_error::ms#0 ms zp ZP_DWORD:11 0.3076923076923077 +(const string) mul16u_error::str str = (string) "multiply mismatch @" +(signed dword()) mulf16s((signed word) mulf16s::a , (signed word) mulf16s::b) +(word~) mulf16s::$13 $13 zp ZP_WORD:58 4.0 +(word~) mulf16s::$16 $16 zp ZP_WORD:56 4.0 +(word~) mulf16s::$17 $17 zp ZP_WORD:58 4.0 +(word~) mulf16s::$9 $9 zp ZP_WORD:56 4.0 +(label) mulf16s::@1 +(label) mulf16s::@2 +(label) mulf16s::@3 +(label) mulf16s::@4 +(label) mulf16s::@5 +(label) mulf16s::@return +(signed word) mulf16s::a +(signed word) mulf16s::a#0 a zp ZP_WORD:3 7.357142857142858 +(signed word) mulf16s::b +(signed word) mulf16s::b#0 b zp ZP_WORD:5 9.363636363636363 +(dword) mulf16s::m +(dword) mulf16s::m#0 m zp ZP_DWORD:17 2.0 +(dword) mulf16s::m#1 m zp ZP_DWORD:17 4.0 +(dword) mulf16s::m#2 m zp ZP_DWORD:17 4.0 +(dword) mulf16s::m#4 m zp ZP_DWORD:17 4.0 +(dword) mulf16s::m#5 m zp ZP_DWORD:17 2.5 +(signed dword) mulf16s::return +(signed dword) mulf16s::return#0 return zp ZP_DWORD:17 34.33333333333333 +(signed dword) mulf16s::return#2 return zp ZP_DWORD:17 202.0 +(dword()) mulf16u((word) mulf16u::a , (word) mulf16u::b) +(label) mulf16u::@return +(word) mulf16u::a +(word) mulf16u::a#1 a zp ZP_WORD:21 101.0 +(word) mulf16u::a#2 a zp ZP_WORD:21 105.0 +(word~) mulf16u::a#4 a zp ZP_WORD:21 2.0 +(word) mulf16u::b +(word) mulf16u::b#1 b zp ZP_WORD:23 202.0 +(word) mulf16u::b#2 b zp ZP_WORD:23 52.5 +(word~) mulf16u::b#4 b zp ZP_WORD:23 4.0 +(word*) mulf16u::memA +(const word*) mulf16u::memA#0 memA = (word*) 248 +(word*) mulf16u::memB +(const word*) mulf16u::memB#0 memB = (word*) 250 +(dword*) mulf16u::memR +(const dword*) mulf16u::memR#0 memR = (dword*) 252 +(dword) mulf16u::return +(dword) mulf16u::return#0 return zp ZP_DWORD:17 26.25 +(dword) mulf16u::return#2 return zp ZP_DWORD:17 4.0 +(dword) mulf16u::return#3 return zp ZP_DWORD:17 202.0 +(void()) mulf_init() +(byte~) mulf_init::$10 reg byte a 22.0 +(byte~) mulf_init::$11 reg byte a 22.0 +(byte~) mulf_init::$7 reg byte a 22.0 +(label) mulf_init::@1 +(label) mulf_init::@2 +(label) mulf_init::@3 +(label) mulf_init::@4 +(label) mulf_init::@5 +(label) mulf_init::@6 +(label) mulf_init::@7 +(label) mulf_init::@return +(byte) mulf_init::c +(byte) mulf_init::c#1 reg byte x 2.357142857142857 +(byte) mulf_init::c#2 reg byte x 22.0 +(byte) mulf_init::dir +(byte) mulf_init::dir#2 dir zp ZP_BYTE:53 4.714285714285714 +(byte) mulf_init::dir#3 dir zp ZP_BYTE:53 7.333333333333333 +(word) mulf_init::sqr +(word) mulf_init::sqr#1 sqr zp ZP_WORD:47 7.333333333333333 +(word) mulf_init::sqr#2 sqr zp ZP_WORD:47 22.0 +(word) mulf_init::sqr#3 sqr zp ZP_WORD:47 9.166666666666666 +(word) mulf_init::sqr#4 sqr zp ZP_WORD:47 6.6000000000000005 +(byte*) mulf_init::sqr1_hi +(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:44 5.5 +(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:44 3.0 +(byte*) mulf_init::sqr1_lo +(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:42 16.5 +(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:42 2.5384615384615383 +(byte*) mulf_init::sqr2_hi +(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:51 3.142857142857143 +(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:51 11.0 +(byte*) mulf_init::sqr2_lo +(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:49 16.5 +(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:49 4.125 +(byte) mulf_init::x_2 +(byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:46 11.0 +(byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:46 4.888888888888889 +(byte) mulf_init::x_2#3 x_2 zp ZP_BYTE:46 8.25 +(byte) mulf_init::x_255 +(byte) mulf_init::x_255#1 reg byte x 5.5 +(byte) mulf_init::x_255#2 reg byte x 11.0 +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } +(signed dword()) muls16s((signed word) muls16s::a , (signed word) muls16s::b) +(label) muls16s::@1 +(label) muls16s::@2 +(label) muls16s::@3 +(label) muls16s::@4 +(label) muls16s::@return +(signed word) muls16s::a +(signed word) muls16s::a#0 a zp ZP_WORD:3 175.58333333333334 +(signed word) muls16s::b +(signed word) muls16s::b#0 b zp ZP_WORD:5 191.1818181818182 +(signed word) muls16s::i +(signed word) muls16s::i#1 i zp ZP_WORD:37 1501.5 +(signed word) muls16s::i#2 i zp ZP_WORD:37 1001.0 +(signed word) muls16s::j +(signed word) muls16s::j#1 j zp ZP_WORD:35 1501.5 +(signed word) muls16s::j#2 j zp ZP_WORD:35 1001.0 +(signed dword) muls16s::m +(signed dword) muls16s::m#1 m zp ZP_DWORD:11 1001.0 +(signed dword) muls16s::m#2 m zp ZP_DWORD:11 1001.0 +(signed dword) muls16s::m#3 m zp ZP_DWORD:11 2002.0 +(signed dword) muls16s::m#5 m zp ZP_DWORD:11 2002.0 +(signed dword) muls16s::return +(signed dword) muls16s::return#0 return zp ZP_DWORD:11 701.0 +(signed dword) muls16s::return#2 return zp ZP_DWORD:11 202.0 +(dword()) muls16u((word) muls16u::a , (word) muls16u::b) +(label) muls16u::@1 +(label) muls16u::@2 +(label) muls16u::@return +(word) muls16u::a +(word) muls16u::a#0 a zp ZP_WORD:21 157.71428571428572 +(word) muls16u::b +(word) muls16u::b#0 b zp ZP_WORD:23 183.66666666666669 +(word) muls16u::i +(word) muls16u::i#1 i zp ZP_WORD:40 1501.5 +(word) muls16u::i#2 i zp ZP_WORD:40 1001.0 +(dword) muls16u::m +(dword) muls16u::m#1 m zp ZP_DWORD:11 1001.0 +(dword) muls16u::m#3 m zp ZP_DWORD:11 2002.0 +(dword) muls16u::return +(dword) muls16u::return#0 return zp ZP_DWORD:11 367.33333333333337 +(dword) muls16u::return#2 return zp ZP_DWORD:11 202.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 reg byte x 4.0 +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#2 reg byte x 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:15 101.0 +(byte*) print_char_cursor#128 print_char_cursor zp ZP_WORD:15 3.2454545454545443 +(byte*) print_char_cursor#129 print_char_cursor zp ZP_WORD:15 5.75 +(byte*) print_char_cursor#130 print_char_cursor zp ZP_WORD:15 3.0 +(byte*) print_char_cursor#132 print_char_cursor zp ZP_WORD:15 6.0 +(byte*) print_char_cursor#133 print_char_cursor zp ZP_WORD:15 5.0 +(byte*) print_char_cursor#134 print_char_cursor zp ZP_WORD:15 3.0 +(byte*) print_char_cursor#136 print_char_cursor zp ZP_WORD:15 2.0 +(byte*) print_char_cursor#139 print_char_cursor zp ZP_WORD:15 22.0 +(byte*) print_char_cursor#143 print_char_cursor zp ZP_WORD:15 24.0 +(byte*) print_char_cursor#148 print_char_cursor zp ZP_WORD:15 48.0 +(byte*~) print_char_cursor#177 print_char_cursor zp ZP_WORD:15 4.0 +(byte*~) print_char_cursor#184 print_char_cursor zp ZP_WORD:15 4.0 +(byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:15 0.7441860465116277 +(byte*~) print_char_cursor#218 print_char_cursor zp ZP_WORD:15 4.0 +(byte*) print_char_cursor#84 print_char_cursor zp ZP_WORD:15 6.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:54 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:54 16.5 +(void()) print_dword((dword) print_dword::dw) +(label) print_dword::@1 +(label) print_dword::@return +(dword) print_dword::dw +(dword) print_dword::dw#0 dw zp ZP_DWORD:11 4.0 +(dword) print_dword::dw#1 dw zp ZP_DWORD:11 4.0 +(dword) print_dword::dw#2 dw zp ZP_DWORD:11 4.0 +(dword) print_dword::dw#3 dw zp ZP_DWORD:11 4.0 +(dword) print_dword::dw#4 dw zp ZP_DWORD:11 3.9999999999999996 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:7 0.6025641025641025 +(byte*) print_line_cursor#22 print_line_cursor zp ZP_WORD:7 24.0 +(byte*) print_line_cursor#43 print_line_cursor zp ZP_WORD:7 10.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_sdword((signed dword) print_sdword::dw) +(label) print_sdword::@1 +(label) print_sdword::@2 +(label) print_sdword::@3 +(label) print_sdword::@return +(signed dword) print_sdword::dw +(signed dword) print_sdword::dw#0 dw zp ZP_DWORD:11 4.0 +(signed dword) print_sdword::dw#1 dw zp ZP_DWORD:11 4.0 +(signed dword) print_sdword::dw#2 dw zp ZP_DWORD:11 4.0 +(signed dword) print_sdword::dw#3 dw zp ZP_DWORD:11 4.0 +(signed dword) print_sdword::dw#4 dw zp ZP_DWORD:11 3.0 +(signed dword) print_sdword::dw#5 dw zp ZP_DWORD:11 4.0 +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:9 202.0 +(byte*) print_str::str#15 str zp ZP_WORD:9 101.5 +(byte*) print_str::str#17 str zp ZP_WORD:9 2.0 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:3 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:3 4.0 +(signed word) print_sword::w#2 w zp ZP_WORD:3 4.0 +(signed word) print_sword::w#3 w zp ZP_WORD:3 2.5 +(signed word) print_sword::w#4 w zp ZP_WORD:3 4.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#1 w zp ZP_WORD:3 4.0 +(word~) print_word::w#11 w zp ZP_WORD:3 4.0 +(word) print_word::w#2 w zp ZP_WORD:3 4.0 +(word) print_word::w#3 w zp ZP_WORD:3 4.0 +(word) print_word::w#4 w zp ZP_WORD:3 4.0 +(word) print_word::w#5 w zp ZP_WORD:3 4.666666666666666 +(const string) str str = (string) ".@" +(const string) str1 str1 = (string) "*@" +(const string) str2 str2 = (string) " slow:@" +(const string) str3 str3 = (string) " / normal:@" +(const string) str4 str4 = (string) " / fast:@" + +zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] +zp ZP_WORD:3 [ mul16s_compare::a#2 mul16s_compare::a#6 mul16s_compare::a#1 muls16s::a#0 mul16s::a#0 mulf16s::a#0 mul16s_error::a#0 print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 mul16u_error::a#0 ] +zp ZP_WORD:5 [ mul16s_compare::b#2 mul16s_compare::b#6 mul16s_compare::b#1 muls16s::b#0 mul16s::b#0 mulf16s::b#0 mul16s_error::b#0 ] +reg byte y [ mul16s_compare::j#10 mul16s_compare::j#1 ] +reg byte x [ mul16s_compare::ok#3 mul16s_compare::ok#4 ] +zp ZP_WORD:7 [ print_line_cursor#22 print_line_cursor#43 print_line_cursor#1 ] +zp ZP_WORD:9 [ print_str::str#15 print_str::str#17 print_str::str#0 ] +zp ZP_DWORD:11 [ print_sdword::dw#5 print_sdword::dw#4 print_sdword::dw#1 print_sdword::dw#2 print_sdword::dw#3 print_sdword::dw#0 print_dword::dw#4 print_dword::dw#1 print_dword::dw#2 print_dword::dw#3 print_dword::dw#0 mul16s_error::ms#0 mul16s_compare::ms#0 mul16u_compare::ms#0 mul16u_error::ms#0 muls16s::m#5 muls16s::return#0 muls16s::m#2 muls16s::m#3 muls16s::m#1 muls16s::return#2 muls16u::return#0 muls16u::m#3 muls16u::m#1 muls16u::return#2 ] +reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] +zp ZP_WORD:15 [ print_char_cursor#84 print_char_cursor#136 print_char_cursor#132 print_char_cursor#133 print_char_cursor#134 print_char_cursor#148 print_char_cursor#129 print_char_cursor#143 print_char_cursor#218 print_char_cursor#128 print_char_cursor#20 print_char_cursor#177 print_char_cursor#139 print_char_cursor#184 print_char_cursor#1 print_char_cursor#130 ] +zp ZP_DWORD:17 [ mulf16s::m#4 mulf16s::m#5 mulf16s::m#1 mulf16s::m#0 mulf16s::m#2 mulf16u::return#2 mulf16s::return#0 mulf16s::return#2 mul16s_compare::mf#0 mulf16u::return#0 mulf16u::return#3 mul16s_error::mf#0 mul16u_compare::mf#0 mul16u_error::mf#0 ] +zp ZP_WORD:21 [ mulf16u::a#2 mulf16u::a#1 mulf16u::a#4 mul16u_compare::a#2 mul16u_compare::a#6 mul16u_compare::a#1 muls16u::a#0 ] +zp ZP_WORD:23 [ mulf16u::b#2 mulf16u::b#1 mulf16u::b#4 mul16u_compare::b#2 mul16u_compare::b#6 mul16u_compare::b#1 mul16u::b#1 muls16u::b#0 mul16u_error::b#0 ] +zp ZP_DWORD:25 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#3 mul16s::return#2 mul16s_compare::mn#0 mul16s_error::mn#0 mul16u_compare::mn#0 mul16u_error::mn#0 ] +zp ZP_WORD:29 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] +zp ZP_DWORD:31 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#6 mul16u::mb#1 ] +zp ZP_WORD:35 [ muls16s::j#2 muls16s::j#1 ] +zp ZP_WORD:37 [ muls16s::i#2 muls16s::i#1 ] +zp ZP_BYTE:39 [ mul16u_compare::i#12 mul16u_compare::i#1 ] +reg byte y [ mul16u_compare::j#10 mul16u_compare::j#1 ] +reg byte x [ mul16u_compare::ok#3 mul16u_compare::ok#4 ] +zp ZP_WORD:40 [ muls16u::i#2 muls16u::i#1 ] +reg byte x [ mulf_init::c#2 mulf_init::c#1 ] +zp ZP_WORD:42 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] +zp ZP_WORD:44 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +zp ZP_BYTE:46 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +zp ZP_WORD:47 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] +reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] +zp ZP_WORD:49 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] +zp ZP_WORD:51 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] +zp ZP_BYTE:53 [ mulf_init::dir#2 mulf_init::dir#3 ] +zp ZP_WORD:54 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +zp ZP_WORD:56 [ mulf16s::$9 mulf16s::$16 ] +zp ZP_WORD:58 [ mulf16s::$13 mulf16s::$17 ] +zp ZP_WORD:60 [ mul16s::$9 mul16s::$16 ] +zp ZP_WORD:62 [ mul16s::$13 mul16s::$17 ] +reg byte a [ mul16u::$1 ] +reg byte a [ mulf_init::$7 ] +reg byte a [ mulf_init::$10 ] +reg byte a [ mulf_init::$11 ] diff --git a/src/test/ref/test-multiply-8bit.sym b/src/test/ref/test-multiply-8bit.sym index 1daabbadc..19f5414bf 100644 --- a/src/test/ref/test-multiply-8bit.sym +++ b/src/test/ref/test-multiply-8bit.sym @@ -1 +1,511 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) BGCOL +(const byte*) BGCOL#0 BGCOL = (byte*) 53281 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(signed word()) mul8s((signed byte) mul8s::a , (signed byte) mul8s::b) +(byte~) mul8s::$13 reg byte a 4.0 +(byte~) mul8s::$16 reg byte a 4.0 +(byte~) mul8s::$17 reg byte a 4.0 +(byte~) mul8s::$9 reg byte a 4.0 +(label) mul8s::@1 +(label) mul8s::@2 +(label) mul8s::@3 +(label) mul8s::@4 +(label) mul8s::@5 +(label) mul8s::@return +(signed byte) mul8s::a +(signed byte) mul8s::a#0 a zp ZP_BYTE:2 7.357142857142858 +(signed byte) mul8s::b +(signed byte) mul8s::b#0 reg byte y 9.363636363636363 +(word) mul8s::m +(word) mul8s::m#0 m zp ZP_WORD:12 2.0 +(word) mul8s::m#1 m zp ZP_WORD:12 4.0 +(word) mul8s::m#2 m zp ZP_WORD:12 4.0 +(word) mul8s::m#4 m zp ZP_WORD:12 0.14285714285714285 +(word) mul8s::m#5 m zp ZP_WORD:12 2.5 +(signed word) mul8s::return +(void()) mul8s_compare() +(label) mul8s_compare::@1 +(label) mul8s_compare::@10 +(label) mul8s_compare::@11 +(label) mul8s_compare::@12 +(label) mul8s_compare::@13 +(label) mul8s_compare::@14 +(label) mul8s_compare::@2 +(label) mul8s_compare::@3 +(label) mul8s_compare::@4 +(label) mul8s_compare::@5 +(label) mul8s_compare::@6 +(label) mul8s_compare::@7 +(label) mul8s_compare::@8 +(label) mul8s_compare::@9 +(label) mul8s_compare::@return +(signed byte) mul8s_compare::a +(signed byte) mul8s_compare::a#1 a zp ZP_BYTE:2 16.5 +(signed byte) mul8s_compare::a#7 a zp ZP_BYTE:2 14.217391304347824 +(signed byte) mul8s_compare::b +(signed byte) mul8s_compare::b#1 b zp ZP_BYTE:3 151.5 +(signed byte) mul8s_compare::b#10 b zp ZP_BYTE:3 24.142857142857142 +(signed word) mul8s_compare::mf +(signed word) mul8s_compare::mn +(signed word) mul8s_compare::ms +(signed word) mul8s_compare::ms#0 ms zp ZP_WORD:8 17.941176470588236 +(byte) mul8s_compare::ok +(byte) mul8s_compare::ok#3 reg byte x 202.0 +(byte) mul8s_compare::ok#4 reg byte x 33.666666666666664 +(const string) mul8s_compare::str str = (string) "signed multiply results match!@" +(void()) mul8s_error((signed byte) mul8s_error::a , (signed byte) mul8s_error::b , (signed word) mul8s_error::ms , (signed word) mul8s_error::mn , (signed word) mul8s_error::mf) +(label) mul8s_error::@1 +(label) mul8s_error::@10 +(label) mul8s_error::@2 +(label) mul8s_error::@3 +(label) mul8s_error::@4 +(label) mul8s_error::@5 +(label) mul8s_error::@6 +(label) mul8s_error::@7 +(label) mul8s_error::@8 +(label) mul8s_error::@9 +(label) mul8s_error::@return +(signed byte) mul8s_error::a +(signed byte) mul8s_error::a#0 reg byte x 0.8 +(signed byte) mul8s_error::b +(signed byte) mul8s_error::b#0 b zp ZP_BYTE:3 0.5 +(signed word) mul8s_error::mf +(signed word) mul8s_error::mn +(signed word) mul8s_error::ms +(signed word) mul8s_error::ms#0 ms zp ZP_WORD:8 0.36363636363636365 +(const string) mul8s_error::str str = (string) "signed multiply mismatch @" +(word()) mul8u((byte) mul8u::a , (byte) mul8u::b) +(byte~) mul8u::$1 reg byte a 2002.0 +(label) mul8u::@1 +(label) mul8u::@2 +(label) mul8u::@3 +(label) mul8u::@4 +(label) mul8u::@return +(byte) mul8u::a +(byte) mul8u::a#0 reg byte x 1001.0 +(byte) mul8u::a#2 reg byte x 101.0 +(byte) mul8u::a#3 reg byte x 667.6666666666667 +(byte) mul8u::a#6 reg byte x 105.0 +(byte~) mul8u::a#8 reg byte x 4.0 +(byte) mul8u::b +(byte) mul8u::b#1 reg byte a 202.0 +(word) mul8u::mb +(word) mul8u::mb#0 mb zp ZP_WORD:14 105.0 +(word) mul8u::mb#1 mb zp ZP_WORD:14 2002.0 +(word) mul8u::mb#2 mb zp ZP_WORD:14 429.2857142857143 +(word~) mul8u::mb#6 mb zp ZP_WORD:14 2.0 +(word) mul8u::res +(word) mul8u::res#1 res zp ZP_WORD:12 2002.0 +(word) mul8u::res#2 res zp ZP_WORD:12 443.7142857142857 +(word) mul8u::res#6 res zp ZP_WORD:12 1001.0 +(word) mul8u::return +(word) mul8u::return#2 return zp ZP_WORD:12 4.0 +(word) mul8u::return#3 return zp ZP_WORD:12 202.0 +(void()) mul8u_compare() +(label) mul8u_compare::@1 +(label) mul8u_compare::@10 +(label) mul8u_compare::@11 +(label) mul8u_compare::@12 +(label) mul8u_compare::@13 +(label) mul8u_compare::@14 +(label) mul8u_compare::@2 +(label) mul8u_compare::@3 +(label) mul8u_compare::@4 +(label) mul8u_compare::@5 +(label) mul8u_compare::@6 +(label) mul8u_compare::@7 +(label) mul8u_compare::@8 +(label) mul8u_compare::@9 +(label) mul8u_compare::@return +(byte) mul8u_compare::a +(byte) mul8u_compare::a#1 a zp ZP_BYTE:18 16.5 +(byte) mul8u_compare::a#7 a zp ZP_BYTE:18 12.11111111111111 +(byte) mul8u_compare::b +(byte) mul8u_compare::b#1 b zp ZP_BYTE:19 151.5 +(byte) mul8u_compare::b#10 b zp ZP_BYTE:19 20.279999999999998 +(word) mul8u_compare::mf +(word) mul8u_compare::mf#0 mf zp ZP_WORD:16 11.333333333333332 +(word) mul8u_compare::mn +(word) mul8u_compare::mn#0 mn zp ZP_WORD:12 17.0 +(word) mul8u_compare::ms +(word) mul8u_compare::ms#0 ms zp ZP_WORD:8 14.523809523809522 +(byte) mul8u_compare::ok +(byte) mul8u_compare::ok#3 reg byte x 202.0 +(byte) mul8u_compare::ok#4 reg byte x 33.666666666666664 +(const string) mul8u_compare::str str = (string) "multiply results match!@" +(void()) mul8u_error((byte) mul8u_error::a , (byte) mul8u_error::b , (word) mul8u_error::ms , (word) mul8u_error::mn , (word) mul8u_error::mf) +(label) mul8u_error::@1 +(label) mul8u_error::@10 +(label) mul8u_error::@2 +(label) mul8u_error::@3 +(label) mul8u_error::@4 +(label) mul8u_error::@5 +(label) mul8u_error::@6 +(label) mul8u_error::@7 +(label) mul8u_error::@8 +(label) mul8u_error::@9 +(label) mul8u_error::@return +(byte) mul8u_error::a +(byte) mul8u_error::a#0 reg byte x 0.5714285714285714 +(byte) mul8u_error::b +(byte) mul8u_error::b#0 b zp ZP_BYTE:19 0.4 +(word) mul8u_error::mf +(word) mul8u_error::mf#0 mf zp ZP_WORD:16 0.21052631578947367 +(word) mul8u_error::mn +(word) mul8u_error::mn#0 mn zp ZP_WORD:12 0.25 +(word) mul8u_error::ms +(word) mul8u_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077 +(const string) mul8u_error::str str = (string) "multiply mismatch @" +(byte[$200]) mula_sqr1_hi +(const byte[$200]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mula_sqr1_lo +(const byte[$200]) mula_sqr1_lo#0 mula_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mula_sqr2_hi +(const byte[$200]) mula_sqr2_hi#0 mula_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mula_sqr2_lo +(const byte[$200]) mula_sqr2_lo#0 mula_sqr2_lo = { fill( $200, 0) } +(signed word()) mulf8s((signed byte) mulf8s::a , (signed byte) mulf8s::b) +(label) mulf8s::@1 +(label) mulf8s::@return +(signed byte) mulf8s::a +(signed byte) mulf8s::a#0 reg byte a 33.666666666666664 +(signed byte) mulf8s::b +(signed byte) mulf8s::b#0 reg byte x 25.75 +(label) mulf8s::mulf8s_prepare1 +(byte~) mulf8s::mulf8s_prepare1_$0 +(signed byte) mulf8s::mulf8s_prepare1_a +(signed word) mulf8s::return +(signed word()) mulf8s_prepared((signed byte) mulf8s_prepared::b) +(byte~) mulf8s_prepared::$12 reg byte a 4.0 +(byte~) mulf8s_prepared::$15 reg byte a 4.0 +(byte~) mulf8s_prepared::$16 reg byte a 4.0 +(byte~) mulf8s_prepared::$8 reg byte a 4.0 +(label) mulf8s_prepared::@1 +(label) mulf8s_prepared::@2 +(label) mulf8s_prepared::@3 +(label) mulf8s_prepared::@4 +(label) mulf8s_prepared::@5 +(label) mulf8s_prepared::@return +(signed byte) mulf8s_prepared::b +(signed byte) mulf8s_prepared::b#0 b zp ZP_BYTE:36 0.4 +(word) mulf8s_prepared::m +(word) mulf8s_prepared::m#0 m zp ZP_WORD:16 2.0 +(word) mulf8s_prepared::m#1 m zp ZP_WORD:16 4.0 +(word) mulf8s_prepared::m#2 m zp ZP_WORD:16 4.0 +(word) mulf8s_prepared::m#4 m zp ZP_WORD:16 0.10810810810810811 +(word) mulf8s_prepared::m#5 m zp ZP_WORD:16 2.5 +(signed byte*) mulf8s_prepared::memA +(const signed byte*) mulf8s_prepared::memA#0 memA = (signed byte*) 253 +(signed word) mulf8s_prepared::return +(word()) mulf8u((byte) mulf8u::a , (byte) mulf8u::b) +(label) mulf8u::@1 +(label) mulf8u::@2 +(label) mulf8u::@return +(byte) mulf8u::a +(byte) mulf8u::a#0 reg byte a 51.5 +(byte) mulf8u::b +(byte) mulf8u::b#0 reg byte x 34.33333333333333 +(word) mulf8u::return +(word) mulf8u::return#0 return zp ZP_WORD:16 34.33333333333333 +(word) mulf8u::return#2 return zp ZP_WORD:16 202.0 +(void()) mulf8u_prepare((byte) mulf8u_prepare::a) +(label) mulf8u_prepare::@return +(byte) mulf8u_prepare::a +(byte) mulf8u_prepare::a#0 reg byte a 4.0 +(byte) mulf8u_prepare::a#2 reg byte a 6.0 +(byte~) mulf8u_prepare::a#3 reg byte a 4.0 +(byte*) mulf8u_prepare::memA +(const byte*) mulf8u_prepare::memA#0 memA = (byte*) 253 +(word()) mulf8u_prepared((byte) mulf8u_prepared::b) +(label) mulf8u_prepared::@return +(byte) mulf8u_prepared::b +(byte) mulf8u_prepared::b#0 reg byte x 4.0 +(byte) mulf8u_prepared::b#2 reg byte x 6.0 +(byte~) mulf8u_prepared::b#3 reg byte x 4.0 +(byte*) mulf8u_prepared::memB +(const byte*) mulf8u_prepared::memB#0 memB = (byte*) 255 +(byte*) mulf8u_prepared::resL +(const byte*) mulf8u_prepared::resL#0 resL = (byte*) 254 +(word) mulf8u_prepared::return +(word) mulf8u_prepared::return#0 return zp ZP_WORD:16 1.5 +(word) mulf8u_prepared::return#2 return zp ZP_WORD:16 4.0 +(word) mulf8u_prepared::return#3 return zp ZP_WORD:16 4.0 +(void()) mulf_init() +(byte~) mulf_init::$10 reg byte a 22.0 +(byte~) mulf_init::$11 reg byte a 22.0 +(byte~) mulf_init::$7 reg byte a 22.0 +(label) mulf_init::@1 +(label) mulf_init::@2 +(label) mulf_init::@3 +(label) mulf_init::@4 +(label) mulf_init::@5 +(label) mulf_init::@6 +(label) mulf_init::@7 +(label) mulf_init::@return +(byte) mulf_init::c +(byte) mulf_init::c#1 reg byte x 2.357142857142857 +(byte) mulf_init::c#2 reg byte x 22.0 +(byte) mulf_init::dir +(byte) mulf_init::dir#2 dir zp ZP_BYTE:33 4.714285714285714 +(byte) mulf_init::dir#3 dir zp ZP_BYTE:33 7.333333333333333 +(word) mulf_init::sqr +(word) mulf_init::sqr#1 sqr zp ZP_WORD:27 7.333333333333333 +(word) mulf_init::sqr#2 sqr zp ZP_WORD:27 22.0 +(word) mulf_init::sqr#3 sqr zp ZP_WORD:27 9.166666666666666 +(word) mulf_init::sqr#4 sqr zp ZP_WORD:27 6.6000000000000005 +(byte*) mulf_init::sqr1_hi +(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:24 5.5 +(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:24 3.0 +(byte*) mulf_init::sqr1_lo +(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:22 16.5 +(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:22 2.5384615384615383 +(byte*) mulf_init::sqr2_hi +(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:31 3.142857142857143 +(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:31 11.0 +(byte*) mulf_init::sqr2_lo +(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:29 16.5 +(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:29 4.125 +(byte) mulf_init::x_2 +(byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:26 11.0 +(byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:26 4.888888888888889 +(byte) mulf_init::x_2#3 x_2 zp ZP_BYTE:26 8.25 +(byte) mulf_init::x_255 +(byte) mulf_init::x_255#1 reg byte x 5.5 +(byte) mulf_init::x_255#2 reg byte x 11.0 +(void()) mulf_init_asm() +(label) mulf_init_asm::@return +(byte*) mulf_init_asm::mem +(const byte*) mulf_init_asm::mem#0 mem = (byte*) 255 +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } +(void()) mulf_tables_cmp() +(label) mulf_tables_cmp::@1 +(label) mulf_tables_cmp::@2 +(label) mulf_tables_cmp::@3 +(label) mulf_tables_cmp::@4 +(label) mulf_tables_cmp::@5 +(label) mulf_tables_cmp::@6 +(label) mulf_tables_cmp::@7 +(label) mulf_tables_cmp::@8 +(label) mulf_tables_cmp::@9 +(label) mulf_tables_cmp::@return +(byte*) mulf_tables_cmp::asm_sqr +(byte*) mulf_tables_cmp::asm_sqr#1 asm_sqr zp ZP_WORD:8 7.333333333333333 +(byte*) mulf_tables_cmp::asm_sqr#2 asm_sqr zp ZP_WORD:8 8.25 +(byte*) mulf_tables_cmp::kc_sqr +(byte*) mulf_tables_cmp::kc_sqr#1 kc_sqr zp ZP_WORD:20 16.5 +(byte*) mulf_tables_cmp::kc_sqr#2 kc_sqr zp ZP_WORD:20 3.666666666666667 +(const string) mulf_tables_cmp::str str = (string) "multiply table mismatch at @" +(const string) mulf_tables_cmp::str1 str1 = (string) " / @" +(const string) mulf_tables_cmp::str2 str2 = (string) "multiply tables match!@" +(signed word()) muls8s((signed byte) muls8s::a , (signed byte) muls8s::b) +(label) muls8s::@1 +(label) muls8s::@2 +(label) muls8s::@3 +(label) muls8s::@4 +(label) muls8s::@return +(signed byte) muls8s::a +(signed byte) muls8s::a#0 a zp ZP_BYTE:2 175.58333333333334 +(signed byte) muls8s::b +(signed byte) muls8s::b#0 reg byte x 191.1818181818182 +(signed byte) muls8s::i +(signed byte) muls8s::i#1 reg byte y 1501.5 +(signed byte) muls8s::i#2 reg byte y 1001.0 +(signed byte) muls8s::j +(signed byte) muls8s::j#1 reg byte y 1501.5 +(signed byte) muls8s::j#2 reg byte y 1001.0 +(signed word) muls8s::m +(signed word) muls8s::m#1 m zp ZP_WORD:8 1001.0 +(signed word) muls8s::m#2 m zp ZP_WORD:8 1001.0 +(signed word) muls8s::m#3 m zp ZP_WORD:8 2002.0 +(signed word) muls8s::m#5 m zp ZP_WORD:8 2002.0 +(signed word) muls8s::return +(signed word) muls8s::return#0 return zp ZP_WORD:8 701.0 +(signed word) muls8s::return#2 return zp ZP_WORD:8 202.0 +(word()) muls8u((byte) muls8u::a , (byte) muls8u::b) +(label) muls8u::@1 +(label) muls8u::@2 +(label) muls8u::@return +(byte) muls8u::a +(byte) muls8u::a#0 a zp ZP_BYTE:18 157.71428571428572 +(byte) muls8u::b +(byte) muls8u::b#0 reg byte x 183.66666666666669 +(byte) muls8u::i +(byte) muls8u::i#1 reg byte y 1501.5 +(byte) muls8u::i#2 reg byte y 1001.0 +(word) muls8u::m +(word) muls8u::m#1 m zp ZP_WORD:8 1001.0 +(word) muls8u::m#3 m zp ZP_WORD:8 2002.0 +(word) muls8u::return +(word) muls8u::return#0 return zp ZP_WORD:8 367.33333333333337 +(word) muls8u::return#2 return zp ZP_WORD:8 202.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte x 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#1 reg byte x 4.0 +(byte) print_byte::b#2 reg byte x 4.0 +(byte) print_byte::b#3 reg byte x 4.0 +(byte) print_byte::b#4 reg byte x 4.0 +(byte) print_byte::b#5 reg byte x 3.5 +(byte~) print_byte::b#9 reg byte x 4.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#3 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 4.0 +(byte) print_char::ch#5 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:10 11.0 +(byte*) print_char_cursor#132 print_char_cursor zp ZP_WORD:10 1.536585365853659 +(byte*) print_char_cursor#133 print_char_cursor zp ZP_WORD:10 5.25 +(byte*) print_char_cursor#134 print_char_cursor zp ZP_WORD:10 3.0 +(byte*) print_char_cursor#139 print_char_cursor zp ZP_WORD:10 7.0 +(byte*) print_char_cursor#140 print_char_cursor zp ZP_WORD:10 3.9999999999999996 +(byte*) print_char_cursor#152 print_char_cursor zp ZP_WORD:10 28.0 +(byte*) print_char_cursor#18 print_char_cursor zp ZP_WORD:10 0.7555555555555553 +(byte*~) print_char_cursor#187 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#188 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#225 print_char_cursor zp ZP_WORD:10 4.0 +(byte*) print_char_cursor#31 print_char_cursor zp ZP_WORD:10 0.1951219512195122 +(byte*) print_char_cursor#84 print_char_cursor zp ZP_WORD:10 7.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:34 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:34 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:4 0.6923076923076924 +(byte*) print_line_cursor#10 print_line_cursor zp ZP_WORD:4 0.09523809523809523 +(byte*) print_line_cursor#23 print_line_cursor zp ZP_WORD:4 24.0 +(byte*) print_line_cursor#45 print_line_cursor zp ZP_WORD:4 10.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 reg byte x 4.0 +(signed byte) print_sbyte::b#1 reg byte x 4.0 +(signed byte) print_sbyte::b#2 reg byte x 4.0 +(signed byte) print_sbyte::b#3 reg byte x 1.6666666666666665 +(signed byte) print_sbyte::b#5 reg byte x 4.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:6 22.0 +(byte*) print_str::str#16 str zp ZP_WORD:6 11.5 +(byte*) print_str::str#18 str zp ZP_WORD:6 2.0 +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:8 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:8 4.0 +(signed word~) print_sword::w#10 w zp ZP_WORD:8 4.0 +(signed word) print_sword::w#4 w zp ZP_WORD:8 3.0 +(signed word) print_sword::w#5 w zp ZP_WORD:8 4.0 +(signed word~) print_sword::w#9 w zp ZP_WORD:8 4.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word~) print_word::w#11 w zp ZP_WORD:8 4.0 +(word~) print_word::w#12 w zp ZP_WORD:8 4.0 +(word~) print_word::w#13 w zp ZP_WORD:8 4.0 +(word) print_word::w#3 w zp ZP_WORD:8 4.0 +(word) print_word::w#4 w zp ZP_WORD:8 4.0 +(word) print_word::w#5 w zp ZP_WORD:8 4.0 +(word) print_word::w#6 w zp ZP_WORD:8 5.333333333333333 +(const string) str1 str1 = (string) "*@" +(const string) str2 str2 = (string) " slow:@" +(const string) str3 str3 = (string) " / normal:@" +(const string) str4 str4 = (string) " / fast:@" + +zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 muls8s::a#0 mul8s::a#0 ] +zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 mul8s_error::b#0 ] +reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] +zp ZP_WORD:4 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ] +zp ZP_WORD:6 [ print_str::str#16 print_str::str#18 print_str::str#0 ] +zp ZP_WORD:8 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#9 print_sword::w#10 print_sword::w#0 print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 mul8s_error::ms#0 mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 mul8s_compare::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8s::m#5 muls8s::return#0 muls8s::m#2 muls8s::m#3 muls8s::m#1 muls8s::return#2 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 ] +reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] +reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ] +zp ZP_WORD:10 [ print_char_cursor#84 print_char_cursor#140 print_char_cursor#139 print_char_cursor#134 print_char_cursor#152 print_char_cursor#187 print_char_cursor#188 print_char_cursor#133 print_char_cursor#132 print_char_cursor#18 print_char_cursor#31 print_char_cursor#1 print_char_cursor#225 ] +reg byte x [ print_sbyte::b#5 print_sbyte::b#0 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 ] +zp ZP_WORD:12 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u_compare::mn#0 mul8u_error::mn#0 ] +reg byte a [ mul8u::b#1 ] +reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] +zp ZP_WORD:14 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#6 mul8u::mb#1 ] +zp ZP_WORD:16 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8u_prepared::return#3 mulf8u_prepared::return#0 mulf8u_prepared::return#2 mulf8u::return#2 mul8u_compare::mf#0 mulf8u::return#0 mul8u_error::mf#0 ] +reg byte x [ mulf8u_prepared::b#2 mulf8u_prepared::b#3 mulf8u_prepared::b#0 ] +reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#0 ] +reg byte y [ muls8s::j#2 muls8s::j#1 ] +reg byte y [ muls8s::i#2 muls8s::i#1 ] +zp ZP_BYTE:18 [ mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 ] +zp ZP_BYTE:19 [ mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 ] +reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] +reg byte y [ muls8u::i#2 muls8u::i#1 ] +zp ZP_WORD:20 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] +reg byte x [ mulf_init::c#2 mulf_init::c#1 ] +zp ZP_WORD:22 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] +zp ZP_WORD:24 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +zp ZP_BYTE:26 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +zp ZP_WORD:27 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] +reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] +zp ZP_WORD:29 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] +zp ZP_WORD:31 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] +zp ZP_BYTE:33 [ mulf_init::dir#2 mulf_init::dir#3 ] +zp ZP_WORD:34 [ print_cls::sc#2 print_cls::sc#1 ] +reg byte x [ muls8s::b#0 ] +reg byte a [ mulf8s::a#0 ] +reg byte x [ mulf8s::b#0 ] +reg byte y [ mul8s::b#0 ] +reg byte x [ mul8s_error::a#0 ] +reg byte a [ print_byte::$0 ] +reg byte x [ print_byte::$2 ] +reg byte a [ mul8s::$9 ] +reg byte a [ mul8s::$16 ] +reg byte a [ mul8s::$13 ] +reg byte a [ mul8s::$17 ] +reg byte a [ mul8u::$1 ] +zp ZP_BYTE:36 [ mulf8s_prepared::b#0 ] +reg byte a [ mulf8s_prepared::$8 ] +reg byte a [ mulf8s_prepared::$15 ] +reg byte a [ mulf8s_prepared::$12 ] +reg byte a [ mulf8s_prepared::$16 ] +reg byte x [ muls8u::b#0 ] +reg byte a [ mulf8u::a#0 ] +reg byte x [ mulf8u::b#0 ] +reg byte x [ mul8u_error::a#0 ] +reg byte a [ mulf_init::$7 ] +reg byte a [ mulf_init::$10 ] +reg byte a [ mulf_init::$11 ] diff --git a/src/test/ref/test-scroll-up.sym b/src/test/ref/test-scroll-up.sym index 1daabbadc..2b6e409bd 100644 --- a/src/test/ref/test-scroll-up.sym +++ b/src/test/ref/test-scroll-up.sym @@ -1 +1,74 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 +(void()) scrollup1() +(word~) scrollup1::$0 $0 zp ZP_WORD:17 67.33333333333333 +(word~) scrollup1::$2 $2 zp ZP_WORD:19 202.0 +(byte*~) scrollup1::$7 $7 zp ZP_WORD:19 101.0 +(byte*~) scrollup1::$8 $8 zp ZP_WORD:17 202.0 +(label) scrollup1::@1 +(label) scrollup1::@2 +(label) scrollup1::@3 +(label) scrollup1::@return +(byte) scrollup1::c +(byte) scrollup1::c#1 reg byte x 151.5 +(byte) scrollup1::c#2 reg byte x 67.33333333333333 +(word) scrollup1::line +(word) scrollup1::line#1 line zp ZP_WORD:11 16.5 +(word) scrollup1::line#4 line zp ZP_WORD:11 24.888888888888886 +(void()) scrollup2() +(label) scrollup2::@1 +(label) scrollup2::@2 +(label) scrollup2::@3 +(label) scrollup2::@return +(byte) scrollup2::c +(byte) scrollup2::c#1 reg byte x 151.5 +(byte) scrollup2::c#2 reg byte x 50.5 +(byte) scrollup2::l +(byte) scrollup2::l#1 l zp ZP_BYTE:6 16.5 +(byte) scrollup2::l#4 l zp ZP_BYTE:6 3.142857142857143 +(byte*) scrollup2::line1 +(byte*) scrollup2::line1#1 line1 zp ZP_WORD:9 35.5 +(byte*) scrollup2::line1#2 line1 zp ZP_WORD:9 157.0 +(byte*) scrollup2::line1#3 line1 zp ZP_WORD:9 22.0 +(byte*) scrollup2::line2 +(byte*) scrollup2::line2#1 line2 zp ZP_WORD:7 42.599999999999994 +(byte*) scrollup2::line2#2 line2 zp ZP_WORD:7 104.66666666666666 +(byte*) scrollup2::line2#3 line2 zp ZP_WORD:7 22.0 +(void()) scrollup3() +(byte*~) scrollup3::$5 $5 zp ZP_WORD:13 101.0 +(byte*~) scrollup3::$6 $6 zp ZP_WORD:15 202.0 +(label) scrollup3::@1 +(label) scrollup3::@2 +(label) scrollup3::@3 +(label) scrollup3::@return +(byte) scrollup3::c +(byte) scrollup3::c#1 reg byte x 151.5 +(byte) scrollup3::c#2 reg byte x 40.4 +(word) scrollup3::l2 +(word) scrollup3::l2#0 l2 zp ZP_WORD:2 3.666666666666667 +(word) scrollup3::l2#1 l2#1 zp ZP_WORD:4 67.33333333333333 +(word) scrollup3::l2#2 l2#2 zp ZP_WORD:4 103.75 +(word~) scrollup3::l2#4 l2#4 zp ZP_WORD:4 22.0 +(word) scrollup3::line +(word) scrollup3::line#1 line zp ZP_WORD:2 16.5 + +zp ZP_WORD:2 [ scrollup3::l2#0 scrollup3::line#1 ] +zp ZP_WORD:4 [ scrollup3::l2#2 scrollup3::l2#4 scrollup3::l2#1 ] +reg byte x [ scrollup3::c#2 scrollup3::c#1 ] +zp ZP_BYTE:6 [ scrollup2::l#4 scrollup2::l#1 ] +zp ZP_WORD:7 [ scrollup2::line2#2 scrollup2::line2#3 scrollup2::line2#1 ] +zp ZP_WORD:9 [ scrollup2::line1#2 scrollup2::line1#3 scrollup2::line1#1 ] +reg byte x [ scrollup2::c#2 scrollup2::c#1 ] +zp ZP_WORD:11 [ scrollup1::line#4 scrollup1::line#1 ] +reg byte x [ scrollup1::c#2 scrollup1::c#1 ] +zp ZP_WORD:13 [ scrollup3::$5 ] +zp ZP_WORD:15 [ scrollup3::$6 ] +zp ZP_WORD:17 [ scrollup1::$0 scrollup1::$8 ] +zp ZP_WORD:19 [ scrollup1::$2 scrollup1::$7 ] diff --git a/src/test/ref/test-signed-word-minus-byte.sym b/src/test/ref/test-signed-word-minus-byte.sym index 1daabbadc..4f9d38028 100644 --- a/src/test/ref/test-signed-word-minus-byte.sym +++ b/src/test/ref/test-signed-word-minus-byte.sym @@ -1 +1,85 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 2.0 +(signed word) main::w1 +(signed word) main::w1#1 w1 zp ZP_WORD:2 2.75 +(signed word) main::w1#2 w1 zp ZP_WORD:2 22.0 +(signed word) main::w2 +(signed word) main::w2#0 w2 zp ZP_WORD:13 5.5 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:8 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:8 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:8 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:9 5.240000000000001 +(byte*) print_char_cursor#34 print_char_cursor zp ZP_WORD:9 10.5 +(byte*) print_char_cursor#45 print_char_cursor zp ZP_WORD:9 3.0 +(byte*) print_char_cursor#46 print_char_cursor zp ZP_WORD:9 8.666666666666666 +(byte*) print_char_cursor#48 print_char_cursor zp ZP_WORD:9 2.0 +(byte*) print_char_cursor#50 print_char_cursor zp ZP_WORD:9 5.5 +(byte*~) print_char_cursor#64 print_char_cursor zp ZP_WORD:9 22.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:11 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:11 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:4 46.42857142857143 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:4 1.1818181818181819 +(byte*) print_line_cursor#9 print_line_cursor zp ZP_WORD:4 204.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:6 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:6 22.0 +(signed word) print_sword::w#2 w zp ZP_WORD:6 22.0 +(signed word) print_sword::w#3 w zp ZP_WORD:6 7.0 +(signed word) print_sword::w#4 w zp ZP_WORD:6 1.3333333333333333 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w + +zp ZP_WORD:2 [ main::w1#2 main::w1#1 ] +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:4 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] +zp ZP_WORD:6 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 ] +zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#4 print_char::ch#1 print_char::ch#2 ] +zp ZP_WORD:9 [ print_char_cursor#34 print_char_cursor#48 print_char_cursor#45 print_char_cursor#46 print_char_cursor#50 print_char_cursor#64 print_char_cursor#12 ] +zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] +zp ZP_WORD:13 [ main::w2#0 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] diff --git a/src/test/ref/test-word-size-arrays.sym b/src/test/ref/test-word-size-arrays.sym index 1daabbadc..768a37790 100644 --- a/src/test/ref/test-word-size-arrays.sym +++ b/src/test/ref/test-word-size-arrays.sym @@ -1 +1,33 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(word~) main::$0 $0 zp ZP_WORD:4 67.33333333333333 +(byte*~) main::$10 $10 zp ZP_WORD:4 202.0 +(byte*~) main::$11 $11 zp ZP_WORD:8 22.0 +(word~) main::$2 $2 zp ZP_WORD:6 202.0 +(word~) main::$6 $6 zp ZP_WORD:8 22.0 +(byte*~) main::$9 $9 zp ZP_WORD:6 101.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@return +(byte) main::c +(byte) main::c#1 reg byte x 151.5 +(byte) main::c#2 reg byte x 67.33333333333333 +(byte) main::c1 +(byte) main::c1#1 reg byte x 16.5 +(byte) main::c1#2 reg byte x 8.25 +(word) main::line +(word) main::line#2 line zp ZP_WORD:2 5.5 +(word) main::line#6 line zp ZP_WORD:2 24.888888888888886 +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + +zp ZP_WORD:2 [ main::line#6 main::line#2 ] +reg byte x [ main::c#2 main::c#1 ] +reg byte x [ main::c1#2 main::c1#1 ] +zp ZP_WORD:4 [ main::$0 main::$10 ] +zp ZP_WORD:6 [ main::$2 main::$9 ] +zp ZP_WORD:8 [ main::$6 main::$11 ] diff --git a/src/test/ref/tod018-problem.sym b/src/test/ref/tod018-problem.sym index 1daabbadc..d4ceb9eae 100644 --- a/src/test/ref/tod018-problem.sym +++ b/src/test/ref/tod018-problem.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::D018 +(const byte*) main::D018#0 D018 = (byte*) 53272 +(byte) main::d018val +(const byte) main::d018val#0 d018val = >(word)(const byte*) main::screen#0&(word) $3fff +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/travis1.sym b/src/test/ref/travis1.sym index 1daabbadc..b6ef6d383 100644 --- a/src/test/ref/travis1.sym +++ b/src/test/ref/travis1.sym @@ -1 +1,68 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) READY_FRAMES +(const byte) READY_FRAMES#0 READY_FRAMES = (byte) 5 +(byte) action_count +(byte) action_count#10 reg byte x 2.0 +(byte) action_count#11 reg byte x 1.25 +(byte) action_count#13 reg byte x 5.0 +(bool()) game_ready() +(label) game_ready::@1 +(label) game_ready::@2 +(label) game_ready::@3 +(label) game_ready::@return +(bool) game_ready::return +(bool) game_ready::return#0 reg byte a 22.0 +(bool) game_ready::return#1 reg byte a 4.333333333333333 +(const string) game_ready::str str = (string) "ready@" +(void()) main() +(bool~) main::$0 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 11.0 +(byte) main::i#2 i zp ZP_BYTE:2 3.142857142857143 +(const string) main::str str = (string) "ready!@" +(byte*) print_char_cursor +(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:7 40.6 +(byte*) print_char_cursor#27 print_char_cursor zp ZP_WORD:7 5.0 +(byte*) print_char_cursor#30 print_char_cursor zp ZP_WORD:7 3.25 +(byte*) print_char_cursor#4 print_char_cursor zp ZP_WORD:7 101.0 +(byte*~) print_char_cursor#41 print_char_cursor zp ZP_WORD:7 22.0 +(byte*~) print_char_cursor#44 print_char_cursor zp ZP_WORD:7 22.0 +(byte*) print_line_cursor +(byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:5 204.0 +(byte*) print_line_cursor#14 print_line_cursor zp ZP_WORD:5 19.27777777777778 +(byte*) print_line_cursor#22 print_line_cursor zp ZP_WORD:5 3.0 +(byte*) print_line_cursor#24 print_line_cursor zp ZP_WORD:5 3.25 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:3 2.0 +(byte*) print_str::str#1 str zp ZP_WORD:3 202.0 +(byte*) print_str::str#2 str zp ZP_WORD:3 101.5 +(void()) print_str_ln((byte*) print_str_ln::str) +(label) print_str_ln::@1 +(label) print_str_ln::@return +(byte*) print_str_ln::str +(byte*) print_str_ln::str#2 str zp ZP_WORD:3 2.0 + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +zp ZP_WORD:3 [ print_str_ln::str#2 print_str::str#2 print_str::str#0 print_str::str#1 ] +zp ZP_WORD:5 [ print_line_cursor#13 print_line_cursor#22 print_line_cursor#24 print_line_cursor#14 ] +zp ZP_WORD:7 [ print_char_cursor#17 print_char_cursor#27 print_char_cursor#30 print_char_cursor#44 print_char_cursor#41 print_char_cursor#4 ] +reg byte x [ action_count#10 action_count#13 action_count#11 ] +reg byte a [ game_ready::return#0 ] +reg byte a [ main::$0 ] +reg byte a [ game_ready::return#1 ] diff --git a/src/test/ref/true-inline-words.sym b/src/test/ref/true-inline-words.sym index 1daabbadc..324e1dce1 100644 --- a/src/test/ref/true-inline-words.sym +++ b/src/test/ref/true-inline-words.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::b +(const byte) main::b#0 b = (byte) 4 +(byte*) main::bgcol +(const byte*) main::bgcol#0 bgcol = (byte*) 53281 +(byte[]) main::bs +(const byte[]) main::bs#0 bs = { (byte) 'c', (byte) 'm' } +(byte*) main::pos +(const byte*) main::pos#0 pos = (byte*) 1281 +(byte*) main::sc +(const byte*) main::sc#0 sc = (byte*)(const word) main::w2#0 +(word) main::w +(const word) main::w#0 w = (const byte) main::b#0*(word) $100 +(word) main::w2 +(const word) main::w2#0 w2 = (byte) 1*(word) $100+(byte) 1+(const word) main::w#0 + diff --git a/src/test/ref/type-inference.sym b/src/test/ref/type-inference.sym index 1daabbadc..e6ebca5d4 100644 --- a/src/test/ref/type-inference.sym +++ b/src/test/ref/type-inference.sym @@ -1 +1,17 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte x 11.0 +(byte~) main::$2 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte) main::b +(byte) main::b#1 b zp ZP_BYTE:2 16.5 +(byte) main::b#2 b zp ZP_BYTE:2 11.0 +(word*) main::screen +(const word*) main::screen#0 screen = (word*) 1024 + +zp ZP_BYTE:2 [ main::b#2 main::b#1 ] +reg byte x [ main::$0 ] +reg byte a [ main::$2 ] diff --git a/src/test/ref/type-mix.sym b/src/test/ref/type-mix.sym index 1daabbadc..9114a99e5 100644 --- a/src/test/ref/type-mix.sym +++ b/src/test/ref/type-mix.sym @@ -1 +1,19 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 8.25 +(signed word) main::w +(signed word) main::w#1 w zp ZP_WORD:2 6.6000000000000005 +(signed word) main::w#2 w zp ZP_WORD:2 22.0 + +zp ZP_WORD:2 [ main::w#2 main::w#1 ] +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$1 ] diff --git a/src/test/ref/type-signed.sym b/src/test/ref/type-signed.sym index 1daabbadc..0f03db495 100644 --- a/src/test/ref/type-signed.sym +++ b/src/test/ref/type-signed.sym @@ -1 +1,80 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(signed word) main::a +(signed word) main::a#1 a zp ZP_WORD:2 2.5384615384615383 +(signed word) main::a#2 a zp ZP_WORD:2 22.0 +(word) main::b +(word) main::b#1 b zp ZP_WORD:4 2.75 +(word) main::b#2 b zp ZP_WORD:4 11.0 +(byte) main::i +(byte) main::i#1 reg byte x 11.0 +(byte) main::i#2 reg byte x 2.0 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 b zp ZP_BYTE:10 4.0 +(byte) print_byte::b#1 b zp ZP_BYTE:10 4.0 +(byte) print_byte::b#2 b zp ZP_BYTE:10 2.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#4 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:11 5.240000000000001 +(byte*) print_char_cursor#31 print_char_cursor zp ZP_WORD:11 10.5 +(byte*) print_char_cursor#40 print_char_cursor zp ZP_WORD:11 3.0 +(byte*) print_char_cursor#42 print_char_cursor zp ZP_WORD:11 7.5 +(byte*) print_char_cursor#43 print_char_cursor zp ZP_WORD:11 2.0 +(byte*) print_char_cursor#44 print_char_cursor zp ZP_WORD:11 2.5 +(byte*~) print_char_cursor#59 print_char_cursor zp ZP_WORD:11 22.0 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:6 46.42857142857143 +(byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:6 1.1818181818181819 +(byte*) print_line_cursor#6 print_line_cursor zp ZP_WORD:6 204.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(byte*) print_screen +(void()) print_sword((signed word) print_sword::w) +(label) print_sword::@1 +(label) print_sword::@2 +(label) print_sword::@3 +(label) print_sword::@return +(signed word) print_sword::w +(signed word) print_sword::w#0 w zp ZP_WORD:8 4.0 +(signed word) print_sword::w#1 w zp ZP_WORD:8 4.25 +(signed word) print_sword::w#3 w zp ZP_WORD:8 4.0 +(void()) print_word((word) print_word::w) +(label) print_word::@1 +(label) print_word::@return +(word) print_word::w +(word) print_word::w#1 w zp ZP_WORD:8 22.0 +(word) print_word::w#2 w zp ZP_WORD:8 5.666666666666667 +(word~) print_word::w#5 w zp ZP_WORD:8 4.0 + +zp ZP_WORD:2 [ main::a#2 main::a#1 ] +zp ZP_WORD:4 [ main::b#2 main::b#1 ] +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:6 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] +zp ZP_WORD:8 [ print_word::w#2 print_word::w#1 print_word::w#5 print_sword::w#3 print_sword::w#1 print_sword::w#0 ] +zp ZP_BYTE:10 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] +reg byte a [ print_char::ch#4 print_char::ch#1 print_char::ch#2 ] +zp ZP_WORD:11 [ print_char_cursor#31 print_char_cursor#43 print_char_cursor#42 print_char_cursor#12 print_char_cursor#40 print_char_cursor#44 print_char_cursor#59 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] diff --git a/src/test/ref/typeid-plus-byte-problem.sym b/src/test/ref/typeid-plus-byte-problem.sym index 1daabbadc..b8f34f87e 100644 --- a/src/test/ref/typeid-plus-byte-problem.sym +++ b/src/test/ref/typeid-plus-byte-problem.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return +(byte) main::ubc1 +(const byte) main::ubc1#0 ubc1 = (number) $c+(number) $d+(number) $e +(byte) main::ubc2 +(const byte) main::ubc2#0 ubc2 = (byte) $fa + diff --git a/src/test/ref/typeid-plus-bytes.sym b/src/test/ref/typeid-plus-bytes.sym index 1daabbadc..5785009ad 100644 --- a/src/test/ref/typeid-plus-bytes.sym +++ b/src/test/ref/typeid-plus-bytes.sym @@ -1 +1,62 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(signed byte*) SSCREEN +(const signed byte*) SSCREEN#0 SSCREEN = (signed byte*) 1024 +(const byte) TYPEID_BYTE TYPEID_BYTE = (number) 1 +(const byte) TYPEID_SIGNED_BYTE TYPEID_SIGNED_BYTE = (number) 2 +(byte) idx +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(void()) testSigned() +(label) testSigned::@return +(signed byte) testSigned::sbc1 +(signed byte) testSigned::sbv1 +(signed byte) testSigned::sbv1#0 sbv1 zp ZP_BYTE:4 20.0 +(void()) testSignedVals() +(signed byte~) testSignedVals::$3 reg byte a 4.0 +(signed byte~) testSignedVals::$4 reg byte a 4.0 +(signed byte~) testSignedVals::$5 reg byte a 4.0 +(signed byte~) testSignedVals::$6 reg byte a 4.0 +(signed byte~) testSignedVals::$7 reg byte a 4.0 +(label) testSignedVals::@return +(signed byte) testSignedVals::sbc1 +(const signed byte) testSignedVals::sbc1#0 sbc1 = (signed byte) -$78 +(signed byte) testSignedVals::sbv1 +(signed byte) testSignedVals::sbv1#0 sbv1 zp ZP_BYTE:5 1.0666666666666667 +(void()) testUnsigned() +(label) testUnsigned::@return +(byte) testUnsigned::ubc1 +(byte) testUnsigned::ubv1 +(byte) testUnsigned::ubv1#0 ubv1 zp ZP_BYTE:2 20.0 +(void()) testUnsignedVals() +(byte~) testUnsignedVals::$3 reg byte x 4.0 +(byte~) testUnsignedVals::$4 reg byte x 4.0 +(byte~) testUnsignedVals::$5 reg byte a 4.0 +(byte~) testUnsignedVals::$6 reg byte a 4.0 +(byte~) testUnsignedVals::$7 reg byte a 4.0 +(label) testUnsignedVals::@return +(byte) testUnsignedVals::ubc1 +(const byte) testUnsignedVals::ubc1#0 ubc1 = (byte) $fa +(byte) testUnsignedVals::ubv1 +(byte) testUnsignedVals::ubv1#0 ubv1 zp ZP_BYTE:3 1.0666666666666667 + +zp ZP_BYTE:2 [ testUnsigned::ubv1#0 ] +zp ZP_BYTE:3 [ testUnsignedVals::ubv1#0 ] +zp ZP_BYTE:4 [ testSigned::sbv1#0 ] +zp ZP_BYTE:5 [ testSignedVals::sbv1#0 ] +reg byte a [ testSignedVals::$3 ] +reg byte a [ testSignedVals::$4 ] +reg byte a [ testSignedVals::$5 ] +reg byte a [ testSignedVals::$6 ] +reg byte a [ testSignedVals::$7 ] +reg byte x [ testUnsignedVals::$3 ] +reg byte x [ testUnsignedVals::$4 ] +reg byte a [ testUnsignedVals::$5 ] +reg byte a [ testUnsignedVals::$6 ] +reg byte a [ testUnsignedVals::$7 ] diff --git a/src/test/ref/typeid-simple.sym b/src/test/ref/typeid-simple.sym index 1daabbadc..902c26d45 100644 --- a/src/test/ref/typeid-simple.sym +++ b/src/test/ref/typeid-simple.sym @@ -1 +1,26 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) TYPEID_BOOL TYPEID_BOOL = (number) 7 +(const byte) TYPEID_BYTE TYPEID_BYTE = (number) 1 +(const byte) TYPEID_DWORD TYPEID_DWORD = (number) 5 +(const byte) TYPEID_POINTER_BOOL TYPEID_POINTER_BOOL = (number) $17 +(const byte) TYPEID_POINTER_BYTE TYPEID_POINTER_BYTE = (number) $11 +(const byte) TYPEID_POINTER_DWORD TYPEID_POINTER_DWORD = (number) $15 +(const byte) TYPEID_POINTER_POINTER_BYTE TYPEID_POINTER_POINTER_BYTE = (number) $21 +(const byte) TYPEID_POINTER_PROCEDURE TYPEID_POINTER_PROCEDURE = (number) $1f +(const byte) TYPEID_POINTER_SIGNED_BYTE TYPEID_POINTER_SIGNED_BYTE = (number) $12 +(const byte) TYPEID_POINTER_SIGNED_DWORD TYPEID_POINTER_SIGNED_DWORD = (number) $16 +(const byte) TYPEID_POINTER_SIGNED_WORD TYPEID_POINTER_SIGNED_WORD = (number) $14 +(const byte) TYPEID_POINTER_WORD TYPEID_POINTER_WORD = (number) $13 +(const byte) TYPEID_SIGNED_BYTE TYPEID_SIGNED_BYTE = (number) 2 +(const byte) TYPEID_SIGNED_DWORD TYPEID_SIGNED_DWORD = (number) 6 +(const byte) TYPEID_SIGNED_WORD TYPEID_SIGNED_WORD = (number) 4 +(const byte) TYPEID_VOID TYPEID_VOID = (number) 0 +(const byte) TYPEID_WORD TYPEID_WORD = (number) 3 +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::idx + diff --git a/src/test/ref/typeinference-problem.sym b/src/test/ref/typeinference-problem.sym index 1daabbadc..4d4deb1c5 100644 --- a/src/test/ref/typeinference-problem.sym +++ b/src/test/ref/typeinference-problem.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte x 22.0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 11.0 +(byte[$100]) table +(const byte[$100]) table#0 table = { fill( $100, 0) } + +reg byte y [ main::i#2 main::i#1 ] +reg byte x [ main::$0 ] diff --git a/src/test/ref/uninitialized.sym b/src/test/ref/uninitialized.sym index 1daabbadc..7f8595055 100644 --- a/src/test/ref/uninitialized.sym +++ b/src/test/ref/uninitialized.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) b +(const byte) b#0 b = (byte) 0 +(void()) main() +(label) main::@return +(byte*) ptr +(word) w + diff --git a/src/test/ref/unroll-loop-modifyvar.sym b/src/test/ref/unroll-loop-modifyvar.sym index 1daabbadc..faa74099d 100644 --- a/src/test/ref/unroll-loop-modifyvar.sym +++ b/src/test/ref/unroll-loop-modifyvar.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@1_1 +(label) main::@1_10 +(label) main::@1_2 +(label) main::@1_3 +(label) main::@1_4 +(label) main::@1_5 +(label) main::@1_6 +(label) main::@1_7 +(label) main::@1_8 +(label) main::@1_9 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::a + diff --git a/src/test/ref/unroll-screenfill-for-double.sym b/src/test/ref/unroll-screenfill-for-double.sym index 1daabbadc..e355b4bfc 100644 --- a/src/test/ref/unroll-screenfill-for-double.sym +++ b/src/test/ref/unroll-screenfill-for-double.sym @@ -1 +1,131 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2_1 +(label) main::@2_10 +(label) main::@2_100 +(label) main::@2_101 +(label) main::@2_102 +(label) main::@2_103 +(label) main::@2_104 +(label) main::@2_105 +(label) main::@2_106 +(label) main::@2_107 +(label) main::@2_108 +(label) main::@2_109 +(label) main::@2_11 +(label) main::@2_110 +(label) main::@2_111 +(label) main::@2_112 +(label) main::@2_113 +(label) main::@2_114 +(label) main::@2_115 +(label) main::@2_116 +(label) main::@2_117 +(label) main::@2_118 +(label) main::@2_119 +(label) main::@2_12 +(label) main::@2_120 +(label) main::@2_13 +(label) main::@2_14 +(label) main::@2_15 +(label) main::@2_16 +(label) main::@2_17 +(label) main::@2_18 +(label) main::@2_19 +(label) main::@2_2 +(label) main::@2_20 +(label) main::@2_21 +(label) main::@2_22 +(label) main::@2_23 +(label) main::@2_24 +(label) main::@2_25 +(label) main::@2_26 +(label) main::@2_27 +(label) main::@2_28 +(label) main::@2_29 +(label) main::@2_3 +(label) main::@2_30 +(label) main::@2_31 +(label) main::@2_32 +(label) main::@2_33 +(label) main::@2_34 +(label) main::@2_35 +(label) main::@2_36 +(label) main::@2_37 +(label) main::@2_38 +(label) main::@2_39 +(label) main::@2_4 +(label) main::@2_40 +(label) main::@2_41 +(label) main::@2_42 +(label) main::@2_43 +(label) main::@2_44 +(label) main::@2_45 +(label) main::@2_46 +(label) main::@2_47 +(label) main::@2_48 +(label) main::@2_49 +(label) main::@2_5 +(label) main::@2_50 +(label) main::@2_51 +(label) main::@2_52 +(label) main::@2_53 +(label) main::@2_54 +(label) main::@2_55 +(label) main::@2_56 +(label) main::@2_57 +(label) main::@2_58 +(label) main::@2_59 +(label) main::@2_6 +(label) main::@2_60 +(label) main::@2_61 +(label) main::@2_62 +(label) main::@2_63 +(label) main::@2_64 +(label) main::@2_65 +(label) main::@2_66 +(label) main::@2_67 +(label) main::@2_68 +(label) main::@2_69 +(label) main::@2_7 +(label) main::@2_70 +(label) main::@2_71 +(label) main::@2_72 +(label) main::@2_73 +(label) main::@2_74 +(label) main::@2_75 +(label) main::@2_76 +(label) main::@2_77 +(label) main::@2_78 +(label) main::@2_79 +(label) main::@2_8 +(label) main::@2_80 +(label) main::@2_81 +(label) main::@2_82 +(label) main::@2_83 +(label) main::@2_84 +(label) main::@2_85 +(label) main::@2_86 +(label) main::@2_87 +(label) main::@2_88 +(label) main::@2_89 +(label) main::@2_9 +(label) main::@2_90 +(label) main::@2_91 +(label) main::@2_92 +(label) main::@2_93 +(label) main::@2_94 +(label) main::@2_95 +(label) main::@2_96 +(label) main::@2_97 +(label) main::@2_98 +(label) main::@2_99 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::line +(byte) main::x + diff --git a/src/test/ref/unroll-screenfill-for.sym b/src/test/ref/unroll-screenfill-for.sym index 1daabbadc..ca72a8b40 100644 --- a/src/test/ref/unroll-screenfill-for.sym +++ b/src/test/ref/unroll-screenfill-for.sym @@ -1 +1,40 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@2_1 +(label) main::@2_10 +(label) main::@2_11 +(label) main::@2_12 +(label) main::@2_13 +(label) main::@2_14 +(label) main::@2_15 +(label) main::@2_16 +(label) main::@2_17 +(label) main::@2_18 +(label) main::@2_19 +(label) main::@2_2 +(label) main::@2_20 +(label) main::@2_21 +(label) main::@2_22 +(label) main::@2_23 +(label) main::@2_24 +(label) main::@2_3 +(label) main::@2_4 +(label) main::@2_5 +(label) main::@2_6 +(label) main::@2_7 +(label) main::@2_8 +(label) main::@2_9 +(label) main::@3 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::line +(byte) main::x +(byte) main::x#1 reg byte x 16.5 +(byte) main::x#4 reg byte x 22.00000000000001 + +reg byte x [ main::x#4 main::x#1 ] diff --git a/src/test/ref/unroll-screenfill-while.sym b/src/test/ref/unroll-screenfill-while.sym index 1daabbadc..f7edaa5a6 100644 --- a/src/test/ref/unroll-screenfill-while.sym +++ b/src/test/ref/unroll-screenfill-while.sym @@ -1 +1,40 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@3_1 +(label) main::@3_10 +(label) main::@3_11 +(label) main::@3_12 +(label) main::@3_13 +(label) main::@3_14 +(label) main::@3_15 +(label) main::@3_16 +(label) main::@3_17 +(label) main::@3_18 +(label) main::@3_19 +(label) main::@3_2 +(label) main::@3_20 +(label) main::@3_21 +(label) main::@3_22 +(label) main::@3_23 +(label) main::@3_24 +(label) main::@3_3 +(label) main::@3_4 +(label) main::@3_5 +(label) main::@3_6 +(label) main::@3_7 +(label) main::@3_8 +(label) main::@3_9 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::line +(byte) main::x +(byte) main::x#1 reg byte x 16.5 +(byte) main::x#5 reg byte x 22.00000000000001 + +reg byte x [ main::x#5 main::x#1 ] diff --git a/src/test/ref/unused-method.sym b/src/test/ref/unused-method.sym index 1daabbadc..315cb177a 100644 --- a/src/test/ref/unused-method.sym +++ b/src/test/ref/unused-method.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/unused-vars.sym b/src/test/ref/unused-vars.sym index 1daabbadc..82a6e479a 100644 --- a/src/test/ref/unused-vars.sym +++ b/src/test/ref/unused-vars.sym @@ -1 +1,21 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte) b +(void()) main() +(label) main::@1 +(label) main::@return +(byte*) main::COLS +(const byte*) main::COLS#0 COLS = (byte*) 55296 +(byte) main::col +(const byte) main::col#0 col = (byte) 2 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 14.666666666666666 +(byte()) s() +(label) s::@return +(byte) s::return + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/unusedblockproblem.sym b/src/test/ref/unusedblockproblem.sym index 1daabbadc..412d70cba 100644 --- a/src/test/ref/unusedblockproblem.sym +++ b/src/test/ref/unusedblockproblem.sym @@ -1 +1,9 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::line + diff --git a/src/test/ref/useglobal.sym b/src/test/ref/useglobal.sym index 1daabbadc..d0863c4b5 100644 --- a/src/test/ref/useglobal.sym +++ b/src/test/ref/useglobal.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(void()) main() +(label) main::@return + diff --git a/src/test/ref/useuninitialized.sym b/src/test/ref/useuninitialized.sym index 1daabbadc..d68570af1 100644 --- a/src/test/ref/useuninitialized.sym +++ b/src/test/ref/useuninitialized.sym @@ -1 +1,12 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) b +(const byte) b#1 b = (byte) 3 +(void()) main() +(label) main::@return +(byte*) main::screen +(const byte*) main::screen#0 screen = (byte*) 1024 +(byte) s +(const byte) s#1 s = (byte) 1 + diff --git a/src/test/ref/var-forward-problem.sym b/src/test/ref/var-forward-problem.sym index 1daabbadc..c80db5fc5 100644 --- a/src/test/ref/var-forward-problem.sym +++ b/src/test/ref/var-forward-problem.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) b +(const byte) b#0 b = (byte) 'a' +(void()) main() +(label) main::@return +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/var-forward-problem2.sym b/src/test/ref/var-forward-problem2.sym index 1daabbadc..c80db5fc5 100644 --- a/src/test/ref/var-forward-problem2.sym +++ b/src/test/ref/var-forward-problem2.sym @@ -1 +1,10 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) b +(const byte) b#0 b = (byte) 'a' +(void()) main() +(label) main::@return +(byte*) screen +(const byte*) screen#0 screen = (byte*) 1024 + diff --git a/src/test/ref/var-init-problem.sym b/src/test/ref/var-init-problem.sym index 1daabbadc..ada0b4734 100644 --- a/src/test/ref/var-init-problem.sym +++ b/src/test/ref/var-init-problem.sym @@ -1 +1,8 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return +(byte*) screen +(const byte*) screen#1 screen = (byte*) 1024 + diff --git a/src/test/ref/var-register.sym b/src/test/ref/var-register.sym index 1daabbadc..cfcaa5b5c 100644 --- a/src/test/ref/var-register.sym +++ b/src/test/ref/var-register.sym @@ -1 +1,37 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::a +(byte) main::a#1 a zp ZP_BYTE:2 1501.5 +(byte) main::a#2 a zp ZP_BYTE:2 600.5999999999999 +(byte) main::val1 !reg byte a +(byte) main::val1#0 !reg byte a 1001.0 +(byte) main::x !reg byte y +(byte) main::x#1 !reg byte y 16.5 +(byte) main::x#7 !reg byte y 93.0 +(byte) main::y +(byte) main::y#1 reg byte x 151.5 +(byte) main::y#4 reg byte x 150.375 +(void()) print((byte) print::idx , (byte) print::val) +(label) print::@return +(byte*) print::SCREEN +(const byte*) print::SCREEN#0 SCREEN = (byte*) 1024 +(byte) print::idx !reg byte x +(byte) print::idx#0 !reg byte x 501.5 +(byte) print::val +(byte) print::val#0 reg byte a 1003.0 + +reg byte y [ main::x#7 main::x#1 ] +reg byte x [ main::y#4 main::y#1 ] +zp ZP_BYTE:2 [ main::a#2 main::a#1 ] +reg byte a [ main::val1#0 ] +reg byte x [ print::idx#0 ] +reg byte a [ print::val#0 ] diff --git a/src/test/ref/voronoi.sym b/src/test/ref/voronoi.sym index 1daabbadc..8a34cfc81 100644 --- a/src/test/ref/voronoi.sym +++ b/src/test/ref/voronoi.sym @@ -1 +1,132 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) COLORS +(const byte*) COLORS#0 COLORS = (byte*) 55296 +(byte[]) COLS +(const byte[]) COLS#0 COLS = { (byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5, (byte) 7 } +(byte) FILL +(const byte) FILL#0 FILL = (byte) $e6 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte[]) XPOS +(const byte[]) XPOS#0 XPOS = { (byte) 5, (byte) $f, (byte) 6, (byte) $22, (byte) $15, (byte) $1f } +(byte[]) YPOS +(const byte[]) YPOS#0 YPOS = { (byte) 5, (byte) 8, (byte) $e, (byte) 2, (byte) $11, (byte) $16 } +(void()) animate() +(byte~) animate::$0 reg byte x 4.0 +(byte~) animate::$12 reg byte x 4.0 +(byte~) animate::$15 reg byte a 4.0 +(byte~) animate::$18 reg byte a 4.0 +(byte~) animate::$3 reg byte x 4.0 +(byte~) animate::$6 reg byte a 4.0 +(byte~) animate::$9 reg byte a 4.0 +(label) animate::@1 +(label) animate::@10 +(label) animate::@2 +(label) animate::@3 +(label) animate::@4 +(label) animate::@5 +(label) animate::@6 +(label) animate::@7 +(label) animate::@8 +(label) animate::@9 +(label) animate::@return +(byte()) findcol((byte) findcol::x , (byte) findcol::y) +(byte~) findcol::$10 reg byte a 20002.0 +(byte~) findcol::$8 reg byte a 20002.0 +(label) findcol::@1 +(label) findcol::@10 +(label) findcol::@11 +(label) findcol::@12 +(label) findcol::@13 +(label) findcol::@2 +(label) findcol::@3 +(label) findcol::@4 +(label) findcol::@5 +(label) findcol::@6 +(label) findcol::@7 +(label) findcol::@8 +(label) findcol::@9 +(label) findcol::@return +(byte) findcol::diff +(byte) findcol::diff#1 reg byte x 20002.0 +(byte) findcol::diff#2 reg byte x 20002.0 +(byte) findcol::diff#3 reg byte x 20002.0 +(byte) findcol::diff#4 reg byte x 20002.0 +(byte) findcol::diff#5 reg byte x 10001.0 +(byte) findcol::diff#7 reg byte x 13334.666666666666 +(byte) findcol::i +(byte) findcol::i#1 reg byte y 10001.0 +(byte) findcol::i#10 reg byte y 2631.842105263158 +(byte) findcol::mincol +(byte) findcol::mincol#1 mincol zp ZP_BYTE:7 20002.0 +(byte) findcol::mincol#10 mincol zp ZP_BYTE:7 1176.5882352941176 +(byte) findcol::mincol#2 mincol zp ZP_BYTE:7 10001.0 +(byte) findcol::mindiff +(byte) findcol::mindiff#10 mindiff zp ZP_BYTE:6 1875.1875 +(byte) findcol::mindiff#11 reg byte x 10001.0 +(byte~) findcol::mindiff#12 mindiff zp ZP_BYTE:6 20002.0 +(byte~) findcol::mindiff#14 reg byte x 20002.0 +(byte) findcol::return +(byte) findcol::return#0 reg byte a 2002.0 +(byte) findcol::return#2 return zp ZP_BYTE:7 3667.333333333333 +(byte) findcol::x +(byte) findcol::x#0 x zp ZP_BYTE:5 1640.2 +(byte) findcol::xp +(byte) findcol::xp#0 reg byte x 10001.0 +(byte) findcol::y +(byte) findcol::y#0 y zp ZP_BYTE:2 1708.5416666666665 +(byte) findcol::yp +(byte) findcol::yp#0 yp zp ZP_BYTE:10 6250.625 +(void()) initscreen() +(label) initscreen::@1 +(label) initscreen::@return +(byte*) initscreen::screen +(byte*) initscreen::screen#1 screen zp ZP_WORD:8 16.5 +(byte*) initscreen::screen#2 screen zp ZP_WORD:8 16.5 +(void()) main() +(label) main::@1 +(label) main::@2 +(byte) numpoints +(const byte) numpoints#0 numpoints = (byte) 6 +(void()) render() +(label) render::@1 +(label) render::@2 +(label) render::@3 +(label) render::@4 +(label) render::@return +(byte) render::col +(byte) render::col#0 reg byte a 2002.0 +(byte*) render::colline +(byte*) render::colline#1 colline zp ZP_WORD:3 67.33333333333333 +(byte*) render::colline#5 colline zp ZP_WORD:3 120.29999999999998 +(byte) render::x +(byte) render::x#1 x zp ZP_BYTE:5 1501.5 +(byte) render::x#2 x zp ZP_BYTE:5 572.0 +(byte) render::y +(byte) render::y#1 y zp ZP_BYTE:2 151.5 +(byte) render::y#4 y zp ZP_BYTE:2 109.36363636363637 + +zp ZP_BYTE:2 [ render::y#4 render::y#1 findcol::y#0 ] +zp ZP_WORD:3 [ render::colline#5 render::colline#1 ] +zp ZP_BYTE:5 [ render::x#2 render::x#1 findcol::x#0 ] +reg byte y [ findcol::i#10 findcol::i#1 ] +zp ZP_BYTE:6 [ findcol::mindiff#10 findcol::mindiff#12 ] +zp ZP_BYTE:7 [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ] +reg byte x [ findcol::diff#5 findcol::diff#2 findcol::diff#1 ] +reg byte x [ findcol::mindiff#11 findcol::diff#7 findcol::diff#4 findcol::diff#3 findcol::mindiff#14 ] +zp ZP_WORD:8 [ initscreen::screen#2 initscreen::screen#1 ] +reg byte x [ animate::$0 ] +reg byte x [ animate::$3 ] +reg byte a [ animate::$6 ] +reg byte a [ animate::$9 ] +reg byte x [ animate::$12 ] +reg byte a [ animate::$15 ] +reg byte a [ animate::$18 ] +reg byte a [ findcol::return#0 ] +reg byte a [ render::col#0 ] +reg byte x [ findcol::xp#0 ] +zp ZP_BYTE:10 [ findcol::yp#0 ] +reg byte a [ findcol::$8 ] +reg byte a [ findcol::$10 ] diff --git a/src/test/ref/wfragment1.sym b/src/test/ref/wfragment1.sym index 1daabbadc..68fa53b37 100644 --- a/src/test/ref/wfragment1.sym +++ b/src/test/ref/wfragment1.sym @@ -1 +1,24 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte) MAX_OBJECTS +(const byte) MAX_OBJECTS#0 MAX_OBJECTS = (byte) $10 +(word[MAX_OBJECTS#0]) OBJ_WORLD_X +(const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 OBJ_WORLD_X = { fill( MAX_OBJECTS#0, 0) } +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte y 16.5 +(byte) main::i#2 reg byte y 11.0 +(bool()) move_enemy((byte) move_enemy::obj_slot) +(byte~) move_enemy::$0 reg byte a 6.0 +(label) move_enemy::@return +(byte) move_enemy::obj_slot +(byte) move_enemy::obj_slot#0 reg byte y 13.0 +(bool) move_enemy::return + +reg byte y [ main::i#2 main::i#1 ] +reg byte y [ move_enemy::obj_slot#0 ] +reg byte a [ move_enemy::$0 ] diff --git a/src/test/ref/word-array-0.sym b/src/test/ref/word-array-0.sym index 1daabbadc..728d461e5 100644 --- a/src/test/ref/word-array-0.sym +++ b/src/test/ref/word-array-0.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(byte~) main::$2 reg byte a 4.0 +(byte~) main::$3 reg byte a 4.0 +(byte~) main::$4 reg byte a 4.0 +(byte~) main::$5 reg byte a 4.0 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*)(number) $400+(number) 6*(number) $28 +(word) main::w1 +(word) main::w1#0 w1 zp ZP_WORD:2 2.0 +(word) main::w2 +(word) main::w2#0 w2 zp ZP_WORD:4 2.0 +(word[3]) main::words +(const word[3]) main::words#0 words = (word*) 1024 + +zp ZP_WORD:2 [ main::w1#0 ] +reg byte a [ main::$2 ] +reg byte a [ main::$3 ] +zp ZP_WORD:4 [ main::w2#0 ] +reg byte a [ main::$4 ] +reg byte a [ main::$5 ] diff --git a/src/test/ref/word-array-1.sym b/src/test/ref/word-array-1.sym index 1daabbadc..24dce7c55 100644 --- a/src/test/ref/word-array-1.sym +++ b/src/test/ref/word-array-1.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$1 reg byte a 22.0 +(byte~) main::$3 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 3.3000000000000003 +(byte) main::idx +(byte) main::idx#1 reg byte y 11.0 +(byte) main::idx#2 reg byte a 22.0 +(byte) main::idx#3 idx zp ZP_BYTE:2 7.333333333333333 +(byte) main::idx#4 idx zp ZP_BYTE:2 6.6000000000000005 +(word) main::w +(word) main::w#0 w zp ZP_WORD:3 8.25 +(word[]) main::words +(const word[]) main::words#0 words = { (word) $3031, (word) $3233, (word) $3435, (word) $3637 } + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_BYTE:2 [ main::idx#4 main::idx#3 ] +reg byte a [ main::$3 ] +zp ZP_WORD:3 [ main::w#0 ] +reg byte a [ main::$0 ] +reg byte y [ main::idx#1 ] +reg byte a [ main::$1 ] +reg byte a [ main::idx#2 ] diff --git a/src/test/ref/word-array-2.sym b/src/test/ref/word-array-2.sym index 1daabbadc..c4a234600 100644 --- a/src/test/ref/word-array-2.sym +++ b/src/test/ref/word-array-2.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(word~) main::$1 $1 zp ZP_WORD:2 5.5 +(word~) main::$2 $2 zp ZP_WORD:4 22.0 +(word~) main::$3 $3 zp ZP_WORD:4 22.0 +(word~) main::$4 $4 zp ZP_WORD:4 7.333333333333333 +(word~) main::$6 $6 zp ZP_WORD:2 22.0 +(word*~) main::$9 $9 zp ZP_WORD:2 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(word*) main::SCREEN +(const word*) main::SCREEN#0 SCREEN = (word*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 4.125 +(word[$100]) words +(const word[$100]) words#0 words = { fill( $100, 0) } + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:2 [ main::$1 main::$6 main::$9 ] +zp ZP_WORD:4 [ main::$2 main::$3 main::$4 ] diff --git a/src/test/ref/word-pointer-compound.sym b/src/test/ref/word-pointer-compound.sym index 1daabbadc..d81f45ac1 100644 --- a/src/test/ref/word-pointer-compound.sym +++ b/src/test/ref/word-pointer-compound.sym @@ -1 +1,31 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(byte~) main::$0 reg byte a 4.0 +(byte~) main::$1 reg byte a 4.0 +(byte~) main::$2 reg byte a 4.0 +(byte~) main::$3 reg byte a 4.0 +(byte~) main::$4 reg byte a 4.0 +(byte~) main::$5 reg byte a 4.0 +(byte~) main::$7 reg byte a 33.0 +(label) main::@1 +(label) main::@2 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 +(word[]) main::words +(const word[]) main::words#0 words = { (word) $3031, (word) $3233, (word) $3435 } + +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ main::$7 ] +reg byte a [ main::$0 ] +reg byte a [ main::$1 ] +reg byte a [ main::$2 ] +reg byte a [ main::$3 ] +reg byte a [ main::$4 ] +reg byte a [ main::$5 ] diff --git a/src/test/ref/word-pointer-iteration-0.sym b/src/test/ref/word-pointer-iteration-0.sym index 1daabbadc..ff05778be 100644 --- a/src/test/ref/word-pointer-iteration-0.sym +++ b/src/test/ref/word-pointer-iteration-0.sym @@ -1 +1,22 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(byte~) main::$2 reg byte a 4.0 +(byte~) main::$3 reg byte a 4.0 +(byte~) main::$4 reg byte a 4.0 +(byte~) main::$5 reg byte a 4.0 +(byte~) main::$6 reg byte a 4.0 +(byte~) main::$7 reg byte a 4.0 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*)(number) $400+(number) $28*(number) 6 +(word*) main::wp + +reg byte a [ main::$2 ] +reg byte a [ main::$3 ] +reg byte a [ main::$4 ] +reg byte a [ main::$5 ] +reg byte a [ main::$6 ] +reg byte a [ main::$7 ] diff --git a/src/test/ref/word-pointer-iteration.sym b/src/test/ref/word-pointer-iteration.sym index 1daabbadc..aa6340db4 100644 --- a/src/test/ref/word-pointer-iteration.sym +++ b/src/test/ref/word-pointer-iteration.sym @@ -1 +1,35 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(byte~) main::$0 reg byte a 22.0 +(byte~) main::$1 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 2.2 +(byte) main::idx +(byte) main::idx#1 reg byte y 11.0 +(byte) main::idx#2 reg byte a 22.0 +(byte) main::idx#3 idx zp ZP_BYTE:4 7.333333333333333 +(byte) main::idx#4 idx zp ZP_BYTE:4 6.6000000000000005 +(word) main::w +(word) main::w#0 w zp ZP_WORD:5 6.6000000000000005 +(word[]) main::words +(const word[]) main::words#0 words = { (word) $3130, (word) $3332, (word) $3534, (word) $3736 } +(word*) main::wp +(word*) main::wp#1 wp zp ZP_WORD:2 2.2 +(word*) main::wp#2 wp zp ZP_WORD:2 16.5 + +zp ZP_WORD:2 [ main::wp#2 main::wp#1 ] +zp ZP_BYTE:4 [ main::idx#4 main::idx#3 ] +reg byte x [ main::i#2 main::i#1 ] +zp ZP_WORD:5 [ main::w#0 ] +reg byte a [ main::$0 ] +reg byte y [ main::idx#1 ] +reg byte a [ main::$1 ] +reg byte a [ main::idx#2 ] diff --git a/src/test/ref/word-pointer-math-0.sym b/src/test/ref/word-pointer-math-0.sym index 1daabbadc..6aa603c50 100644 --- a/src/test/ref/word-pointer-math-0.sym +++ b/src/test/ref/word-pointer-math-0.sym @@ -1 +1,25 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2 +(void()) main() +(byte~) main::$3 reg byte a 4.0 +(byte~) main::$4 reg byte a 4.0 +(byte~) main::$6 reg byte a 4.0 +(byte~) main::$7 reg byte a 4.0 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*)(number) $400+(number) 6*(number) $28 +(word) main::w1 +(word) main::w1#0 w1 zp ZP_WORD:2 2.0 +(word) main::w2 +(word) main::w2#0 w2 zp ZP_WORD:4 2.0 +(word*) main::words +(const word*) main::words#0 words = (word*) 1024 + +zp ZP_WORD:2 [ main::w1#0 ] +reg byte a [ main::$3 ] +reg byte a [ main::$4 ] +zp ZP_WORD:4 [ main::w2#0 ] +reg byte a [ main::$6 ] +reg byte a [ main::$7 ] diff --git a/src/test/ref/word-pointer-math.sym b/src/test/ref/word-pointer-math.sym index 1daabbadc..096fa87ad 100644 --- a/src/test/ref/word-pointer-math.sym +++ b/src/test/ref/word-pointer-math.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(byte~) main::$1 reg byte a 22.0 +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$4 reg byte a 22.0 +(label) main::@1 +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = (byte*) 1024 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 3.3000000000000003 +(byte) main::idx +(byte) main::idx#1 reg byte y 11.0 +(byte) main::idx#2 reg byte a 22.0 +(byte) main::idx#3 idx zp ZP_BYTE:2 7.333333333333333 +(byte) main::idx#4 idx zp ZP_BYTE:2 6.6000000000000005 +(word) main::w +(word) main::w#0 w zp ZP_WORD:3 8.25 +(word[]) main::words +(const word[]) main::words#0 words = { (word) $3130, (word) $3332, (word) $3534, (word) $3736 } + +reg byte x [ main::i#2 main::i#1 ] +zp ZP_BYTE:2 [ main::idx#4 main::idx#3 ] +reg byte a [ main::$4 ] +zp ZP_WORD:3 [ main::w#0 ] +reg byte a [ main::$1 ] +reg byte y [ main::idx#1 ] +reg byte a [ main::$2 ] +reg byte a [ main::idx#2 ] diff --git a/src/test/ref/wordexpr.sym b/src/test/ref/wordexpr.sym index 1daabbadc..5caacaff6 100644 --- a/src/test/ref/wordexpr.sym +++ b/src/test/ref/wordexpr.sym @@ -1 +1,15 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@return +(word) main::b +(word) main::b#1 b zp ZP_WORD:2 7.333333333333333 +(word) main::b#2 b zp ZP_WORD:2 22.0 +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 + +zp ZP_WORD:2 [ main::b#2 main::b#1 ] +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/zpparammin.sym b/src/test/ref/zpparammin.sym index 1daabbadc..1df2074e7 100644 --- a/src/test/ref/zpparammin.sym +++ b/src/test/ref/zpparammin.sym @@ -1 +1,57 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = (byte*) 1024 +(byte*) SCREEN2 +(const byte*) SCREEN2#0 SCREEN2 = (byte*)(number) $400+(number) $28 +(void()) main() +(byte~) main::$2 reg byte a 22.0 +(byte~) main::$5 reg byte a 22.0 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:2 16.5 +(byte) main::i#2 i zp ZP_BYTE:2 7.333333333333333 +(byte()) sum((byte) sum::a , (byte) sum::b , (byte) sum::c) +(byte~) sum::$0 reg byte a 4.0 +(label) sum::@return +(byte) sum::a +(byte) sum::a#0 reg byte y 13.0 +(byte) sum::b +(byte) sum::b#0 reg byte a 4.333333333333333 +(byte) sum::c +(byte) sum::c#0 reg byte x 4.333333333333333 +(byte) sum::return +(byte) sum::return#0 reg byte a 22.0 +(byte) sum::return#1 reg byte a 4.333333333333333 +(byte()) sum2((byte) sum2::a , (byte) sum2::b , (byte) sum2::c) +(byte~) sum2::$0 reg byte a 4.0 +(label) sum2::@return +(byte) sum2::a +(byte) sum2::a#0 reg byte y 13.0 +(byte) sum2::b +(byte) sum2::b#0 reg byte a 4.333333333333333 +(byte) sum2::c +(byte) sum2::c#0 reg byte x 4.333333333333333 +(byte) sum2::return +(byte) sum2::return#0 reg byte a 22.0 +(byte) sum2::return#1 reg byte a 4.333333333333333 + +zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +reg byte a [ sum::b#0 ] +reg byte x [ sum::c#0 ] +reg byte y [ sum::a#0 ] +reg byte a [ sum::return#0 ] +reg byte a [ main::$2 ] +reg byte a [ sum2::b#0 ] +reg byte x [ sum2::c#0 ] +reg byte y [ sum2::a#0 ] +reg byte a [ sum2::return#0 ] +reg byte a [ main::$5 ] +reg byte a [ sum2::$0 ] +reg byte a [ sum2::return#1 ] +reg byte a [ sum::$0 ] +reg byte a [ sum::return#1 ] diff --git a/src/test/ref/zpptr.sym b/src/test/ref/zpptr.sym index 1daabbadc..a25175954 100644 --- a/src/test/ref/zpptr.sym +++ b/src/test/ref/zpptr.sym @@ -1 +1,32 @@ -program \ No newline at end of file +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@return +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:3 151.5 +(byte) main::i#4 i zp ZP_BYTE:3 150.375 +(byte) main::j +(byte) main::j#1 j zp ZP_BYTE:2 16.5 +(byte) main::j#6 j zp ZP_BYTE:2 2.0 +(byte) main::k +(byte) main::k#1 reg byte x 1501.5 +(byte) main::k#2 reg byte x 600.5999999999999 +(word) main::w +(word) main::w#0 w zp ZP_WORD:6 2002.0 +(byte*) main::zpptr +(const byte*) main::zpptr#0 zpptr = (byte*) 4096 +(byte*) main::zpptr2 +(byte*) main::zpptr2#0 zpptr2 zp ZP_WORD:4 1001.0 +(byte*) main::zpptr2#1 zpptr2 zp ZP_WORD:4 2002.0 + +zp ZP_BYTE:2 [ main::j#6 main::j#1 ] +zp ZP_BYTE:3 [ main::i#4 main::i#1 ] +reg byte x [ main::k#2 main::k#1 ] +zp ZP_WORD:4 [ main::zpptr2#0 main::zpptr2#1 ] +zp ZP_WORD:6 [ main::w#0 ]