2021-08-07 08:32:20 +00:00
|
|
|
Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx)
|
2021-08-10 15:48:55 +00:00
|
|
|
Inlined call call __init
|
2021-07-27 17:11:14 +00:00
|
|
|
Eliminating unused variable with no statement bitmap_clear::$1
|
|
|
|
Eliminating unused variable with no statement bitmap_line::$1
|
|
|
|
Eliminating unused variable with no statement bitmap_line::$3
|
|
|
|
Eliminating unused variable with no statement bitmap_line::$9
|
|
|
|
Eliminating unused variable with no statement bitmap_line::$11
|
|
|
|
Eliminating unused variable with no statement bitmap_line::$15
|
|
|
|
Eliminating unused variable with no statement bitmap_line::$20
|
|
|
|
Eliminating unused variable with no statement memset::$2
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
CONTROL FLOW GRAPH SSA
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_init(char *gfx , char *screen)
|
2019-09-18 19:53:32 +00:00
|
|
|
bitmap_init: scope:[bitmap_init] from main
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_init::screen#1 = phi( main/bitmap_init::screen#0 )
|
|
|
|
bitmap_init::gfx#1 = phi( main/bitmap_init::gfx#0 )
|
|
|
|
bitmap_gfx#0 = bitmap_init::gfx#1
|
|
|
|
bitmap_screen#0 = bitmap_init::screen#1
|
|
|
|
bitmap_init::bits#0 = $80
|
|
|
|
bitmap_init::x#0 = 0
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@1
|
|
|
|
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#25 = phi( bitmap_init/bitmap_screen#0, bitmap_init::@2/bitmap_screen#23 )
|
|
|
|
bitmap_gfx#26 = phi( bitmap_init/bitmap_gfx#0, bitmap_init::@2/bitmap_gfx#24 )
|
|
|
|
bitmap_init::gfx#4 = phi( bitmap_init/bitmap_init::gfx#1, bitmap_init::@2/bitmap_init::gfx#3 )
|
|
|
|
bitmap_init::x#2 = phi( bitmap_init/bitmap_init::x#0, bitmap_init::@2/bitmap_init::x#1 )
|
|
|
|
bitmap_init::bits#3 = phi( bitmap_init/bitmap_init::bits#0, bitmap_init::@2/bitmap_init::bits#4 )
|
|
|
|
bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3
|
|
|
|
bitmap_init::bits#1 = bitmap_init::bits#3 >> 1
|
|
|
|
bitmap_init::$0 = bitmap_init::bits#1 == 0
|
|
|
|
bitmap_init::$1 = ! bitmap_init::$0
|
|
|
|
if(bitmap_init::$1) goto bitmap_init::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@3
|
|
|
|
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@3
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#23 = phi( bitmap_init::@1/bitmap_screen#25, bitmap_init::@3/bitmap_screen#26 )
|
|
|
|
bitmap_gfx#24 = phi( bitmap_init::@1/bitmap_gfx#26, bitmap_init::@3/bitmap_gfx#27 )
|
|
|
|
bitmap_init::gfx#3 = phi( bitmap_init::@1/bitmap_init::gfx#4, bitmap_init::@3/bitmap_init::gfx#5 )
|
|
|
|
bitmap_init::bits#4 = phi( bitmap_init::@1/bitmap_init::bits#1, bitmap_init::@3/bitmap_init::bits#2 )
|
|
|
|
bitmap_init::x#3 = phi( bitmap_init::@1/bitmap_init::x#2, bitmap_init::@3/bitmap_init::x#4 )
|
|
|
|
bitmap_init::x#1 = bitmap_init::x#3 + rangenext(0,$ff)
|
|
|
|
bitmap_init::$2 = bitmap_init::x#1 != rangelast(0,$ff)
|
|
|
|
if(bitmap_init::$2) goto bitmap_init::@1
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@4
|
|
|
|
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#26 = phi( bitmap_init::@1/bitmap_screen#25 )
|
|
|
|
bitmap_gfx#27 = phi( bitmap_init::@1/bitmap_gfx#26 )
|
|
|
|
bitmap_init::gfx#5 = phi( bitmap_init::@1/bitmap_init::gfx#4 )
|
|
|
|
bitmap_init::x#4 = phi( bitmap_init::@1/bitmap_init::x#2 )
|
|
|
|
bitmap_init::bits#2 = $80
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@2
|
|
|
|
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#21 = phi( bitmap_init::@2/bitmap_screen#23 )
|
|
|
|
bitmap_gfx#22 = phi( bitmap_init::@2/bitmap_gfx#24 )
|
|
|
|
bitmap_init::gfx#2 = phi( bitmap_init::@2/bitmap_init::gfx#3 )
|
|
|
|
bitmap_init::yoffs#0 = bitmap_init::gfx#2
|
|
|
|
bitmap_init::y#0 = 0
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@5
|
|
|
|
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#17 = phi( bitmap_init::@4/bitmap_screen#21, bitmap_init::@6/bitmap_screen#13 )
|
|
|
|
bitmap_gfx#18 = phi( bitmap_init::@4/bitmap_gfx#22, bitmap_init::@6/bitmap_gfx#13 )
|
|
|
|
bitmap_init::yoffs#2 = phi( bitmap_init::@4/bitmap_init::yoffs#0, bitmap_init::@6/bitmap_init::yoffs#4 )
|
|
|
|
bitmap_init::y#2 = phi( bitmap_init::@4/bitmap_init::y#0, bitmap_init::@6/bitmap_init::y#1 )
|
|
|
|
bitmap_init::$3 = bitmap_init::y#2 & 7
|
2021-06-13 12:24:57 +00:00
|
|
|
bitmap_init::$4 = byte0 bitmap_init::yoffs#2
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4
|
|
|
|
bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5
|
2021-06-13 12:24:57 +00:00
|
|
|
bitmap_init::$6 = byte1 bitmap_init::yoffs#2
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6
|
|
|
|
bitmap_init::$7 = bitmap_init::y#2 & 7
|
|
|
|
bitmap_init::$8 = bitmap_init::$7 == 7
|
|
|
|
bitmap_init::$9 = ! bitmap_init::$8
|
|
|
|
if(bitmap_init::$9) goto bitmap_init::@6
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@7
|
|
|
|
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@5 bitmap_init::@7
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#13 = phi( bitmap_init::@5/bitmap_screen#17, bitmap_init::@7/bitmap_screen#18 )
|
|
|
|
bitmap_gfx#13 = phi( bitmap_init::@5/bitmap_gfx#18, bitmap_init::@7/bitmap_gfx#19 )
|
|
|
|
bitmap_init::yoffs#4 = phi( bitmap_init::@5/bitmap_init::yoffs#2, bitmap_init::@7/bitmap_init::yoffs#1 )
|
|
|
|
bitmap_init::y#3 = phi( bitmap_init::@5/bitmap_init::y#2, bitmap_init::@7/bitmap_init::y#4 )
|
|
|
|
bitmap_init::y#1 = bitmap_init::y#3 + rangenext(0,$ff)
|
|
|
|
bitmap_init::$11 = bitmap_init::y#1 != rangelast(0,$ff)
|
|
|
|
if(bitmap_init::$11) goto bitmap_init::@5
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@return
|
|
|
|
bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@5
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#18 = phi( bitmap_init::@5/bitmap_screen#17 )
|
|
|
|
bitmap_gfx#19 = phi( bitmap_init::@5/bitmap_gfx#18 )
|
|
|
|
bitmap_init::y#4 = phi( bitmap_init::@5/bitmap_init::y#2 )
|
|
|
|
bitmap_init::yoffs#3 = phi( bitmap_init::@5/bitmap_init::yoffs#2 )
|
|
|
|
bitmap_init::$10 = bitmap_init::yoffs#3 + $28*8
|
|
|
|
bitmap_init::yoffs#1 = bitmap_init::$10
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_init::@6
|
|
|
|
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#7 = phi( bitmap_init::@6/bitmap_screen#13 )
|
|
|
|
bitmap_gfx#7 = phi( bitmap_init::@6/bitmap_gfx#13 )
|
|
|
|
bitmap_gfx#1 = bitmap_gfx#7
|
|
|
|
bitmap_screen#1 = bitmap_screen#7
|
2019-09-18 19:53:32 +00:00
|
|
|
return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_clear(char bgcol , char fgcol)
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_clear: scope:[bitmap_clear] from main::@4
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_gfx#14 = phi( main::@4/bitmap_gfx#2 )
|
|
|
|
bitmap_screen#8 = phi( main::@4/bitmap_screen#2 )
|
|
|
|
bitmap_clear::bgcol#1 = phi( main::@4/bitmap_clear::bgcol#0 )
|
|
|
|
bitmap_clear::fgcol#1 = phi( main::@4/bitmap_clear::fgcol#0 )
|
|
|
|
bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10
|
2021-07-27 17:11:14 +00:00
|
|
|
bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#1
|
2021-08-10 15:48:55 +00:00
|
|
|
memset::str#0 = (void *)bitmap_screen#8
|
2020-10-05 20:58:02 +00:00
|
|
|
memset::c#0 = bitmap_clear::col#0
|
|
|
|
memset::num#0 = $3e8
|
2021-08-10 15:48:55 +00:00
|
|
|
call memset
|
2021-05-11 21:11:51 +00:00
|
|
|
memset::return#0 = memset::return#3
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_clear::@1
|
|
|
|
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_gfx#8 = phi( bitmap_clear/bitmap_gfx#14 )
|
2021-08-10 15:48:55 +00:00
|
|
|
memset::str#1 = (void *)bitmap_gfx#8
|
2020-10-05 20:58:02 +00:00
|
|
|
memset::c#1 = 0
|
|
|
|
memset::num#1 = $1f40
|
2021-08-10 15:48:55 +00:00
|
|
|
call memset
|
2021-05-11 21:11:51 +00:00
|
|
|
memset::return#1 = memset::return#3
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_clear::@2
|
|
|
|
bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1
|
|
|
|
to:bitmap_clear::@return
|
|
|
|
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2
|
|
|
|
return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_plot(unsigned int x , char y)
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 )
|
|
|
|
bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 )
|
2021-07-01 22:21:08 +00:00
|
|
|
bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
|
2021-08-10 15:48:55 +00:00
|
|
|
bitmap_plot::plotter#0 = (char *)bitmap_plot::$0
|
2021-07-01 22:21:08 +00:00
|
|
|
bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
|
|
|
bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1
|
|
|
|
bitmap_plot::$2 = byte0 bitmap_plot::x#4
|
|
|
|
*bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_plot::@return
|
|
|
|
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
|
|
|
return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2)
|
2019-09-18 19:53:32 +00:00
|
|
|
bitmap_line: scope:[bitmap_line] from main::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::y2#4 = phi( main::@1/bitmap_line::y2#0 )
|
|
|
|
bitmap_line::x2#1 = phi( main::@1/bitmap_line::x2#0 )
|
|
|
|
bitmap_line::y1#1 = phi( main::@1/bitmap_line::y1#0 )
|
|
|
|
bitmap_line::x1#1 = phi( main::@1/bitmap_line::x1#0 )
|
|
|
|
bitmap_line::x#0 = bitmap_line::x1#1
|
|
|
|
bitmap_line::y#0 = bitmap_line::y1#1
|
|
|
|
bitmap_line::$0 = bitmap_line::x2#1 - bitmap_line::x1#1
|
|
|
|
abs_u16::w#0 = bitmap_line::$0
|
2021-08-10 15:48:55 +00:00
|
|
|
call abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
abs_u16::return#0 = abs_u16::return#4
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@12
|
|
|
|
bitmap_line::@12: scope:[bitmap_line] from bitmap_line
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::y#16 = phi( bitmap_line/bitmap_line::y#0 )
|
|
|
|
bitmap_line::x#16 = phi( bitmap_line/bitmap_line::x#0 )
|
|
|
|
bitmap_line::x1#4 = phi( bitmap_line/bitmap_line::x1#1 )
|
|
|
|
bitmap_line::x2#7 = phi( bitmap_line/bitmap_line::x2#1 )
|
|
|
|
bitmap_line::y1#2 = phi( bitmap_line/bitmap_line::y1#1 )
|
|
|
|
bitmap_line::y2#1 = phi( bitmap_line/bitmap_line::y2#4 )
|
|
|
|
abs_u16::return#5 = phi( bitmap_line/abs_u16::return#0 )
|
2021-07-27 17:11:14 +00:00
|
|
|
bitmap_line::dx#0 = abs_u16::return#5
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::$2 = bitmap_line::y2#1 - bitmap_line::y1#2
|
|
|
|
abs_u16::w#1 = bitmap_line::$2
|
2021-08-10 15:48:55 +00:00
|
|
|
call abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
abs_u16::return#1 = abs_u16::return#4
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@13
|
|
|
|
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::y1#5 = phi( bitmap_line::@12/bitmap_line::y1#2 )
|
|
|
|
bitmap_line::y2#8 = phi( bitmap_line::@12/bitmap_line::y2#1 )
|
|
|
|
bitmap_line::y#10 = phi( bitmap_line::@12/bitmap_line::y#16 )
|
|
|
|
bitmap_line::x#10 = phi( bitmap_line::@12/bitmap_line::x#16 )
|
|
|
|
bitmap_line::x1#3 = phi( bitmap_line::@12/bitmap_line::x1#4 )
|
|
|
|
bitmap_line::x2#4 = phi( bitmap_line::@12/bitmap_line::x2#7 )
|
|
|
|
bitmap_line::dx#1 = phi( bitmap_line::@12/bitmap_line::dx#0 )
|
|
|
|
abs_u16::return#6 = phi( bitmap_line::@12/abs_u16::return#1 )
|
2021-07-27 17:11:14 +00:00
|
|
|
bitmap_line::dy#0 = abs_u16::return#6
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::$4 = bitmap_line::dx#1 == 0
|
|
|
|
bitmap_line::$5 = bitmap_line::dy#0 == 0
|
|
|
|
bitmap_line::$6 = bitmap_line::$4 && bitmap_line::$5
|
|
|
|
bitmap_line::$7 = ! bitmap_line::$6
|
|
|
|
if(bitmap_line::$7) goto bitmap_line::@1
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@4
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::y#19 = phi( bitmap_line::@13/bitmap_line::y#10 )
|
|
|
|
bitmap_line::x#19 = phi( bitmap_line::@13/bitmap_line::x#10 )
|
|
|
|
bitmap_line::dy#9 = phi( bitmap_line::@13/bitmap_line::dy#0 )
|
|
|
|
bitmap_line::dx#10 = phi( bitmap_line::@13/bitmap_line::dx#1 )
|
|
|
|
bitmap_line::y1#4 = phi( bitmap_line::@13/bitmap_line::y1#5 )
|
|
|
|
bitmap_line::y2#5 = phi( bitmap_line::@13/bitmap_line::y2#8 )
|
|
|
|
bitmap_line::x1#2 = phi( bitmap_line::@13/bitmap_line::x1#3 )
|
|
|
|
bitmap_line::x2#2 = phi( bitmap_line::@13/bitmap_line::x2#4 )
|
|
|
|
bitmap_line::$8 = bitmap_line::x2#2 - bitmap_line::x1#2
|
|
|
|
sgn_u16::w#0 = bitmap_line::$8
|
2021-08-10 15:48:55 +00:00
|
|
|
call sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
sgn_u16::return#0 = sgn_u16::return#4
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@14
|
|
|
|
bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::x2#11 = phi( bitmap_line::@1/bitmap_line::x2#2 )
|
|
|
|
bitmap_line::y#18 = phi( bitmap_line::@1/bitmap_line::y#19 )
|
|
|
|
bitmap_line::x#18 = phi( bitmap_line::@1/bitmap_line::x#19 )
|
|
|
|
bitmap_line::dy#6 = phi( bitmap_line::@1/bitmap_line::dy#9 )
|
|
|
|
bitmap_line::dx#7 = phi( bitmap_line::@1/bitmap_line::dx#10 )
|
|
|
|
bitmap_line::y1#3 = phi( bitmap_line::@1/bitmap_line::y1#4 )
|
|
|
|
bitmap_line::y2#2 = phi( bitmap_line::@1/bitmap_line::y2#5 )
|
|
|
|
sgn_u16::return#5 = phi( bitmap_line::@1/sgn_u16::return#0 )
|
2021-07-27 17:11:14 +00:00
|
|
|
bitmap_line::sx#0 = sgn_u16::return#5
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::$10 = bitmap_line::y2#2 - bitmap_line::y1#3
|
|
|
|
sgn_u16::w#1 = bitmap_line::$10
|
2021-08-10 15:48:55 +00:00
|
|
|
call sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
sgn_u16::return#1 = sgn_u16::return#4
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@15
|
|
|
|
bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::y2#11 = phi( bitmap_line::@14/bitmap_line::y2#2 )
|
|
|
|
bitmap_line::x2#10 = phi( bitmap_line::@14/bitmap_line::x2#11 )
|
|
|
|
bitmap_line::sx#8 = phi( bitmap_line::@14/bitmap_line::sx#0 )
|
|
|
|
bitmap_line::y#17 = phi( bitmap_line::@14/bitmap_line::y#18 )
|
|
|
|
bitmap_line::x#17 = phi( bitmap_line::@14/bitmap_line::x#18 )
|
|
|
|
bitmap_line::dy#1 = phi( bitmap_line::@14/bitmap_line::dy#6 )
|
|
|
|
bitmap_line::dx#2 = phi( bitmap_line::@14/bitmap_line::dx#7 )
|
|
|
|
sgn_u16::return#6 = phi( bitmap_line::@14/sgn_u16::return#1 )
|
2021-07-27 17:11:14 +00:00
|
|
|
bitmap_line::sy#0 = sgn_u16::return#6
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::$12 = bitmap_line::dx#2 > bitmap_line::dy#1
|
|
|
|
if(bitmap_line::$12) goto bitmap_line::@2
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@5
|
|
|
|
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@13
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::y#3 = phi( bitmap_line::@13/bitmap_line::y#10 )
|
|
|
|
bitmap_line::x#3 = phi( bitmap_line::@13/bitmap_line::x#10 )
|
|
|
|
bitmap_plot::x#0 = bitmap_line::x#3
|
2021-08-10 15:48:55 +00:00
|
|
|
bitmap_plot::y#0 = (char)bitmap_line::y#3
|
|
|
|
call bitmap_plot
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@16
|
|
|
|
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@return
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@16 bitmap_line::@18
|
2019-09-18 19:53:32 +00:00
|
|
|
return
|
|
|
|
to:@return
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@15
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sy#10 = phi( bitmap_line::@15/bitmap_line::sy#0 )
|
|
|
|
bitmap_line::x2#9 = phi( bitmap_line::@15/bitmap_line::x2#10 )
|
|
|
|
bitmap_line::dx#13 = phi( bitmap_line::@15/bitmap_line::dx#2 )
|
|
|
|
bitmap_line::sx#7 = phi( bitmap_line::@15/bitmap_line::sx#8 )
|
|
|
|
bitmap_line::y#14 = phi( bitmap_line::@15/bitmap_line::y#17 )
|
|
|
|
bitmap_line::x#14 = phi( bitmap_line::@15/bitmap_line::x#17 )
|
|
|
|
bitmap_line::dy#2 = phi( bitmap_line::@15/bitmap_line::dy#1 )
|
2021-07-27 17:11:14 +00:00
|
|
|
bitmap_line::e1#0 = bitmap_line::dy#2 / 2
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@9
|
|
|
|
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@15
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sx#9 = phi( bitmap_line::@15/bitmap_line::sx#8 )
|
|
|
|
bitmap_line::y2#10 = phi( bitmap_line::@15/bitmap_line::y2#11 )
|
|
|
|
bitmap_line::dy#10 = phi( bitmap_line::@15/bitmap_line::dy#1 )
|
|
|
|
bitmap_line::sy#5 = phi( bitmap_line::@15/bitmap_line::sy#0 )
|
|
|
|
bitmap_line::y#11 = phi( bitmap_line::@15/bitmap_line::y#17 )
|
|
|
|
bitmap_line::x#11 = phi( bitmap_line::@15/bitmap_line::x#17 )
|
|
|
|
bitmap_line::dx#3 = phi( bitmap_line::@15/bitmap_line::dx#2 )
|
2021-07-27 17:11:14 +00:00
|
|
|
bitmap_line::e#0 = bitmap_line::dx#3 / 2
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@6
|
|
|
|
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sx#5 = phi( bitmap_line::@5/bitmap_line::sx#9, bitmap_line::@7/bitmap_line::sx#10 )
|
|
|
|
bitmap_line::y2#9 = phi( bitmap_line::@5/bitmap_line::y2#10, bitmap_line::@7/bitmap_line::y2#3 )
|
|
|
|
bitmap_line::dy#7 = phi( bitmap_line::@5/bitmap_line::dy#10, bitmap_line::@7/bitmap_line::dy#11 )
|
|
|
|
bitmap_line::dx#8 = phi( bitmap_line::@5/bitmap_line::dx#3, bitmap_line::@7/bitmap_line::dx#11 )
|
|
|
|
bitmap_line::e#5 = phi( bitmap_line::@5/bitmap_line::e#0, bitmap_line::@7/bitmap_line::e#6 )
|
|
|
|
bitmap_line::sy#3 = phi( bitmap_line::@5/bitmap_line::sy#5, bitmap_line::@7/bitmap_line::sy#6 )
|
|
|
|
bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y#11, bitmap_line::@7/bitmap_line::y#6 )
|
|
|
|
bitmap_line::x#4 = phi( bitmap_line::@5/bitmap_line::x#11, bitmap_line::@7/bitmap_line::x#12 )
|
|
|
|
bitmap_plot::x#1 = bitmap_line::x#4
|
2021-08-10 15:48:55 +00:00
|
|
|
bitmap_plot::y#1 = (char)bitmap_line::y#4
|
|
|
|
call bitmap_plot
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@17
|
|
|
|
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@6
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sx#3 = phi( bitmap_line::@6/bitmap_line::sx#5 )
|
|
|
|
bitmap_line::x#13 = phi( bitmap_line::@6/bitmap_line::x#4 )
|
|
|
|
bitmap_line::y2#6 = phi( bitmap_line::@6/bitmap_line::y2#9 )
|
|
|
|
bitmap_line::dy#3 = phi( bitmap_line::@6/bitmap_line::dy#7 )
|
|
|
|
bitmap_line::dx#4 = phi( bitmap_line::@6/bitmap_line::dx#8 )
|
|
|
|
bitmap_line::e#3 = phi( bitmap_line::@6/bitmap_line::e#5 )
|
|
|
|
bitmap_line::sy#1 = phi( bitmap_line::@6/bitmap_line::sy#3 )
|
|
|
|
bitmap_line::y#5 = phi( bitmap_line::@6/bitmap_line::y#4 )
|
|
|
|
bitmap_line::y#1 = bitmap_line::y#5 + bitmap_line::sy#1
|
|
|
|
bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#4
|
|
|
|
bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1
|
|
|
|
bitmap_line::$18 = ! bitmap_line::$17
|
|
|
|
if(bitmap_line::$18) goto bitmap_line::@7
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@8
|
|
|
|
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@17 bitmap_line::@8
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sx#10 = phi( bitmap_line::@17/bitmap_line::sx#3, bitmap_line::@8/bitmap_line::sx#1 )
|
|
|
|
bitmap_line::dy#11 = phi( bitmap_line::@17/bitmap_line::dy#3, bitmap_line::@8/bitmap_line::dy#4 )
|
|
|
|
bitmap_line::dx#11 = phi( bitmap_line::@17/bitmap_line::dx#4, bitmap_line::@8/bitmap_line::dx#14 )
|
|
|
|
bitmap_line::e#6 = phi( bitmap_line::@17/bitmap_line::e#1, bitmap_line::@8/bitmap_line::e#2 )
|
|
|
|
bitmap_line::sy#6 = phi( bitmap_line::@17/bitmap_line::sy#1, bitmap_line::@8/bitmap_line::sy#8 )
|
|
|
|
bitmap_line::x#12 = phi( bitmap_line::@17/bitmap_line::x#13, bitmap_line::@8/bitmap_line::x#1 )
|
|
|
|
bitmap_line::y2#3 = phi( bitmap_line::@17/bitmap_line::y2#6, bitmap_line::@8/bitmap_line::y2#7 )
|
|
|
|
bitmap_line::y#6 = phi( bitmap_line::@17/bitmap_line::y#1, bitmap_line::@8/bitmap_line::y#12 )
|
|
|
|
bitmap_line::$19 = bitmap_line::y#6 != bitmap_line::y2#3
|
|
|
|
if(bitmap_line::$19) goto bitmap_line::@6
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@3
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@17
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::dx#14 = phi( bitmap_line::@17/bitmap_line::dx#4 )
|
|
|
|
bitmap_line::sy#8 = phi( bitmap_line::@17/bitmap_line::sy#1 )
|
|
|
|
bitmap_line::y2#7 = phi( bitmap_line::@17/bitmap_line::y2#6 )
|
|
|
|
bitmap_line::y#12 = phi( bitmap_line::@17/bitmap_line::y#1 )
|
|
|
|
bitmap_line::dy#4 = phi( bitmap_line::@17/bitmap_line::dy#3 )
|
|
|
|
bitmap_line::e#4 = phi( bitmap_line::@17/bitmap_line::e#1 )
|
|
|
|
bitmap_line::sx#1 = phi( bitmap_line::@17/bitmap_line::sx#3 )
|
|
|
|
bitmap_line::x#5 = phi( bitmap_line::@17/bitmap_line::x#13 )
|
|
|
|
bitmap_line::x#1 = bitmap_line::x#5 + bitmap_line::sx#1
|
|
|
|
bitmap_line::e#2 = bitmap_line::e#4 - bitmap_line::dy#4
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@7
|
|
|
|
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#6 )
|
|
|
|
bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@7/bitmap_line::x#12 )
|
|
|
|
bitmap_plot::x#2 = bitmap_line::x#6
|
2021-08-10 15:48:55 +00:00
|
|
|
bitmap_plot::y#2 = (char)bitmap_line::y#7
|
|
|
|
call bitmap_plot
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@18
|
|
|
|
bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@3
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@return
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sy#7 = phi( bitmap_line::@10/bitmap_line::sy#9, bitmap_line::@2/bitmap_line::sy#10 )
|
|
|
|
bitmap_line::x2#8 = phi( bitmap_line::@10/bitmap_line::x2#3, bitmap_line::@2/bitmap_line::x2#9 )
|
|
|
|
bitmap_line::dx#9 = phi( bitmap_line::@10/bitmap_line::dx#12, bitmap_line::@2/bitmap_line::dx#13 )
|
|
|
|
bitmap_line::dy#8 = phi( bitmap_line::@10/bitmap_line::dy#12, bitmap_line::@2/bitmap_line::dy#2 )
|
|
|
|
bitmap_line::e1#5 = phi( bitmap_line::@10/bitmap_line::e1#6, bitmap_line::@2/bitmap_line::e1#0 )
|
|
|
|
bitmap_line::sx#4 = phi( bitmap_line::@10/bitmap_line::sx#6, bitmap_line::@2/bitmap_line::sx#7 )
|
|
|
|
bitmap_line::y#8 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y#14 )
|
|
|
|
bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@2/bitmap_line::x#14 )
|
|
|
|
bitmap_plot::x#3 = bitmap_line::x#7
|
2021-08-10 15:48:55 +00:00
|
|
|
bitmap_plot::y#3 = (char)bitmap_line::y#8
|
|
|
|
call bitmap_plot
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@19
|
|
|
|
bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@9
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sy#4 = phi( bitmap_line::@9/bitmap_line::sy#7 )
|
|
|
|
bitmap_line::y#15 = phi( bitmap_line::@9/bitmap_line::y#8 )
|
|
|
|
bitmap_line::x2#6 = phi( bitmap_line::@9/bitmap_line::x2#8 )
|
|
|
|
bitmap_line::dx#5 = phi( bitmap_line::@9/bitmap_line::dx#9 )
|
|
|
|
bitmap_line::dy#5 = phi( bitmap_line::@9/bitmap_line::dy#8 )
|
|
|
|
bitmap_line::e1#3 = phi( bitmap_line::@9/bitmap_line::e1#5 )
|
|
|
|
bitmap_line::sx#2 = phi( bitmap_line::@9/bitmap_line::sx#4 )
|
|
|
|
bitmap_line::x#8 = phi( bitmap_line::@9/bitmap_line::x#7 )
|
|
|
|
bitmap_line::x#2 = bitmap_line::x#8 + bitmap_line::sx#2
|
|
|
|
bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#5
|
|
|
|
bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1
|
|
|
|
bitmap_line::$23 = ! bitmap_line::$22
|
|
|
|
if(bitmap_line::$23) goto bitmap_line::@10
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@11
|
|
|
|
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@19
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::sy#9 = phi( bitmap_line::@11/bitmap_line::sy#2, bitmap_line::@19/bitmap_line::sy#4 )
|
|
|
|
bitmap_line::dx#12 = phi( bitmap_line::@11/bitmap_line::dx#6, bitmap_line::@19/bitmap_line::dx#5 )
|
|
|
|
bitmap_line::dy#12 = phi( bitmap_line::@11/bitmap_line::dy#13, bitmap_line::@19/bitmap_line::dy#5 )
|
|
|
|
bitmap_line::e1#6 = phi( bitmap_line::@11/bitmap_line::e1#2, bitmap_line::@19/bitmap_line::e1#1 )
|
|
|
|
bitmap_line::sx#6 = phi( bitmap_line::@11/bitmap_line::sx#11, bitmap_line::@19/bitmap_line::sx#2 )
|
|
|
|
bitmap_line::y#13 = phi( bitmap_line::@11/bitmap_line::y#2, bitmap_line::@19/bitmap_line::y#15 )
|
|
|
|
bitmap_line::x2#3 = phi( bitmap_line::@11/bitmap_line::x2#5, bitmap_line::@19/bitmap_line::x2#6 )
|
|
|
|
bitmap_line::x#9 = phi( bitmap_line::@11/bitmap_line::x#15, bitmap_line::@19/bitmap_line::x#2 )
|
|
|
|
bitmap_line::$24 = bitmap_line::x#9 != bitmap_line::x2#3
|
|
|
|
if(bitmap_line::$24) goto bitmap_line::@9
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@3
|
2020-04-25 18:10:49 +00:00
|
|
|
bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@19
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_line::dy#13 = phi( bitmap_line::@19/bitmap_line::dy#5 )
|
|
|
|
bitmap_line::sx#11 = phi( bitmap_line::@19/bitmap_line::sx#2 )
|
|
|
|
bitmap_line::x2#5 = phi( bitmap_line::@19/bitmap_line::x2#6 )
|
|
|
|
bitmap_line::x#15 = phi( bitmap_line::@19/bitmap_line::x#2 )
|
|
|
|
bitmap_line::dx#6 = phi( bitmap_line::@19/bitmap_line::dx#5 )
|
|
|
|
bitmap_line::e1#4 = phi( bitmap_line::@19/bitmap_line::e1#1 )
|
|
|
|
bitmap_line::sy#2 = phi( bitmap_line::@19/bitmap_line::sy#4 )
|
|
|
|
bitmap_line::y#9 = phi( bitmap_line::@19/bitmap_line::y#15 )
|
|
|
|
bitmap_line::y#2 = bitmap_line::y#9 + bitmap_line::sy#2
|
|
|
|
bitmap_line::e1#2 = bitmap_line::e1#4 - bitmap_line::dx#6
|
2020-04-25 18:10:49 +00:00
|
|
|
to:bitmap_line::@10
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void * memset(void *str , char c , unsigned int num)
|
2021-05-11 21:11:51 +00:00
|
|
|
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
|
|
|
|
memset::c#5 = phi( bitmap_clear/memset::c#0, bitmap_clear::@1/memset::c#1 )
|
|
|
|
memset::str#4 = phi( bitmap_clear/memset::str#0, bitmap_clear::@1/memset::str#1 )
|
|
|
|
memset::num#2 = phi( bitmap_clear/memset::num#0, bitmap_clear::@1/memset::num#1 )
|
|
|
|
memset::$0 = memset::num#2 > 0
|
|
|
|
memset::$1 = ! memset::$0
|
|
|
|
if(memset::$1) goto memset::@1
|
|
|
|
to:memset::@2
|
|
|
|
memset::@1: scope:[memset] from memset memset::@3
|
|
|
|
memset::str#2 = phi( memset/memset::str#4, memset::@3/memset::str#5 )
|
|
|
|
memset::return#2 = memset::str#2
|
|
|
|
to:memset::@return
|
|
|
|
memset::@2: scope:[memset] from memset
|
|
|
|
memset::c#4 = phi( memset/memset::c#5 )
|
|
|
|
memset::num#3 = phi( memset/memset::num#2 )
|
|
|
|
memset::str#3 = phi( memset/memset::str#4 )
|
2021-08-10 15:48:55 +00:00
|
|
|
memset::$4 = (char *)memset::str#3
|
2021-07-27 17:11:14 +00:00
|
|
|
memset::end#0 = memset::$4 + memset::num#3
|
2021-08-10 15:48:55 +00:00
|
|
|
memset::dst#0 = ((char *)) memset::str#3
|
2021-05-11 21:11:51 +00:00
|
|
|
to:memset::@3
|
|
|
|
memset::@3: scope:[memset] from memset::@2 memset::@4
|
|
|
|
memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 )
|
|
|
|
memset::str#5 = phi( memset::@2/memset::str#3, memset::@4/memset::str#6 )
|
|
|
|
memset::end#1 = phi( memset::@2/memset::end#0, memset::@4/memset::end#2 )
|
|
|
|
memset::dst#2 = phi( memset::@2/memset::dst#0, memset::@4/memset::dst#1 )
|
|
|
|
memset::$3 = memset::dst#2 != memset::end#1
|
|
|
|
if(memset::$3) goto memset::@4
|
|
|
|
to:memset::@1
|
|
|
|
memset::@4: scope:[memset] from memset::@3
|
|
|
|
memset::str#6 = phi( memset::@3/memset::str#5 )
|
|
|
|
memset::end#2 = phi( memset::@3/memset::end#1 )
|
|
|
|
memset::dst#3 = phi( memset::@3/memset::dst#2 )
|
|
|
|
memset::c#2 = phi( memset::@3/memset::c#3 )
|
|
|
|
*memset::dst#3 = memset::c#2
|
|
|
|
memset::dst#1 = ++ memset::dst#3
|
|
|
|
to:memset::@3
|
|
|
|
memset::@return: scope:[memset] from memset::@1
|
|
|
|
memset::return#4 = phi( memset::@1/memset::return#2 )
|
|
|
|
memset::return#3 = memset::return#4
|
|
|
|
return
|
|
|
|
to:@return
|
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int abs_u16(unsigned int w)
|
2020-04-25 18:10:49 +00:00
|
|
|
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
|
2020-10-05 20:58:02 +00:00
|
|
|
abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 )
|
2021-06-13 12:24:57 +00:00
|
|
|
abs_u16::$0 = byte1 abs_u16::w#2
|
2020-10-05 20:58:02 +00:00
|
|
|
abs_u16::$1 = abs_u16::$0 & $80
|
|
|
|
abs_u16::$3 = 0 != abs_u16::$1
|
|
|
|
if(abs_u16::$3) goto abs_u16::@1
|
2020-04-25 18:10:49 +00:00
|
|
|
to:abs_u16::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
abs_u16::@1: scope:[abs_u16] from abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
abs_u16::w#3 = phi( abs_u16/abs_u16::w#2 )
|
|
|
|
abs_u16::$2 = - abs_u16::w#3
|
|
|
|
abs_u16::return#2 = abs_u16::$2
|
2019-09-18 19:53:32 +00:00
|
|
|
to:abs_u16::@return
|
2020-04-25 18:10:49 +00:00
|
|
|
abs_u16::@2: scope:[abs_u16] from abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
abs_u16::w#4 = phi( abs_u16/abs_u16::w#2 )
|
|
|
|
abs_u16::return#3 = abs_u16::w#4
|
2019-09-18 19:53:32 +00:00
|
|
|
to:abs_u16::@return
|
2020-04-25 18:10:49 +00:00
|
|
|
abs_u16::@return: scope:[abs_u16] from abs_u16::@1 abs_u16::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
abs_u16::return#7 = phi( abs_u16::@1/abs_u16::return#2, abs_u16::@2/abs_u16::return#3 )
|
|
|
|
abs_u16::return#4 = abs_u16::return#7
|
2019-09-18 19:53:32 +00:00
|
|
|
return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int sgn_u16(unsigned int w)
|
2020-04-25 18:10:49 +00:00
|
|
|
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
|
2020-10-05 20:58:02 +00:00
|
|
|
sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 )
|
2021-06-13 12:24:57 +00:00
|
|
|
sgn_u16::$0 = byte1 sgn_u16::w#2
|
2020-10-05 20:58:02 +00:00
|
|
|
sgn_u16::$1 = sgn_u16::$0 & $80
|
|
|
|
sgn_u16::$2 = 0 != sgn_u16::$1
|
|
|
|
if(sgn_u16::$2) goto sgn_u16::@1
|
2020-04-25 18:10:49 +00:00
|
|
|
to:sgn_u16::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
sgn_u16::@1: scope:[sgn_u16] from sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
sgn_u16::return#2 = -1
|
2019-09-18 19:53:32 +00:00
|
|
|
to:sgn_u16::@return
|
2020-04-25 18:10:49 +00:00
|
|
|
sgn_u16::@2: scope:[sgn_u16] from sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
sgn_u16::return#3 = 1
|
2019-09-18 19:53:32 +00:00
|
|
|
to:sgn_u16::@return
|
2020-04-25 18:10:49 +00:00
|
|
|
sgn_u16::@return: scope:[sgn_u16] from sgn_u16::@1 sgn_u16::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
sgn_u16::return#7 = phi( sgn_u16::@1/sgn_u16::return#2, sgn_u16::@2/sgn_u16::return#3 )
|
|
|
|
sgn_u16::return#4 = sgn_u16::return#7
|
2019-09-18 19:53:32 +00:00
|
|
|
return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2020-10-05 20:58:02 +00:00
|
|
|
void main()
|
2020-06-27 20:36:52 +00:00
|
|
|
main: scope:[main] from __start::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
next#15 = phi( __start::@1/next#13 )
|
|
|
|
bitmap_screen#14 = phi( __start::@1/bitmap_screen#16 )
|
|
|
|
bitmap_gfx#15 = phi( __start::@1/bitmap_gfx#17 )
|
|
|
|
*BORDER_COLOR = 0
|
|
|
|
*BG_COLOR = 0
|
2020-12-29 18:37:32 +00:00
|
|
|
*D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
|
2021-08-10 15:48:55 +00:00
|
|
|
*VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_init::gfx#0 = BITMAP
|
|
|
|
bitmap_init::screen#0 = SCREEN
|
2021-08-10 15:48:55 +00:00
|
|
|
call bitmap_init
|
2020-04-25 18:10:49 +00:00
|
|
|
to:main::@4
|
|
|
|
main::@4: scope:[main] from main
|
2020-10-05 20:58:02 +00:00
|
|
|
next#14 = phi( main/next#15 )
|
|
|
|
bitmap_screen#9 = phi( main/bitmap_screen#1 )
|
|
|
|
bitmap_gfx#9 = phi( main/bitmap_gfx#1 )
|
|
|
|
bitmap_gfx#2 = bitmap_gfx#9
|
|
|
|
bitmap_screen#2 = bitmap_screen#9
|
|
|
|
bitmap_clear::bgcol#0 = PURPLE
|
|
|
|
bitmap_clear::fgcol#0 = WHITE
|
2021-08-10 15:48:55 +00:00
|
|
|
call bitmap_clear
|
2020-04-25 18:10:49 +00:00
|
|
|
to:main::@5
|
|
|
|
main::@5: scope:[main] from main::@4
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#24 = phi( main::@4/bitmap_screen#2 )
|
|
|
|
bitmap_gfx#25 = phi( main::@4/bitmap_gfx#2 )
|
|
|
|
next#12 = phi( main::@4/next#14 )
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@1
|
2020-04-25 18:10:49 +00:00
|
|
|
main::@1: scope:[main] from main::@2 main::@5
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#22 = phi( main::@2/bitmap_screen#15, main::@5/bitmap_screen#24 )
|
|
|
|
bitmap_gfx#23 = phi( main::@2/bitmap_gfx#16, main::@5/bitmap_gfx#25 )
|
|
|
|
next#6 = phi( main::@2/next#11, main::@5/next#12 )
|
|
|
|
bitmap_line::x1#0 = 0
|
|
|
|
bitmap_line::y1#0 = 0
|
|
|
|
bitmap_line::x2#0 = next#6
|
|
|
|
bitmap_line::y2#0 = $64
|
2021-08-10 15:48:55 +00:00
|
|
|
call bitmap_line
|
2020-04-25 18:10:49 +00:00
|
|
|
to:main::@6
|
|
|
|
main::@6: scope:[main] from main::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#20 = phi( main::@1/bitmap_screen#22 )
|
|
|
|
bitmap_gfx#21 = phi( main::@1/bitmap_gfx#23 )
|
|
|
|
next#7 = phi( main::@1/next#6 )
|
|
|
|
next#0 = ++ next#7
|
|
|
|
main::$3 = next#0 == $140
|
|
|
|
main::$4 = ! main::$3
|
|
|
|
if(main::$4) goto main::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@3
|
2020-04-25 18:10:49 +00:00
|
|
|
main::@2: scope:[main] from main::@3 main::@6
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#15 = phi( main::@3/bitmap_screen#19, main::@6/bitmap_screen#20 )
|
|
|
|
bitmap_gfx#16 = phi( main::@3/bitmap_gfx#20, main::@6/bitmap_gfx#21 )
|
|
|
|
next#11 = phi( main::@3/next#1, main::@6/next#0 )
|
2019-09-18 19:53:32 +00:00
|
|
|
if(true) goto main::@1
|
|
|
|
to:main::@return
|
2020-04-25 18:10:49 +00:00
|
|
|
main::@3: scope:[main] from main::@6
|
2020-10-05 20:58:02 +00:00
|
|
|
bitmap_screen#19 = phi( main::@6/bitmap_screen#20 )
|
|
|
|
bitmap_gfx#20 = phi( main::@6/bitmap_gfx#21 )
|
|
|
|
next#1 = 0
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@2
|
|
|
|
main::@return: scope:[main] from main::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
next#8 = phi( main::@2/next#11 )
|
|
|
|
bitmap_screen#10 = phi( main::@2/bitmap_screen#15 )
|
|
|
|
bitmap_gfx#10 = phi( main::@2/bitmap_gfx#16 )
|
|
|
|
bitmap_gfx#3 = bitmap_gfx#10
|
|
|
|
bitmap_screen#3 = bitmap_screen#10
|
|
|
|
next#2 = next#8
|
2019-09-18 19:53:32 +00:00
|
|
|
return
|
|
|
|
to:@return
|
2020-06-27 19:18:00 +00:00
|
|
|
|
2020-10-05 20:58:02 +00:00
|
|
|
void __start()
|
2020-06-27 20:36:52 +00:00
|
|
|
__start: scope:[__start] from
|
|
|
|
to:__start::__init1
|
|
|
|
__start::__init1: scope:[__start] from __start
|
2021-08-10 15:48:55 +00:00
|
|
|
bitmap_screen#4 = (char *) 0
|
|
|
|
bitmap_gfx#4 = (char *) 0
|
2020-10-05 20:58:02 +00:00
|
|
|
next#3 = 0
|
2020-06-27 20:36:52 +00:00
|
|
|
to:__start::@1
|
|
|
|
__start::@1: scope:[__start] from __start::__init1
|
2020-10-05 20:58:02 +00:00
|
|
|
next#13 = phi( __start::__init1/next#3 )
|
|
|
|
bitmap_screen#16 = phi( __start::__init1/bitmap_screen#4 )
|
|
|
|
bitmap_gfx#17 = phi( __start::__init1/bitmap_gfx#4 )
|
2021-08-10 15:48:55 +00:00
|
|
|
call main
|
2020-06-27 20:36:52 +00:00
|
|
|
to:__start::@2
|
|
|
|
__start::@2: scope:[__start] from __start::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
next#9 = phi( __start::@1/next#2 )
|
|
|
|
bitmap_screen#11 = phi( __start::@1/bitmap_screen#3 )
|
|
|
|
bitmap_gfx#11 = phi( __start::@1/bitmap_gfx#3 )
|
|
|
|
bitmap_gfx#5 = bitmap_gfx#11
|
|
|
|
bitmap_screen#5 = bitmap_screen#11
|
|
|
|
next#4 = next#9
|
2020-06-27 20:36:52 +00:00
|
|
|
to:__start::@return
|
|
|
|
__start::@return: scope:[__start] from __start::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
next#10 = phi( __start::@2/next#4 )
|
|
|
|
bitmap_gfx#12 = phi( __start::@2/bitmap_gfx#5 )
|
|
|
|
bitmap_screen#12 = phi( __start::@2/bitmap_screen#5 )
|
|
|
|
bitmap_screen#6 = bitmap_screen#12
|
|
|
|
bitmap_gfx#6 = bitmap_gfx#12
|
|
|
|
next#5 = next#10
|
2020-06-27 19:18:00 +00:00
|
|
|
return
|
|
|
|
to:@return
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
SYMBOL TABLE SSA
|
2021-08-10 15:48:55 +00:00
|
|
|
__constant char * const BG_COLOR = (char *)$d021
|
|
|
|
__constant char * const BITMAP = (char *)$2000
|
|
|
|
__constant char * const BORDER_COLOR = (char *)$d020
|
|
|
|
__constant char * const D011 = (char *)$d011
|
|
|
|
__constant const char PURPLE = 4
|
|
|
|
__constant char * const SCREEN = (char *)$400
|
|
|
|
__constant const char VICII_BMM = $20
|
|
|
|
__constant const char VICII_DEN = $10
|
|
|
|
__constant char * const VICII_MEMORY = (char *)$d018
|
|
|
|
__constant const char VICII_RSEL = 8
|
|
|
|
__constant const char WHITE = 1
|
2020-10-05 20:58:02 +00:00
|
|
|
void __start()
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int abs_u16(unsigned int w)
|
|
|
|
char abs_u16::$0
|
|
|
|
number abs_u16::$1
|
|
|
|
unsigned int abs_u16::$2
|
|
|
|
bool abs_u16::$3
|
|
|
|
unsigned int abs_u16::return
|
|
|
|
unsigned int abs_u16::return#0
|
|
|
|
unsigned int abs_u16::return#1
|
|
|
|
unsigned int abs_u16::return#2
|
|
|
|
unsigned int abs_u16::return#3
|
|
|
|
unsigned int abs_u16::return#4
|
|
|
|
unsigned int abs_u16::return#5
|
|
|
|
unsigned int abs_u16::return#6
|
|
|
|
unsigned int abs_u16::return#7
|
|
|
|
unsigned int abs_u16::w
|
|
|
|
unsigned int abs_u16::w#0
|
|
|
|
unsigned int abs_u16::w#1
|
|
|
|
unsigned int abs_u16::w#2
|
|
|
|
unsigned int abs_u16::w#3
|
|
|
|
unsigned int abs_u16::w#4
|
|
|
|
void bitmap_clear(char bgcol , char fgcol)
|
|
|
|
number bitmap_clear::$0
|
|
|
|
char bitmap_clear::bgcol
|
|
|
|
char bitmap_clear::bgcol#0
|
|
|
|
char bitmap_clear::bgcol#1
|
|
|
|
char bitmap_clear::col
|
|
|
|
char bitmap_clear::col#0
|
|
|
|
char bitmap_clear::fgcol
|
|
|
|
char bitmap_clear::fgcol#0
|
|
|
|
char bitmap_clear::fgcol#1
|
|
|
|
char *bitmap_gfx
|
|
|
|
char *bitmap_gfx#0
|
|
|
|
char *bitmap_gfx#1
|
|
|
|
char *bitmap_gfx#10
|
|
|
|
char *bitmap_gfx#11
|
|
|
|
char *bitmap_gfx#12
|
|
|
|
char *bitmap_gfx#13
|
|
|
|
char *bitmap_gfx#14
|
|
|
|
char *bitmap_gfx#15
|
|
|
|
char *bitmap_gfx#16
|
|
|
|
char *bitmap_gfx#17
|
|
|
|
char *bitmap_gfx#18
|
|
|
|
char *bitmap_gfx#19
|
|
|
|
char *bitmap_gfx#2
|
|
|
|
char *bitmap_gfx#20
|
|
|
|
char *bitmap_gfx#21
|
|
|
|
char *bitmap_gfx#22
|
|
|
|
char *bitmap_gfx#23
|
|
|
|
char *bitmap_gfx#24
|
|
|
|
char *bitmap_gfx#25
|
|
|
|
char *bitmap_gfx#26
|
|
|
|
char *bitmap_gfx#27
|
|
|
|
char *bitmap_gfx#3
|
|
|
|
char *bitmap_gfx#4
|
|
|
|
char *bitmap_gfx#5
|
|
|
|
char *bitmap_gfx#6
|
|
|
|
char *bitmap_gfx#7
|
|
|
|
char *bitmap_gfx#8
|
|
|
|
char *bitmap_gfx#9
|
|
|
|
void bitmap_init(char *gfx , char *screen)
|
|
|
|
bool bitmap_init::$0
|
|
|
|
bool bitmap_init::$1
|
|
|
|
char *bitmap_init::$10
|
|
|
|
bool bitmap_init::$11
|
|
|
|
bool bitmap_init::$2
|
|
|
|
number bitmap_init::$3
|
|
|
|
char bitmap_init::$4
|
|
|
|
number bitmap_init::$5
|
|
|
|
char bitmap_init::$6
|
|
|
|
number bitmap_init::$7
|
|
|
|
bool bitmap_init::$8
|
|
|
|
bool bitmap_init::$9
|
|
|
|
char bitmap_init::bits
|
|
|
|
char bitmap_init::bits#0
|
|
|
|
char bitmap_init::bits#1
|
|
|
|
char bitmap_init::bits#2
|
|
|
|
char bitmap_init::bits#3
|
|
|
|
char bitmap_init::bits#4
|
|
|
|
char *bitmap_init::gfx
|
|
|
|
char *bitmap_init::gfx#0
|
|
|
|
char *bitmap_init::gfx#1
|
|
|
|
char *bitmap_init::gfx#2
|
|
|
|
char *bitmap_init::gfx#3
|
|
|
|
char *bitmap_init::gfx#4
|
|
|
|
char *bitmap_init::gfx#5
|
|
|
|
char *bitmap_init::screen
|
|
|
|
char *bitmap_init::screen#0
|
|
|
|
char *bitmap_init::screen#1
|
|
|
|
char bitmap_init::x
|
|
|
|
char bitmap_init::x#0
|
|
|
|
char bitmap_init::x#1
|
|
|
|
char bitmap_init::x#2
|
|
|
|
char bitmap_init::x#3
|
|
|
|
char bitmap_init::x#4
|
|
|
|
char bitmap_init::y
|
|
|
|
char bitmap_init::y#0
|
|
|
|
char bitmap_init::y#1
|
|
|
|
char bitmap_init::y#2
|
|
|
|
char bitmap_init::y#3
|
|
|
|
char bitmap_init::y#4
|
|
|
|
char *bitmap_init::yoffs
|
|
|
|
char *bitmap_init::yoffs#0
|
|
|
|
char *bitmap_init::yoffs#1
|
|
|
|
char *bitmap_init::yoffs#2
|
|
|
|
char *bitmap_init::yoffs#3
|
|
|
|
char *bitmap_init::yoffs#4
|
|
|
|
void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2)
|
|
|
|
unsigned int bitmap_line::$0
|
|
|
|
unsigned int bitmap_line::$10
|
|
|
|
bool bitmap_line::$12
|
|
|
|
bool bitmap_line::$17
|
|
|
|
bool bitmap_line::$18
|
|
|
|
bool bitmap_line::$19
|
|
|
|
unsigned int bitmap_line::$2
|
|
|
|
bool bitmap_line::$22
|
|
|
|
bool bitmap_line::$23
|
|
|
|
bool bitmap_line::$24
|
|
|
|
bool bitmap_line::$4
|
|
|
|
bool bitmap_line::$5
|
|
|
|
bool bitmap_line::$6
|
|
|
|
bool bitmap_line::$7
|
|
|
|
unsigned int bitmap_line::$8
|
|
|
|
unsigned int bitmap_line::dx
|
|
|
|
unsigned int bitmap_line::dx#0
|
|
|
|
unsigned int bitmap_line::dx#1
|
|
|
|
unsigned int bitmap_line::dx#10
|
|
|
|
unsigned int bitmap_line::dx#11
|
|
|
|
unsigned int bitmap_line::dx#12
|
|
|
|
unsigned int bitmap_line::dx#13
|
|
|
|
unsigned int bitmap_line::dx#14
|
|
|
|
unsigned int bitmap_line::dx#2
|
|
|
|
unsigned int bitmap_line::dx#3
|
|
|
|
unsigned int bitmap_line::dx#4
|
|
|
|
unsigned int bitmap_line::dx#5
|
|
|
|
unsigned int bitmap_line::dx#6
|
|
|
|
unsigned int bitmap_line::dx#7
|
|
|
|
unsigned int bitmap_line::dx#8
|
|
|
|
unsigned int bitmap_line::dx#9
|
|
|
|
unsigned int bitmap_line::dy
|
|
|
|
unsigned int bitmap_line::dy#0
|
|
|
|
unsigned int bitmap_line::dy#1
|
|
|
|
unsigned int bitmap_line::dy#10
|
|
|
|
unsigned int bitmap_line::dy#11
|
|
|
|
unsigned int bitmap_line::dy#12
|
|
|
|
unsigned int bitmap_line::dy#13
|
|
|
|
unsigned int bitmap_line::dy#2
|
|
|
|
unsigned int bitmap_line::dy#3
|
|
|
|
unsigned int bitmap_line::dy#4
|
|
|
|
unsigned int bitmap_line::dy#5
|
|
|
|
unsigned int bitmap_line::dy#6
|
|
|
|
unsigned int bitmap_line::dy#7
|
|
|
|
unsigned int bitmap_line::dy#8
|
|
|
|
unsigned int bitmap_line::dy#9
|
|
|
|
unsigned int bitmap_line::e
|
|
|
|
unsigned int bitmap_line::e#0
|
|
|
|
unsigned int bitmap_line::e#1
|
|
|
|
unsigned int bitmap_line::e#2
|
|
|
|
unsigned int bitmap_line::e#3
|
|
|
|
unsigned int bitmap_line::e#4
|
|
|
|
unsigned int bitmap_line::e#5
|
|
|
|
unsigned int bitmap_line::e#6
|
|
|
|
unsigned int bitmap_line::e1
|
|
|
|
unsigned int bitmap_line::e1#0
|
|
|
|
unsigned int bitmap_line::e1#1
|
|
|
|
unsigned int bitmap_line::e1#2
|
|
|
|
unsigned int bitmap_line::e1#3
|
|
|
|
unsigned int bitmap_line::e1#4
|
|
|
|
unsigned int bitmap_line::e1#5
|
|
|
|
unsigned int bitmap_line::e1#6
|
|
|
|
unsigned int bitmap_line::sx
|
|
|
|
unsigned int bitmap_line::sx#0
|
|
|
|
unsigned int bitmap_line::sx#1
|
|
|
|
unsigned int bitmap_line::sx#10
|
|
|
|
unsigned int bitmap_line::sx#11
|
|
|
|
unsigned int bitmap_line::sx#2
|
|
|
|
unsigned int bitmap_line::sx#3
|
|
|
|
unsigned int bitmap_line::sx#4
|
|
|
|
unsigned int bitmap_line::sx#5
|
|
|
|
unsigned int bitmap_line::sx#6
|
|
|
|
unsigned int bitmap_line::sx#7
|
|
|
|
unsigned int bitmap_line::sx#8
|
|
|
|
unsigned int bitmap_line::sx#9
|
|
|
|
unsigned int bitmap_line::sy
|
|
|
|
unsigned int bitmap_line::sy#0
|
|
|
|
unsigned int bitmap_line::sy#1
|
|
|
|
unsigned int bitmap_line::sy#10
|
|
|
|
unsigned int bitmap_line::sy#2
|
|
|
|
unsigned int bitmap_line::sy#3
|
|
|
|
unsigned int bitmap_line::sy#4
|
|
|
|
unsigned int bitmap_line::sy#5
|
|
|
|
unsigned int bitmap_line::sy#6
|
|
|
|
unsigned int bitmap_line::sy#7
|
|
|
|
unsigned int bitmap_line::sy#8
|
|
|
|
unsigned int bitmap_line::sy#9
|
|
|
|
unsigned int bitmap_line::x
|
|
|
|
unsigned int bitmap_line::x#0
|
|
|
|
unsigned int bitmap_line::x#1
|
|
|
|
unsigned int bitmap_line::x#10
|
|
|
|
unsigned int bitmap_line::x#11
|
|
|
|
unsigned int bitmap_line::x#12
|
|
|
|
unsigned int bitmap_line::x#13
|
|
|
|
unsigned int bitmap_line::x#14
|
|
|
|
unsigned int bitmap_line::x#15
|
|
|
|
unsigned int bitmap_line::x#16
|
|
|
|
unsigned int bitmap_line::x#17
|
|
|
|
unsigned int bitmap_line::x#18
|
|
|
|
unsigned int bitmap_line::x#19
|
|
|
|
unsigned int bitmap_line::x#2
|
|
|
|
unsigned int bitmap_line::x#3
|
|
|
|
unsigned int bitmap_line::x#4
|
|
|
|
unsigned int bitmap_line::x#5
|
|
|
|
unsigned int bitmap_line::x#6
|
|
|
|
unsigned int bitmap_line::x#7
|
|
|
|
unsigned int bitmap_line::x#8
|
|
|
|
unsigned int bitmap_line::x#9
|
|
|
|
unsigned int bitmap_line::x1
|
|
|
|
unsigned int bitmap_line::x1#0
|
|
|
|
unsigned int bitmap_line::x1#1
|
|
|
|
unsigned int bitmap_line::x1#2
|
|
|
|
unsigned int bitmap_line::x1#3
|
|
|
|
unsigned int bitmap_line::x1#4
|
|
|
|
unsigned int bitmap_line::x2
|
|
|
|
unsigned int bitmap_line::x2#0
|
|
|
|
unsigned int bitmap_line::x2#1
|
|
|
|
unsigned int bitmap_line::x2#10
|
|
|
|
unsigned int bitmap_line::x2#11
|
|
|
|
unsigned int bitmap_line::x2#2
|
|
|
|
unsigned int bitmap_line::x2#3
|
|
|
|
unsigned int bitmap_line::x2#4
|
|
|
|
unsigned int bitmap_line::x2#5
|
|
|
|
unsigned int bitmap_line::x2#6
|
|
|
|
unsigned int bitmap_line::x2#7
|
|
|
|
unsigned int bitmap_line::x2#8
|
|
|
|
unsigned int bitmap_line::x2#9
|
|
|
|
unsigned int bitmap_line::y
|
|
|
|
unsigned int bitmap_line::y#0
|
|
|
|
unsigned int bitmap_line::y#1
|
|
|
|
unsigned int bitmap_line::y#10
|
|
|
|
unsigned int bitmap_line::y#11
|
|
|
|
unsigned int bitmap_line::y#12
|
|
|
|
unsigned int bitmap_line::y#13
|
|
|
|
unsigned int bitmap_line::y#14
|
|
|
|
unsigned int bitmap_line::y#15
|
|
|
|
unsigned int bitmap_line::y#16
|
|
|
|
unsigned int bitmap_line::y#17
|
|
|
|
unsigned int bitmap_line::y#18
|
|
|
|
unsigned int bitmap_line::y#19
|
|
|
|
unsigned int bitmap_line::y#2
|
|
|
|
unsigned int bitmap_line::y#3
|
|
|
|
unsigned int bitmap_line::y#4
|
|
|
|
unsigned int bitmap_line::y#5
|
|
|
|
unsigned int bitmap_line::y#6
|
|
|
|
unsigned int bitmap_line::y#7
|
|
|
|
unsigned int bitmap_line::y#8
|
|
|
|
unsigned int bitmap_line::y#9
|
|
|
|
unsigned int bitmap_line::y1
|
|
|
|
unsigned int bitmap_line::y1#0
|
|
|
|
unsigned int bitmap_line::y1#1
|
|
|
|
unsigned int bitmap_line::y1#2
|
|
|
|
unsigned int bitmap_line::y1#3
|
|
|
|
unsigned int bitmap_line::y1#4
|
|
|
|
unsigned int bitmap_line::y1#5
|
|
|
|
unsigned int bitmap_line::y2
|
|
|
|
unsigned int bitmap_line::y2#0
|
|
|
|
unsigned int bitmap_line::y2#1
|
|
|
|
unsigned int bitmap_line::y2#10
|
|
|
|
unsigned int bitmap_line::y2#11
|
|
|
|
unsigned int bitmap_line::y2#2
|
|
|
|
unsigned int bitmap_line::y2#3
|
|
|
|
unsigned int bitmap_line::y2#4
|
|
|
|
unsigned int bitmap_line::y2#5
|
|
|
|
unsigned int bitmap_line::y2#6
|
|
|
|
unsigned int bitmap_line::y2#7
|
|
|
|
unsigned int bitmap_line::y2#8
|
|
|
|
unsigned int bitmap_line::y2#9
|
|
|
|
void bitmap_plot(unsigned int x , char y)
|
|
|
|
unsigned int bitmap_plot::$0
|
|
|
|
number bitmap_plot::$1
|
|
|
|
char bitmap_plot::$2
|
|
|
|
char *bitmap_plot::plotter
|
|
|
|
char *bitmap_plot::plotter#0
|
|
|
|
char *bitmap_plot::plotter#1
|
|
|
|
unsigned int bitmap_plot::x
|
|
|
|
unsigned int bitmap_plot::x#0
|
|
|
|
unsigned int bitmap_plot::x#1
|
|
|
|
unsigned int bitmap_plot::x#2
|
|
|
|
unsigned int bitmap_plot::x#3
|
|
|
|
unsigned int bitmap_plot::x#4
|
|
|
|
char bitmap_plot::y
|
|
|
|
char bitmap_plot::y#0
|
|
|
|
char bitmap_plot::y#1
|
|
|
|
char bitmap_plot::y#2
|
|
|
|
char bitmap_plot::y#3
|
|
|
|
char bitmap_plot::y#4
|
|
|
|
__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) }
|
|
|
|
__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) }
|
|
|
|
__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) }
|
|
|
|
char *bitmap_screen
|
|
|
|
char *bitmap_screen#0
|
|
|
|
char *bitmap_screen#1
|
|
|
|
char *bitmap_screen#10
|
|
|
|
char *bitmap_screen#11
|
|
|
|
char *bitmap_screen#12
|
|
|
|
char *bitmap_screen#13
|
|
|
|
char *bitmap_screen#14
|
|
|
|
char *bitmap_screen#15
|
|
|
|
char *bitmap_screen#16
|
|
|
|
char *bitmap_screen#17
|
|
|
|
char *bitmap_screen#18
|
|
|
|
char *bitmap_screen#19
|
|
|
|
char *bitmap_screen#2
|
|
|
|
char *bitmap_screen#20
|
|
|
|
char *bitmap_screen#21
|
|
|
|
char *bitmap_screen#22
|
|
|
|
char *bitmap_screen#23
|
|
|
|
char *bitmap_screen#24
|
|
|
|
char *bitmap_screen#25
|
|
|
|
char *bitmap_screen#26
|
|
|
|
char *bitmap_screen#3
|
|
|
|
char *bitmap_screen#4
|
|
|
|
char *bitmap_screen#5
|
|
|
|
char *bitmap_screen#6
|
|
|
|
char *bitmap_screen#7
|
|
|
|
char *bitmap_screen#8
|
|
|
|
char *bitmap_screen#9
|
2020-10-05 20:58:02 +00:00
|
|
|
void main()
|
2021-08-10 15:48:55 +00:00
|
|
|
bool main::$3
|
|
|
|
bool main::$4
|
|
|
|
void * memset(void *str , char c , unsigned int num)
|
|
|
|
bool memset::$0
|
|
|
|
bool memset::$1
|
|
|
|
bool memset::$3
|
|
|
|
char *memset::$4
|
|
|
|
char memset::c
|
|
|
|
char memset::c#0
|
|
|
|
char memset::c#1
|
|
|
|
char memset::c#2
|
|
|
|
char memset::c#3
|
|
|
|
char memset::c#4
|
|
|
|
char memset::c#5
|
|
|
|
char *memset::dst
|
|
|
|
char *memset::dst#0
|
|
|
|
char *memset::dst#1
|
|
|
|
char *memset::dst#2
|
|
|
|
char *memset::dst#3
|
|
|
|
char *memset::end
|
|
|
|
char *memset::end#0
|
|
|
|
char *memset::end#1
|
|
|
|
char *memset::end#2
|
|
|
|
unsigned int memset::num
|
|
|
|
unsigned int memset::num#0
|
|
|
|
unsigned int memset::num#1
|
|
|
|
unsigned int memset::num#2
|
|
|
|
unsigned int memset::num#3
|
|
|
|
void *memset::return
|
|
|
|
void *memset::return#0
|
|
|
|
void *memset::return#1
|
|
|
|
void *memset::return#2
|
|
|
|
void *memset::return#3
|
|
|
|
void *memset::return#4
|
|
|
|
void *memset::str
|
|
|
|
void *memset::str#0
|
|
|
|
void *memset::str#1
|
|
|
|
void *memset::str#2
|
|
|
|
void *memset::str#3
|
|
|
|
void *memset::str#4
|
|
|
|
void *memset::str#5
|
|
|
|
void *memset::str#6
|
|
|
|
unsigned int next
|
|
|
|
unsigned int next#0
|
|
|
|
unsigned int next#1
|
|
|
|
unsigned int next#10
|
|
|
|
unsigned int next#11
|
|
|
|
unsigned int next#12
|
|
|
|
unsigned int next#13
|
|
|
|
unsigned int next#14
|
|
|
|
unsigned int next#15
|
|
|
|
unsigned int next#2
|
|
|
|
unsigned int next#3
|
|
|
|
unsigned int next#4
|
|
|
|
unsigned int next#5
|
|
|
|
unsigned int next#6
|
|
|
|
unsigned int next#7
|
|
|
|
unsigned int next#8
|
|
|
|
unsigned int next#9
|
|
|
|
unsigned int sgn_u16(unsigned int w)
|
|
|
|
char sgn_u16::$0
|
|
|
|
number sgn_u16::$1
|
|
|
|
bool sgn_u16::$2
|
|
|
|
unsigned int sgn_u16::return
|
|
|
|
unsigned int sgn_u16::return#0
|
|
|
|
unsigned int sgn_u16::return#1
|
|
|
|
unsigned int sgn_u16::return#2
|
|
|
|
unsigned int sgn_u16::return#3
|
|
|
|
unsigned int sgn_u16::return#4
|
|
|
|
unsigned int sgn_u16::return#5
|
|
|
|
unsigned int sgn_u16::return#6
|
|
|
|
unsigned int sgn_u16::return#7
|
|
|
|
unsigned int sgn_u16::w
|
|
|
|
unsigned int sgn_u16::w#0
|
|
|
|
unsigned int sgn_u16::w#1
|
|
|
|
unsigned int sgn_u16::w#2
|
2019-09-18 19:53:32 +00:00
|
|
|
|
2020-10-05 20:58:02 +00:00
|
|
|
Adding number conversion cast (unumber) 1 in bitmap_init::bits#1 = bitmap_init::bits#3 >> 1
|
|
|
|
Adding number conversion cast (unumber) 0 in bitmap_init::$0 = bitmap_init::bits#1 == 0
|
|
|
|
Adding number conversion cast (unumber) $80 in bitmap_init::bits#2 = $80
|
|
|
|
Adding number conversion cast (unumber) 7 in bitmap_init::$3 = bitmap_init::y#2 & 7
|
|
|
|
Adding number conversion cast (unumber) bitmap_init::$3 in bitmap_init::$3 = bitmap_init::y#2 & (unumber)7
|
|
|
|
Adding number conversion cast (unumber) bitmap_init::$5 in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4
|
|
|
|
Adding number conversion cast (unumber) 7 in bitmap_init::$7 = bitmap_init::y#2 & 7
|
|
|
|
Adding number conversion cast (unumber) bitmap_init::$7 in bitmap_init::$7 = bitmap_init::y#2 & (unumber)7
|
|
|
|
Adding number conversion cast (unumber) 7 in bitmap_init::$8 = bitmap_init::$7 == 7
|
|
|
|
Adding number conversion cast (unumber) $28*8 in bitmap_init::$10 = bitmap_init::yoffs#3 + $28*8
|
|
|
|
Adding number conversion cast (unumber) $10 in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10
|
|
|
|
Adding number conversion cast (unumber) bitmap_clear::$0 in bitmap_clear::$0 = bitmap_clear::fgcol#1 * (unumber)$10
|
|
|
|
Adding number conversion cast (unumber) 0 in memset::c#1 = 0
|
2021-07-01 22:21:08 +00:00
|
|
|
Adding number conversion cast (unumber) $fff8 in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
|
|
|
Adding number conversion cast (unumber) bitmap_plot::$1 in bitmap_plot::$1 = bitmap_plot::x#4 & (unumber)$fff8
|
2020-10-05 20:58:02 +00:00
|
|
|
Adding number conversion cast (unumber) 0 in bitmap_line::$4 = bitmap_line::dx#1 == 0
|
|
|
|
Adding number conversion cast (unumber) 0 in bitmap_line::$5 = bitmap_line::dy#0 == 0
|
2021-07-27 17:11:14 +00:00
|
|
|
Adding number conversion cast (unumber) 2 in bitmap_line::e1#0 = bitmap_line::dy#2 / 2
|
|
|
|
Adding number conversion cast (unumber) 2 in bitmap_line::e#0 = bitmap_line::dx#3 / 2
|
2021-05-11 21:11:51 +00:00
|
|
|
Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0
|
2020-10-05 20:58:02 +00:00
|
|
|
Adding number conversion cast (unumber) $80 in abs_u16::$1 = abs_u16::$0 & $80
|
|
|
|
Adding number conversion cast (unumber) abs_u16::$1 in abs_u16::$1 = abs_u16::$0 & (unumber)$80
|
|
|
|
Adding number conversion cast (unumber) 0 in abs_u16::$3 = 0 != abs_u16::$1
|
|
|
|
Adding number conversion cast (unumber) $80 in sgn_u16::$1 = sgn_u16::$0 & $80
|
|
|
|
Adding number conversion cast (unumber) sgn_u16::$1 in sgn_u16::$1 = sgn_u16::$0 & (unumber)$80
|
|
|
|
Adding number conversion cast (unumber) 0 in sgn_u16::$2 = 0 != sgn_u16::$1
|
|
|
|
Adding number conversion cast (unumber) -1 in sgn_u16::return#2 = -1
|
|
|
|
Adding number conversion cast (unumber) 1 in sgn_u16::return#3 = 1
|
|
|
|
Adding number conversion cast (unumber) 0 in *BORDER_COLOR = 0
|
|
|
|
Adding number conversion cast (unumber) 0 in *BG_COLOR = 0
|
2020-12-29 18:37:32 +00:00
|
|
|
Adding number conversion cast (unumber) VICII_BMM|VICII_DEN|VICII_RSEL|3 in *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
|
|
|
|
Adding number conversion cast (unumber) 3 in *D011 = ((unumber)) VICII_BMM|VICII_DEN|VICII_RSEL|3
|
2021-08-10 15:48:55 +00:00
|
|
|
Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400
|
|
|
|
Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&$3fff/$400
|
2020-10-05 20:58:02 +00:00
|
|
|
Adding number conversion cast (unumber) 0 in bitmap_line::x1#0 = 0
|
|
|
|
Adding number conversion cast (unumber) 0 in bitmap_line::y1#0 = 0
|
|
|
|
Adding number conversion cast (unumber) $64 in bitmap_line::y2#0 = $64
|
|
|
|
Adding number conversion cast (unumber) $140 in main::$3 = next#0 == $140
|
|
|
|
Adding number conversion cast (unumber) 0 in next#1 = 0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
2021-08-10 15:48:55 +00:00
|
|
|
Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&(unumber)$3fff/$400
|
|
|
|
Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unsigned int)BITMAP&(unumber)$3fff/$400
|
2019-11-03 23:39:09 +00:00
|
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
2020-10-05 20:58:02 +00:00
|
|
|
Inlining cast bitmap_init::bits#2 = (unumber)$80
|
|
|
|
Inlining cast memset::c#1 = (unumber)0
|
2021-08-10 15:48:55 +00:00
|
|
|
Inlining cast memset::dst#0 = (char *)memset::str#3
|
2020-10-05 20:58:02 +00:00
|
|
|
Inlining cast sgn_u16::return#2 = (unumber)-1
|
|
|
|
Inlining cast sgn_u16::return#3 = (unumber)1
|
|
|
|
Inlining cast *BORDER_COLOR = (unumber)0
|
|
|
|
Inlining cast *BG_COLOR = (unumber)0
|
2020-12-29 18:37:32 +00:00
|
|
|
Inlining cast *D011 = (unumber)VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3
|
2020-10-05 20:58:02 +00:00
|
|
|
Inlining cast bitmap_line::x1#0 = (unumber)0
|
|
|
|
Inlining cast bitmap_line::y1#0 = (unumber)0
|
|
|
|
Inlining cast bitmap_line::y2#0 = (unumber)$64
|
|
|
|
Inlining cast next#1 = (unumber)0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2InlineCast
|
2021-08-10 15:48:55 +00:00
|
|
|
Simplifying constant pointer cast (char *) 53280
|
|
|
|
Simplifying constant pointer cast (char *) 53281
|
|
|
|
Simplifying constant pointer cast (char *) 53265
|
|
|
|
Simplifying constant pointer cast (char *) 53272
|
|
|
|
Simplifying constant pointer cast (char *) 1024
|
|
|
|
Simplifying constant pointer cast (char *) 8192
|
2019-09-18 19:53:32 +00:00
|
|
|
Simplifying constant integer cast 1
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast $80
|
|
|
|
Simplifying constant integer cast 7
|
|
|
|
Simplifying constant integer cast 7
|
|
|
|
Simplifying constant integer cast 7
|
|
|
|
Simplifying constant integer cast $10
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast $fff8
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast 2
|
|
|
|
Simplifying constant integer cast 2
|
2021-05-11 21:11:51 +00:00
|
|
|
Simplifying constant integer cast 0
|
2019-09-18 19:53:32 +00:00
|
|
|
Simplifying constant integer cast $80
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast $80
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast -1
|
|
|
|
Simplifying constant integer cast 1
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast 0
|
2020-12-29 18:37:32 +00:00
|
|
|
Simplifying constant integer cast VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3
|
2019-09-18 19:53:32 +00:00
|
|
|
Simplifying constant integer cast 3
|
|
|
|
Simplifying constant integer cast $3fff
|
|
|
|
Simplifying constant integer cast $40
|
|
|
|
Simplifying constant integer cast $3fff
|
|
|
|
Simplifying constant integer cast $400
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast $64
|
|
|
|
Simplifying constant integer cast $140
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Successful SSA optimization PassNCastSimplification
|
2021-08-10 15:48:55 +00:00
|
|
|
Finalized unsigned number type (char) 1
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) $80
|
|
|
|
Finalized unsigned number type (char) 7
|
|
|
|
Finalized unsigned number type (char) 7
|
|
|
|
Finalized unsigned number type (char) 7
|
|
|
|
Finalized unsigned number type (char) $10
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (unsigned int) $fff8
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) 2
|
|
|
|
Finalized unsigned number type (char) 2
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) $80
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) $80
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) -1
|
|
|
|
Finalized unsigned number type (char) 1
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) 3
|
|
|
|
Finalized unsigned number type (unsigned int) $3fff
|
|
|
|
Finalized unsigned number type (char) $40
|
|
|
|
Finalized unsigned number type (unsigned int) $3fff
|
|
|
|
Finalized unsigned number type (unsigned int) $400
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) $64
|
|
|
|
Finalized unsigned number type (unsigned int) $140
|
|
|
|
Finalized unsigned number type (char) 0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
2021-08-10 15:48:55 +00:00
|
|
|
Inferred type updated to char in bitmap_init::$3 = bitmap_init::y#2 & 7
|
|
|
|
Inferred type updated to char in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4
|
|
|
|
Inferred type updated to char in bitmap_init::$7 = bitmap_init::y#2 & 7
|
|
|
|
Inferred type updated to char in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10
|
|
|
|
Inferred type updated to unsigned int in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
|
|
|
Inferred type updated to char in abs_u16::$1 = abs_u16::$0 & $80
|
|
|
|
Inferred type updated to char in sgn_u16::$1 = sgn_u16::$0 & $80
|
2021-05-11 21:11:51 +00:00
|
|
|
Inversing boolean not [9] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [8] bitmap_init::$0 = bitmap_init::bits#1 == 0
|
|
|
|
Inversing boolean not [29] bitmap_init::$9 = bitmap_init::$7 != 7 from [28] bitmap_init::$8 = bitmap_init::$7 == 7
|
2021-07-27 17:11:14 +00:00
|
|
|
Inversing boolean not [117] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [116] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1
|
|
|
|
Inversing boolean not [137] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [136] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1
|
|
|
|
Inversing boolean not [147] memset::$1 = memset::num#2 <= 0 from [146] memset::$0 = memset::num#2 > 0
|
|
|
|
Inversing boolean not [211] main::$4 = next#0 != $140 from [210] main::$3 = next#0 == $140
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2UnaryNotSimplification
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_init::x#2 = bitmap_init::x#4
|
|
|
|
Alias bitmap_init::gfx#4 = bitmap_init::gfx#5
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias bitmap_gfx#26 = bitmap_gfx#27
|
|
|
|
Alias bitmap_screen#25 = bitmap_screen#26
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_init::gfx#2 = bitmap_init::gfx#3 bitmap_init::yoffs#0
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias bitmap_gfx#22 = bitmap_gfx#24
|
|
|
|
Alias bitmap_screen#21 = bitmap_screen#23
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_init::yoffs#2 = bitmap_init::yoffs#3
|
|
|
|
Alias bitmap_init::y#2 = bitmap_init::y#4
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias bitmap_gfx#18 = bitmap_gfx#19
|
|
|
|
Alias bitmap_screen#17 = bitmap_screen#18
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_init::yoffs#1 = bitmap_init::$10
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13
|
|
|
|
Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13
|
|
|
|
Alias bitmap_gfx#14 = bitmap_gfx#8
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_line::x#0 = bitmap_line::x1#1 bitmap_line::x1#4 bitmap_line::x#16 bitmap_line::x1#3 bitmap_line::x#10 bitmap_line::x1#2 bitmap_line::x#19 bitmap_line::x#18 bitmap_line::x#17 bitmap_line::x#3 bitmap_line::x#14 bitmap_line::x#11
|
|
|
|
Alias bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::y1#2 bitmap_line::y#16 bitmap_line::y#10 bitmap_line::y1#5 bitmap_line::y1#4 bitmap_line::y#19 bitmap_line::y1#3 bitmap_line::y#18 bitmap_line::y#17 bitmap_line::y#3 bitmap_line::y#14 bitmap_line::y#11
|
|
|
|
Alias abs_u16::w#0 = bitmap_line::$0
|
|
|
|
Alias abs_u16::return#0 = abs_u16::return#5
|
|
|
|
Alias bitmap_line::y2#1 = bitmap_line::y2#4 bitmap_line::y2#8 bitmap_line::y2#5 bitmap_line::y2#2 bitmap_line::y2#11 bitmap_line::y2#10
|
|
|
|
Alias bitmap_line::x2#1 = bitmap_line::x2#7 bitmap_line::x2#4 bitmap_line::x2#2 bitmap_line::x2#11 bitmap_line::x2#10 bitmap_line::x2#9
|
|
|
|
Alias abs_u16::w#1 = bitmap_line::$2
|
|
|
|
Alias abs_u16::return#1 = abs_u16::return#6
|
2021-07-27 17:11:14 +00:00
|
|
|
Alias bitmap_line::dx#0 = bitmap_line::dx#1 bitmap_line::dx#10 bitmap_line::dx#7 bitmap_line::dx#2 bitmap_line::dx#13 bitmap_line::dx#3
|
|
|
|
Alias bitmap_line::dy#0 = bitmap_line::dy#9 bitmap_line::dy#6 bitmap_line::dy#1 bitmap_line::dy#2 bitmap_line::dy#10
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias sgn_u16::w#0 = bitmap_line::$8
|
|
|
|
Alias sgn_u16::return#0 = sgn_u16::return#5
|
|
|
|
Alias sgn_u16::w#1 = bitmap_line::$10
|
|
|
|
Alias sgn_u16::return#1 = sgn_u16::return#6
|
2021-07-27 17:11:14 +00:00
|
|
|
Alias bitmap_line::sx#0 = bitmap_line::sx#8 bitmap_line::sx#7 bitmap_line::sx#9
|
|
|
|
Alias bitmap_line::sy#0 = bitmap_line::sy#10 bitmap_line::sy#5
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_line::y#4 = bitmap_line::y#5
|
|
|
|
Alias bitmap_line::sy#1 = bitmap_line::sy#3 bitmap_line::sy#8
|
|
|
|
Alias bitmap_line::e#3 = bitmap_line::e#5
|
|
|
|
Alias bitmap_line::dx#14 = bitmap_line::dx#4 bitmap_line::dx#8
|
|
|
|
Alias bitmap_line::dy#3 = bitmap_line::dy#7 bitmap_line::dy#4
|
|
|
|
Alias bitmap_line::y2#6 = bitmap_line::y2#9 bitmap_line::y2#7
|
|
|
|
Alias bitmap_line::x#13 = bitmap_line::x#4 bitmap_line::x#5
|
|
|
|
Alias bitmap_line::sx#1 = bitmap_line::sx#3 bitmap_line::sx#5
|
|
|
|
Alias bitmap_line::e#1 = bitmap_line::e#4
|
|
|
|
Alias bitmap_line::y#1 = bitmap_line::y#12
|
|
|
|
Alias bitmap_line::x#7 = bitmap_line::x#8
|
|
|
|
Alias bitmap_line::sx#11 = bitmap_line::sx#2 bitmap_line::sx#4
|
|
|
|
Alias bitmap_line::e1#3 = bitmap_line::e1#5
|
|
|
|
Alias bitmap_line::dy#13 = bitmap_line::dy#5 bitmap_line::dy#8
|
|
|
|
Alias bitmap_line::dx#5 = bitmap_line::dx#9 bitmap_line::dx#6
|
|
|
|
Alias bitmap_line::x2#5 = bitmap_line::x2#6 bitmap_line::x2#8
|
|
|
|
Alias bitmap_line::y#15 = bitmap_line::y#8 bitmap_line::y#9
|
|
|
|
Alias bitmap_line::sy#2 = bitmap_line::sy#4 bitmap_line::sy#7
|
|
|
|
Alias bitmap_line::e1#1 = bitmap_line::e1#4
|
|
|
|
Alias bitmap_line::x#15 = bitmap_line::x#2
|
2021-05-11 21:11:51 +00:00
|
|
|
Alias memset::return#2 = memset::str#2 memset::return#4 memset::return#3
|
|
|
|
Alias memset::str#3 = memset::str#4
|
|
|
|
Alias memset::num#2 = memset::num#3
|
|
|
|
Alias memset::c#4 = memset::c#5
|
|
|
|
Alias memset::c#2 = memset::c#3
|
|
|
|
Alias memset::dst#2 = memset::dst#3
|
|
|
|
Alias memset::end#1 = memset::end#2
|
|
|
|
Alias memset::str#5 = memset::str#6
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias abs_u16::w#2 = abs_u16::w#3 abs_u16::w#4 abs_u16::return#3
|
|
|
|
Alias abs_u16::return#2 = abs_u16::$2
|
|
|
|
Alias abs_u16::return#4 = abs_u16::return#7
|
|
|
|
Alias sgn_u16::return#4 = sgn_u16::return#7
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias next#12 = next#14 next#15
|
|
|
|
Alias bitmap_gfx#2 = bitmap_gfx#9 bitmap_gfx#25
|
|
|
|
Alias bitmap_screen#2 = bitmap_screen#9 bitmap_screen#24
|
|
|
|
Alias next#6 = next#7
|
|
|
|
Alias bitmap_gfx#20 = bitmap_gfx#21 bitmap_gfx#23
|
|
|
|
Alias bitmap_screen#19 = bitmap_screen#20 bitmap_screen#22
|
|
|
|
Alias bitmap_gfx#10 = bitmap_gfx#16 bitmap_gfx#3
|
|
|
|
Alias bitmap_screen#10 = bitmap_screen#15 bitmap_screen#3
|
|
|
|
Alias next#11 = next#8 next#2
|
|
|
|
Alias bitmap_gfx#17 = bitmap_gfx#4
|
|
|
|
Alias bitmap_screen#16 = bitmap_screen#4
|
|
|
|
Alias next#13 = next#3
|
|
|
|
Alias bitmap_gfx#11 = bitmap_gfx#5 bitmap_gfx#12 bitmap_gfx#6
|
|
|
|
Alias bitmap_screen#11 = bitmap_screen#5 bitmap_screen#12 bitmap_screen#6
|
|
|
|
Alias next#10 = next#4 next#9 next#5
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2AliasElimination
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_init::x#2 = bitmap_init::x#3
|
|
|
|
Alias bitmap_init::gfx#2 = bitmap_init::gfx#4
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias bitmap_gfx#22 = bitmap_gfx#26
|
|
|
|
Alias bitmap_screen#21 = bitmap_screen#25
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_init::y#2 = bitmap_init::y#3
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias bitmap_gfx#1 = bitmap_gfx#18
|
|
|
|
Alias bitmap_screen#1 = bitmap_screen#17
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_line::y#1 = bitmap_line::y#6
|
|
|
|
Alias bitmap_line::y2#3 = bitmap_line::y2#6
|
|
|
|
Alias bitmap_line::sy#1 = bitmap_line::sy#6
|
|
|
|
Alias bitmap_line::dx#11 = bitmap_line::dx#14
|
|
|
|
Alias bitmap_line::dy#11 = bitmap_line::dy#3
|
|
|
|
Alias bitmap_line::sx#1 = bitmap_line::sx#10
|
|
|
|
Alias bitmap_line::x#15 = bitmap_line::x#9
|
|
|
|
Alias bitmap_line::x2#3 = bitmap_line::x2#5
|
|
|
|
Alias bitmap_line::sx#11 = bitmap_line::sx#6
|
|
|
|
Alias bitmap_line::dy#12 = bitmap_line::dy#13
|
|
|
|
Alias bitmap_line::dx#12 = bitmap_line::dx#5
|
|
|
|
Alias bitmap_line::sy#2 = bitmap_line::sy#9
|
2020-06-27 19:18:00 +00:00
|
|
|
Alias bitmap_gfx#10 = bitmap_gfx#20
|
|
|
|
Alias bitmap_screen#10 = bitmap_screen#19
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2AliasElimination
|
2020-10-05 20:58:02 +00:00
|
|
|
Identical Phi Values bitmap_init::gfx#1 bitmap_init::gfx#0
|
|
|
|
Identical Phi Values bitmap_init::screen#1 bitmap_init::screen#0
|
|
|
|
Identical Phi Values bitmap_init::gfx#2 bitmap_init::gfx#1
|
|
|
|
Identical Phi Values bitmap_gfx#22 bitmap_gfx#0
|
|
|
|
Identical Phi Values bitmap_screen#21 bitmap_screen#0
|
|
|
|
Identical Phi Values bitmap_gfx#1 bitmap_gfx#22
|
|
|
|
Identical Phi Values bitmap_screen#1 bitmap_screen#21
|
|
|
|
Identical Phi Values bitmap_clear::fgcol#1 bitmap_clear::fgcol#0
|
|
|
|
Identical Phi Values bitmap_clear::bgcol#1 bitmap_clear::bgcol#0
|
|
|
|
Identical Phi Values bitmap_screen#8 bitmap_screen#2
|
|
|
|
Identical Phi Values bitmap_gfx#14 bitmap_gfx#2
|
|
|
|
Identical Phi Values bitmap_line::x#0 bitmap_line::x1#0
|
|
|
|
Identical Phi Values bitmap_line::y#0 bitmap_line::y1#0
|
|
|
|
Identical Phi Values bitmap_line::x2#1 bitmap_line::x2#0
|
|
|
|
Identical Phi Values bitmap_line::y2#1 bitmap_line::y2#0
|
|
|
|
Identical Phi Values bitmap_line::sy#1 bitmap_line::sy#0
|
|
|
|
Identical Phi Values bitmap_line::dx#11 bitmap_line::dx#0
|
|
|
|
Identical Phi Values bitmap_line::dy#11 bitmap_line::dy#0
|
|
|
|
Identical Phi Values bitmap_line::y2#3 bitmap_line::y2#1
|
|
|
|
Identical Phi Values bitmap_line::sx#1 bitmap_line::sx#0
|
|
|
|
Identical Phi Values bitmap_line::sx#11 bitmap_line::sx#0
|
|
|
|
Identical Phi Values bitmap_line::dy#12 bitmap_line::dy#0
|
|
|
|
Identical Phi Values bitmap_line::dx#12 bitmap_line::dx#0
|
|
|
|
Identical Phi Values bitmap_line::x2#3 bitmap_line::x2#1
|
|
|
|
Identical Phi Values bitmap_line::sy#2 bitmap_line::sy#0
|
2021-05-11 21:11:51 +00:00
|
|
|
Identical Phi Values memset::end#1 memset::end#0
|
|
|
|
Identical Phi Values memset::str#5 memset::str#3
|
|
|
|
Identical Phi Values memset::c#2 memset::c#4
|
2020-10-05 20:58:02 +00:00
|
|
|
Identical Phi Values bitmap_gfx#15 bitmap_gfx#17
|
|
|
|
Identical Phi Values bitmap_screen#14 bitmap_screen#16
|
|
|
|
Identical Phi Values next#12 next#13
|
|
|
|
Identical Phi Values bitmap_gfx#2 bitmap_gfx#1
|
|
|
|
Identical Phi Values bitmap_screen#2 bitmap_screen#1
|
|
|
|
Identical Phi Values bitmap_gfx#10 bitmap_gfx#2
|
|
|
|
Identical Phi Values bitmap_screen#10 bitmap_screen#2
|
|
|
|
Identical Phi Values bitmap_gfx#11 bitmap_gfx#10
|
|
|
|
Identical Phi Values bitmap_screen#11 bitmap_screen#10
|
|
|
|
Identical Phi Values next#10 next#11
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
2021-05-11 21:11:51 +00:00
|
|
|
Identical Phi Values memset::return#2 memset::str#3
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
2021-05-11 21:11:51 +00:00
|
|
|
Identified duplicate assignment right side [27] bitmap_init::$7 = bitmap_init::y#2 & 7
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
2021-05-11 21:11:51 +00:00
|
|
|
Simple Condition bitmap_init::$1 [9] if(bitmap_init::bits#1!=0) goto bitmap_init::@2
|
|
|
|
Simple Condition bitmap_init::$2 [13] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
|
|
|
|
Simple Condition bitmap_init::$9 [25] if(bitmap_init::$7!=7) goto bitmap_init::@6
|
|
|
|
Simple Condition bitmap_init::$11 [29] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
|
|
|
|
Simple Condition bitmap_line::$12 [77] if(bitmap_line::dx#0>bitmap_line::dy#0) goto bitmap_line::@2
|
|
|
|
Simple Condition bitmap_line::$18 [91] if(bitmap_line::dy#0>=bitmap_line::e#1) goto bitmap_line::@7
|
|
|
|
Simple Condition bitmap_line::$19 [94] if(bitmap_line::y#1!=bitmap_line::y2#0) goto bitmap_line::@6
|
|
|
|
Simple Condition bitmap_line::$23 [108] if(bitmap_line::dx#0>=bitmap_line::e1#1) goto bitmap_line::@10
|
|
|
|
Simple Condition bitmap_line::$24 [111] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9
|
|
|
|
Simple Condition memset::$1 [116] if(memset::num#2<=0) goto memset::@1
|
|
|
|
Simple Condition memset::$3 [123] if(memset::dst#2!=memset::end#0) goto memset::@4
|
2020-10-05 20:58:02 +00:00
|
|
|
Simple Condition abs_u16::$3 [131] if(0!=abs_u16::$1) goto abs_u16::@1
|
|
|
|
Simple Condition sgn_u16::$2 [139] if(0!=sgn_u16::$1) goto sgn_u16::@1
|
|
|
|
Simple Condition main::$4 [164] if(next#0!=$140) goto main::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
2021-05-11 21:11:51 +00:00
|
|
|
Rewriting ! if()-condition to reversed if() [66] bitmap_line::$7 = ! bitmap_line::$6
|
|
|
|
Rewriting && if()-condition to two if()s [65] bitmap_line::$6 = bitmap_line::$4 && bitmap_line::$5
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant bitmap_init::bits#0 = $80
|
|
|
|
Constant bitmap_init::x#0 = 0
|
|
|
|
Constant bitmap_init::bits#2 = $80
|
|
|
|
Constant bitmap_init::y#0 = 0
|
|
|
|
Constant memset::num#0 = $3e8
|
|
|
|
Constant memset::c#1 = 0
|
|
|
|
Constant memset::num#1 = $1f40
|
|
|
|
Constant sgn_u16::return#2 = -1
|
|
|
|
Constant sgn_u16::return#3 = 1
|
|
|
|
Constant bitmap_init::gfx#0 = BITMAP
|
|
|
|
Constant bitmap_init::screen#0 = SCREEN
|
|
|
|
Constant bitmap_clear::bgcol#0 = PURPLE
|
|
|
|
Constant bitmap_clear::fgcol#0 = WHITE
|
|
|
|
Constant bitmap_line::x1#0 = 0
|
|
|
|
Constant bitmap_line::y1#0 = 0
|
|
|
|
Constant bitmap_line::y2#0 = $64
|
|
|
|
Constant next#1 = 0
|
2021-08-10 15:48:55 +00:00
|
|
|
Constant bitmap_screen#16 = (char *) 0
|
|
|
|
Constant bitmap_gfx#17 = (char *) 0
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant next#13 = 0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant bitmap_gfx#0 = bitmap_init::gfx#0
|
|
|
|
Constant bitmap_screen#0 = bitmap_init::screen#0
|
|
|
|
Constant bitmap_plot::x#0 = bitmap_line::x1#0
|
2021-08-10 15:48:55 +00:00
|
|
|
Constant bitmap_plot::y#0 = (char)bitmap_line::y1#0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
2021-08-10 15:48:55 +00:00
|
|
|
Constant memset::str#0 = (void *)bitmap_screen#0
|
|
|
|
Constant memset::str#1 = (void *)bitmap_gfx#0
|
2019-10-20 15:06:17 +00:00
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
2020-06-27 19:18:00 +00:00
|
|
|
if() condition always true - replacing block destination [166] if(true) goto main::@1
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantIfs
|
2021-05-11 21:11:51 +00:00
|
|
|
Resolved ranged next value [11] bitmap_init::x#1 = ++ bitmap_init::x#2 to ++
|
|
|
|
Resolved ranged comparison value [13] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to 0
|
|
|
|
Resolved ranged next value [27] bitmap_init::y#1 = ++ bitmap_init::y#2 to ++
|
|
|
|
Resolved ranged comparison value [29] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to 0
|
2021-08-10 15:48:55 +00:00
|
|
|
Simplifying constant evaluating to zero (char)bitmap_line::y1#0 in
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization PassNSimplifyConstantZero
|
2021-05-11 21:11:51 +00:00
|
|
|
Simplifying expression containing zero bitmap_line::x2#0 in [55] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0
|
|
|
|
Simplifying expression containing zero bitmap_line::y2#0 in [59] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0
|
|
|
|
Simplifying expression containing zero bitmap_line::x2#0 in [68] sgn_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0
|
|
|
|
Simplifying expression containing zero bitmap_line::y2#0 in [72] sgn_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization PassNSimplifyExpressionWithZero
|
2021-04-21 17:34:18 +00:00
|
|
|
Removing unused block main::@return
|
|
|
|
Successful SSA optimization Pass2EliminateUnusedBlocks
|
2021-05-11 21:11:51 +00:00
|
|
|
Eliminating unused variable memset::return#0 and assignment [25] memset::return#0 = memset::str#3
|
|
|
|
Eliminating unused variable memset::return#1 and assignment [27] memset::return#1 = memset::str#3
|
2020-10-05 20:58:02 +00:00
|
|
|
Eliminating unused constant bitmap_screen#16
|
|
|
|
Eliminating unused constant bitmap_gfx#17
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
2020-06-27 20:36:52 +00:00
|
|
|
Removing unused procedure __start
|
|
|
|
Removing unused procedure block __start
|
|
|
|
Removing unused procedure block __start::__init1
|
|
|
|
Removing unused procedure block __start::@1
|
|
|
|
Removing unused procedure block __start::@2
|
|
|
|
Removing unused procedure block __start::@return
|
2020-06-27 19:18:00 +00:00
|
|
|
Successful SSA optimization PassNEliminateEmptyStart
|
2021-05-11 21:11:51 +00:00
|
|
|
Adding number conversion cast (unumber) 0 in [6] if(bitmap_init::x#1!=0) goto bitmap_init::@1
|
|
|
|
Adding number conversion cast (unumber) 0 in [18] if(bitmap_init::y#1!=0) goto bitmap_init::@5
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Simplifying constant integer cast 0
|
|
|
|
Successful SSA optimization PassNCastSimplification
|
2021-08-10 15:48:55 +00:00
|
|
|
Finalized unsigned number type (char) 0
|
|
|
|
Finalized unsigned number type (char) 0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
2020-03-22 21:26:39 +00:00
|
|
|
Alias bitmap_init::$7 = bitmap_init::$3
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2AliasElimination
|
2021-05-11 21:11:51 +00:00
|
|
|
Simple Condition bitmap_line::$4 [44] if(bitmap_line::dx#0==0) goto bitmap_line::@20
|
2023-04-09 21:59:49 +00:00
|
|
|
Simple Condition bitmap_line::$5 [84] if(bitmap_line::dy#0==0) goto bitmap_line::@4
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
2021-05-11 21:11:51 +00:00
|
|
|
Negating conditional jump and destination [44] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
|
2021-05-11 21:11:51 +00:00
|
|
|
Constant right-side identified [20] bitmap_clear::$0 = bitmap_clear::fgcol#0 * $10
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant bitmap_clear::$0 = bitmap_clear::fgcol#0*$10
|
|
|
|
Constant abs_u16::w#1 = bitmap_line::y2#0
|
|
|
|
Constant sgn_u16::w#1 = bitmap_line::y2#0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
2021-05-11 21:11:51 +00:00
|
|
|
Constant right-side identified [20] bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant bitmap_clear::col#0 = bitmap_clear::$0+bitmap_clear::bgcol#0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant memset::c#0 = bitmap_clear::col#0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
2021-08-10 15:48:55 +00:00
|
|
|
Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2NopCastInlining
|
2023-04-09 21:59:49 +00:00
|
|
|
Inlining Noop Cast [80] memset::$4 = (char *)memset::str#3 keeping memset::str#3
|
|
|
|
Inlining Noop Cast [82] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2NopCastInlining
|
2021-05-11 21:11:51 +00:00
|
|
|
Rewriting division to use shift [49] bitmap_line::e1#0 = bitmap_line::dy#0 / 2
|
|
|
|
Rewriting division to use shift [50] bitmap_line::e#0 = bitmap_line::dx#0 / 2
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2MultiplyToShiftRewriting
|
2020-10-05 20:58:02 +00:00
|
|
|
Inlining constant with var siblings bitmap_init::bits#0
|
|
|
|
Inlining constant with var siblings bitmap_init::x#0
|
|
|
|
Inlining constant with var siblings bitmap_init::bits#2
|
|
|
|
Inlining constant with var siblings bitmap_init::y#0
|
|
|
|
Inlining constant with var siblings bitmap_plot::x#0
|
|
|
|
Inlining constant with var siblings bitmap_plot::y#0
|
2021-05-11 21:11:51 +00:00
|
|
|
Inlining constant with var siblings memset::num#0
|
|
|
|
Inlining constant with var siblings memset::c#1
|
|
|
|
Inlining constant with var siblings memset::num#1
|
|
|
|
Inlining constant with var siblings memset::str#0
|
|
|
|
Inlining constant with var siblings memset::str#1
|
|
|
|
Inlining constant with var siblings memset::c#0
|
2020-10-05 20:58:02 +00:00
|
|
|
Inlining constant with var siblings abs_u16::w#1
|
|
|
|
Inlining constant with var siblings sgn_u16::return#2
|
|
|
|
Inlining constant with var siblings sgn_u16::return#3
|
|
|
|
Inlining constant with var siblings sgn_u16::w#1
|
|
|
|
Inlining constant with var siblings next#1
|
|
|
|
Inlining constant with var siblings next#13
|
|
|
|
Constant inlined bitmap_init::screen#0 = SCREEN
|
|
|
|
Constant inlined bitmap_clear::bgcol#0 = PURPLE
|
|
|
|
Constant inlined bitmap_init::gfx#0 = BITMAP
|
|
|
|
Constant inlined memset::num#1 = $1f40
|
|
|
|
Constant inlined bitmap_init::bits#0 = $80
|
2021-05-11 21:11:51 +00:00
|
|
|
Constant inlined memset::num#0 = $3e8
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant inlined bitmap_init::bits#2 = $80
|
|
|
|
Constant inlined bitmap_plot::x#0 = bitmap_line::x1#0
|
|
|
|
Constant inlined abs_u16::w#1 = bitmap_line::y2#0
|
|
|
|
Constant inlined bitmap_plot::y#0 = 0
|
|
|
|
Constant inlined sgn_u16::return#3 = 1
|
|
|
|
Constant inlined sgn_u16::return#2 = -1
|
|
|
|
Constant inlined next#1 = 0
|
2021-08-10 15:48:55 +00:00
|
|
|
Constant inlined memset::str#1 = (void *)BITMAP
|
|
|
|
Constant inlined memset::str#0 = (void *)SCREEN
|
2020-10-05 20:58:02 +00:00
|
|
|
Constant inlined sgn_u16::w#1 = bitmap_line::y2#0
|
|
|
|
Constant inlined next#13 = 0
|
|
|
|
Constant inlined bitmap_clear::fgcol#0 = WHITE
|
|
|
|
Constant inlined bitmap_gfx#0 = BITMAP
|
|
|
|
Constant inlined bitmap_screen#0 = SCREEN
|
|
|
|
Constant inlined bitmap_init::y#0 = 0
|
|
|
|
Constant inlined bitmap_clear::$0 = WHITE*$10
|
|
|
|
Constant inlined memset::c#0 = bitmap_clear::col#0
|
|
|
|
Constant inlined bitmap_init::x#0 = 0
|
|
|
|
Constant inlined memset::c#1 = 0
|
2019-09-18 19:53:32 +00:00
|
|
|
Successful SSA optimization Pass2ConstantInlining
|
2021-08-10 15:48:55 +00:00
|
|
|
Finalized unsigned number type (unsigned int) $100
|
|
|
|
Finalized unsigned number type (unsigned int) $100
|
|
|
|
Finalized unsigned number type (unsigned int) $100
|
|
|
|
Finalized unsigned number type (unsigned int) $100
|
|
|
|
Finalized unsigned number type (unsigned int) $100
|
|
|
|
Finalized unsigned number type (unsigned int) $100
|
|
|
|
Finalized unsigned number type (char) $28
|
|
|
|
Finalized unsigned number type (char) 8
|
2020-12-11 23:01:15 +00:00
|
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
2020-04-25 18:10:49 +00:00
|
|
|
Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1)
|
|
|
|
Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2)
|
|
|
|
Added new block during phi lifting bitmap_init::@10(between bitmap_init::@6 and bitmap_init::@5)
|
|
|
|
Added new block during phi lifting bitmap_init::@11(between bitmap_init::@5 and bitmap_init::@6)
|
|
|
|
Added new block during phi lifting bitmap_line::@21(between bitmap_line::@7 and bitmap_line::@6)
|
|
|
|
Added new block during phi lifting bitmap_line::@22(between bitmap_line::@17 and bitmap_line::@7)
|
|
|
|
Added new block during phi lifting bitmap_line::@23(between bitmap_line::@10 and bitmap_line::@3)
|
|
|
|
Added new block during phi lifting bitmap_line::@24(between bitmap_line::@7 and bitmap_line::@3)
|
|
|
|
Added new block during phi lifting bitmap_line::@25(between bitmap_line::@10 and bitmap_line::@9)
|
|
|
|
Added new block during phi lifting bitmap_line::@26(between bitmap_line::@19 and bitmap_line::@10)
|
|
|
|
Added new block during phi lifting main::@7(between main::@6 and main::@2)
|
|
|
|
Adding NOP phi() at start of main::@4
|
2019-09-18 19:53:32 +00:00
|
|
|
Adding NOP phi() at start of main::@5
|
|
|
|
Adding NOP phi() at start of main::@3
|
2020-06-27 21:26:57 +00:00
|
|
|
Adding NOP phi() at start of bitmap_init
|
|
|
|
Adding NOP phi() at start of bitmap_init::@3
|
|
|
|
Adding NOP phi() at start of bitmap_init::@4
|
|
|
|
Adding NOP phi() at start of bitmap_clear
|
|
|
|
Adding NOP phi() at start of bitmap_clear::@1
|
|
|
|
Adding NOP phi() at start of bitmap_clear::@2
|
2020-04-25 18:10:49 +00:00
|
|
|
Adding NOP phi() at start of bitmap_line::@18
|
2019-09-18 19:53:32 +00:00
|
|
|
Adding NOP phi() at start of bitmap_line::@4
|
2020-04-25 18:10:49 +00:00
|
|
|
Adding NOP phi() at start of bitmap_line::@16
|
2020-06-27 21:26:57 +00:00
|
|
|
Adding NOP phi() at start of memset::@1
|
2020-04-25 18:10:49 +00:00
|
|
|
Adding NOP phi() at start of sgn_u16::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
Adding NOP phi() at start of sgn_u16::@1
|
|
|
|
CALL GRAPH
|
2020-06-27 19:18:00 +00:00
|
|
|
Calls in [main] to bitmap_init:4 bitmap_clear:6 bitmap_line:10
|
2020-06-27 21:26:57 +00:00
|
|
|
Calls in [bitmap_clear] to memset:48 memset:50
|
|
|
|
Calls in [bitmap_line] to abs_u16:55 abs_u16:58 sgn_u16:65 sgn_u16:68 bitmap_plot:79 bitmap_plot:96 bitmap_plot:111 bitmap_plot:129
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
Created 30 initial phi equivalence classes
|
2020-10-05 20:58:02 +00:00
|
|
|
Coalesced [15] next#16 = next#11
|
|
|
|
Coalesced [16] next#17 = next#0
|
|
|
|
Coalesced [36] bitmap_init::yoffs#7 = bitmap_init::yoffs#1
|
|
|
|
Coalesced [41] bitmap_init::y#5 = bitmap_init::y#1
|
|
|
|
Coalesced [42] bitmap_init::yoffs#5 = bitmap_init::yoffs#4
|
|
|
|
Coalesced (already) [43] bitmap_init::yoffs#6 = bitmap_init::yoffs#2
|
|
|
|
Coalesced [44] bitmap_init::bits#5 = bitmap_init::bits#4
|
|
|
|
Coalesced [45] bitmap_init::x#5 = bitmap_init::x#1
|
|
|
|
Coalesced [46] bitmap_init::bits#6 = bitmap_init::bits#1
|
|
|
|
Coalesced [54] abs_u16::w#5 = abs_u16::w#0
|
|
|
|
Coalesced [64] sgn_u16::w#3 = sgn_u16::w#0
|
|
|
|
Coalesced [73] bitmap_line::e#7 = bitmap_line::e#0
|
|
|
|
Coalesced [77] bitmap_plot::y#6 = bitmap_plot::y#1
|
|
|
|
Coalesced [78] bitmap_plot::x#6 = bitmap_plot::x#1
|
|
|
|
Coalesced [85] bitmap_line::x#22 = bitmap_line::x#1
|
|
|
|
Coalesced [86] bitmap_line::e#10 = bitmap_line::e#2
|
|
|
|
Coalesced [89] bitmap_line::x#24 = bitmap_line::x#12
|
|
|
|
Coalesced [90] bitmap_line::y#22 = bitmap_line::y#1
|
|
|
|
Coalesced [94] bitmap_plot::y#5 = bitmap_plot::y#2
|
|
|
|
Coalesced [95] bitmap_plot::x#5 = bitmap_plot::x#2
|
|
|
|
Coalesced [99] bitmap_line::x#20 = bitmap_line::x#12
|
|
|
|
Coalesced [100] bitmap_line::y#20 = bitmap_line::y#1
|
|
|
|
Coalesced [101] bitmap_line::e#8 = bitmap_line::e#6
|
|
|
|
Coalesced (already) [102] bitmap_line::x#21 = bitmap_line::x#13
|
|
|
|
Coalesced [103] bitmap_line::e#9 = bitmap_line::e#1
|
|
|
|
Coalesced [105] bitmap_line::e1#8 = bitmap_line::e1#0
|
|
|
|
Coalesced [109] bitmap_plot::y#7 = bitmap_plot::y#3
|
|
|
|
Coalesced [110] bitmap_plot::x#7 = bitmap_plot::x#3
|
|
|
|
Coalesced [117] bitmap_line::y#24 = bitmap_line::y#2
|
|
|
|
Coalesced [118] bitmap_line::e1#9 = bitmap_line::e1#2
|
|
|
|
Coalesced [121] bitmap_line::x#23 = bitmap_line::x#15
|
|
|
|
Coalesced [122] bitmap_line::y#21 = bitmap_line::y#13
|
|
|
|
Coalesced [123] bitmap_line::x#25 = bitmap_line::x#15
|
|
|
|
Coalesced [124] bitmap_line::y#23 = bitmap_line::y#13
|
|
|
|
Coalesced [125] bitmap_line::e1#7 = bitmap_line::e1#6
|
|
|
|
Coalesced (already) [126] bitmap_line::y#25 = bitmap_line::y#15
|
|
|
|
Coalesced [127] bitmap_line::e1#10 = bitmap_line::e1#1
|
|
|
|
Coalesced [141] memset::dst#5 = memset::dst#1
|
|
|
|
Coalesced [146] abs_u16::return#9 = abs_u16::w#2
|
|
|
|
Coalesced [150] abs_u16::return#8 = abs_u16::return#2
|
2019-09-18 19:53:32 +00:00
|
|
|
Coalesced down to 18 phi equivalence classes
|
2020-10-05 20:58:02 +00:00
|
|
|
Culled Empty Block label main::@5
|
|
|
|
Culled Empty Block label main::@3
|
|
|
|
Culled Empty Block label bitmap_init::@3
|
|
|
|
Culled Empty Block label bitmap_init::@4
|
|
|
|
Culled Empty Block label bitmap_init::@10
|
|
|
|
Culled Empty Block label bitmap_init::@11
|
|
|
|
Culled Empty Block label bitmap_init::@8
|
|
|
|
Culled Empty Block label bitmap_clear::@2
|
|
|
|
Culled Empty Block label bitmap_line::@24
|
|
|
|
Culled Empty Block label bitmap_line::@18
|
|
|
|
Culled Empty Block label bitmap_line::@21
|
|
|
|
Culled Empty Block label bitmap_line::@22
|
|
|
|
Culled Empty Block label bitmap_line::@23
|
|
|
|
Culled Empty Block label bitmap_line::@25
|
|
|
|
Culled Empty Block label bitmap_line::@26
|
|
|
|
Culled Empty Block label bitmap_line::@16
|
|
|
|
Culled Empty Block label memset::@1
|
|
|
|
Culled Empty Block label abs_u16::@2
|
|
|
|
Culled Empty Block label sgn_u16::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
Renumbering block bitmap_init::@5 to bitmap_init::@3
|
|
|
|
Renumbering block bitmap_init::@6 to bitmap_init::@4
|
|
|
|
Renumbering block bitmap_init::@7 to bitmap_init::@5
|
2020-04-25 18:10:49 +00:00
|
|
|
Renumbering block bitmap_init::@9 to bitmap_init::@6
|
|
|
|
Renumbering block bitmap_line::@17 to bitmap_line::@16
|
|
|
|
Renumbering block bitmap_line::@19 to bitmap_line::@17
|
|
|
|
Renumbering block bitmap_line::@20 to bitmap_line::@18
|
2021-05-11 21:11:51 +00:00
|
|
|
Renumbering block memset::@2 to memset::@1
|
|
|
|
Renumbering block memset::@3 to memset::@2
|
|
|
|
Renumbering block memset::@4 to memset::@3
|
2020-04-25 18:10:49 +00:00
|
|
|
Renumbering block main::@4 to main::@3
|
|
|
|
Renumbering block main::@6 to main::@4
|
|
|
|
Renumbering block main::@7 to main::@5
|
2019-09-18 19:53:32 +00:00
|
|
|
Adding NOP phi() at start of main::@3
|
|
|
|
Adding NOP phi() at start of main::@5
|
|
|
|
Adding NOP phi() at start of bitmap_init
|
|
|
|
Adding NOP phi() at start of bitmap_init::@6
|
2020-06-27 21:26:57 +00:00
|
|
|
Adding NOP phi() at start of bitmap_clear
|
|
|
|
Adding NOP phi() at start of bitmap_clear::@1
|
|
|
|
Adding NOP phi() at start of bitmap_line::@4
|
|
|
|
Adding NOP phi() at start of sgn_u16::@1
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
FINAL CONTROL FLOW GRAPH
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2020-10-05 20:58:02 +00:00
|
|
|
void main()
|
2020-06-27 19:18:00 +00:00
|
|
|
main: scope:[main] from
|
2020-10-05 20:58:02 +00:00
|
|
|
[0] *BORDER_COLOR = 0
|
|
|
|
[1] *BG_COLOR = 0
|
2020-12-29 18:37:32 +00:00
|
|
|
[2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
|
2021-08-10 15:48:55 +00:00
|
|
|
[3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400
|
|
|
|
[4] call bitmap_init
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@3
|
|
|
|
main::@3: scope:[main] from main
|
2020-06-27 19:18:00 +00:00
|
|
|
[5] phi()
|
2021-08-10 15:48:55 +00:00
|
|
|
[6] call bitmap_clear
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@1
|
|
|
|
main::@1: scope:[main] from main::@2 main::@3
|
2020-10-05 20:58:02 +00:00
|
|
|
[7] next#6 = phi( main::@2/next#11, main::@3/0 )
|
|
|
|
[8] bitmap_line::x2#0 = next#6
|
2021-08-10 15:48:55 +00:00
|
|
|
[9] call bitmap_line
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@4
|
|
|
|
main::@4: scope:[main] from main::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
[10] next#0 = ++ next#6
|
|
|
|
[11] if(next#0!=$140) goto main::@5
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@2
|
|
|
|
main::@5: scope:[main] from main::@4
|
2020-06-27 19:18:00 +00:00
|
|
|
[12] phi()
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@2
|
|
|
|
main::@2: scope:[main] from main::@4 main::@5
|
2020-10-05 20:58:02 +00:00
|
|
|
[13] next#11 = phi( main::@4/0, main::@5/next#0 )
|
2019-09-18 19:53:32 +00:00
|
|
|
to:main::@1
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_init(char *gfx , char *screen)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_init: scope:[bitmap_init] from main
|
|
|
|
[14] phi()
|
|
|
|
to:bitmap_init::@1
|
|
|
|
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
[15] bitmap_init::x#2 = phi( bitmap_init/0, bitmap_init::@2/bitmap_init::x#1 )
|
|
|
|
[15] bitmap_init::bits#3 = phi( bitmap_init/$80, bitmap_init::@2/bitmap_init::bits#4 )
|
|
|
|
[16] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3
|
|
|
|
[17] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1
|
|
|
|
[18] if(bitmap_init::bits#1!=0) goto bitmap_init::@6
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_init::@2
|
|
|
|
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@1
|
|
|
|
[19] phi()
|
|
|
|
to:bitmap_init::@2
|
|
|
|
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@6
|
2020-10-05 20:58:02 +00:00
|
|
|
[20] bitmap_init::bits#4 = phi( bitmap_init::@6/bitmap_init::bits#1, bitmap_init::@1/$80 )
|
|
|
|
[21] bitmap_init::x#1 = ++ bitmap_init::x#2
|
|
|
|
[22] if(bitmap_init::x#1!=0) goto bitmap_init::@1
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_init::@3
|
|
|
|
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4
|
2020-10-05 20:58:02 +00:00
|
|
|
[23] bitmap_init::yoffs#2 = phi( bitmap_init::@2/BITMAP, bitmap_init::@4/bitmap_init::yoffs#4 )
|
|
|
|
[23] bitmap_init::y#2 = phi( bitmap_init::@2/0, bitmap_init::@4/bitmap_init::y#1 )
|
|
|
|
[24] bitmap_init::$7 = bitmap_init::y#2 & 7
|
2021-06-13 12:24:57 +00:00
|
|
|
[25] bitmap_init::$4 = byte0 bitmap_init::yoffs#2
|
2020-10-05 20:58:02 +00:00
|
|
|
[26] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4
|
|
|
|
[27] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5
|
2021-06-13 12:24:57 +00:00
|
|
|
[28] bitmap_init::$6 = byte1 bitmap_init::yoffs#2
|
2020-10-05 20:58:02 +00:00
|
|
|
[29] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6
|
|
|
|
[30] if(bitmap_init::$7!=7) goto bitmap_init::@4
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_init::@5
|
|
|
|
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3
|
2021-08-10 15:48:55 +00:00
|
|
|
[31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_init::@4
|
|
|
|
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
|
2020-10-05 20:58:02 +00:00
|
|
|
[32] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 )
|
|
|
|
[33] bitmap_init::y#1 = ++ bitmap_init::y#2
|
|
|
|
[34] if(bitmap_init::y#1!=0) goto bitmap_init::@3
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_init::@return
|
|
|
|
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
|
|
|
|
[35] return
|
|
|
|
to:@return
|
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_clear(char bgcol , char fgcol)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_clear: scope:[bitmap_clear] from main::@3
|
|
|
|
[36] phi()
|
2021-08-10 15:48:55 +00:00
|
|
|
[37] call memset
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_clear::@1
|
|
|
|
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
|
|
|
|
[38] phi()
|
2021-08-10 15:48:55 +00:00
|
|
|
[39] call memset
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_clear::@return
|
|
|
|
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
|
|
|
|
[40] return
|
|
|
|
to:@return
|
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2)
|
2019-09-18 19:53:32 +00:00
|
|
|
bitmap_line: scope:[bitmap_line] from main::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
[41] abs_u16::w#0 = bitmap_line::x2#0
|
2021-08-10 15:48:55 +00:00
|
|
|
[42] call abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
[43] abs_u16::return#0 = abs_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@12
|
|
|
|
bitmap_line::@12: scope:[bitmap_line] from bitmap_line
|
2020-10-05 20:58:02 +00:00
|
|
|
[44] bitmap_line::dx#0 = abs_u16::return#0
|
2021-08-10 15:48:55 +00:00
|
|
|
[45] call abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
[46] abs_u16::return#1 = abs_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@13
|
|
|
|
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12
|
2020-10-05 20:58:02 +00:00
|
|
|
[47] bitmap_line::dy#0 = abs_u16::return#1
|
|
|
|
[48] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@18
|
|
|
|
bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13
|
2020-10-05 20:58:02 +00:00
|
|
|
[49] if(bitmap_line::dy#0==0) goto bitmap_line::@4
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@1
|
|
|
|
bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18
|
2020-10-05 20:58:02 +00:00
|
|
|
[50] sgn_u16::w#0 = bitmap_line::x2#0
|
2021-08-10 15:48:55 +00:00
|
|
|
[51] call sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
[52] sgn_u16::return#0 = sgn_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@14
|
|
|
|
bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
[53] bitmap_line::sx#0 = sgn_u16::return#0
|
2021-08-10 15:48:55 +00:00
|
|
|
[54] call sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
[55] sgn_u16::return#1 = sgn_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@15
|
|
|
|
bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14
|
2020-10-05 20:58:02 +00:00
|
|
|
[56] bitmap_line::sy#0 = sgn_u16::return#1
|
|
|
|
[57] if(bitmap_line::dx#0>bitmap_line::dy#0) goto bitmap_line::@2
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@5
|
|
|
|
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@15
|
2020-10-05 20:58:02 +00:00
|
|
|
[58] bitmap_line::e#0 = bitmap_line::dx#0 >> 1
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@6
|
|
|
|
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7
|
2020-10-05 20:58:02 +00:00
|
|
|
[59] bitmap_line::e#3 = phi( bitmap_line::@5/bitmap_line::e#0, bitmap_line::@7/bitmap_line::e#6 )
|
|
|
|
[59] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 )
|
|
|
|
[59] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 )
|
|
|
|
[60] bitmap_plot::x#1 = bitmap_line::x#13
|
2021-08-10 15:48:55 +00:00
|
|
|
[61] bitmap_plot::y#1 = (char)bitmap_line::y#4
|
|
|
|
[62] call bitmap_plot
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@16
|
|
|
|
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6
|
2020-10-05 20:58:02 +00:00
|
|
|
[63] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0
|
|
|
|
[64] bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#0
|
|
|
|
[65] if(bitmap_line::dy#0>=bitmap_line::e#1) goto bitmap_line::@7
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@8
|
|
|
|
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@16
|
2020-10-05 20:58:02 +00:00
|
|
|
[66] bitmap_line::x#1 = bitmap_line::x#13 + bitmap_line::sx#0
|
|
|
|
[67] bitmap_line::e#2 = bitmap_line::e#1 - bitmap_line::dy#0
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@7
|
|
|
|
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@16 bitmap_line::@8
|
2020-10-05 20:58:02 +00:00
|
|
|
[68] bitmap_line::e#6 = phi( bitmap_line::@16/bitmap_line::e#1, bitmap_line::@8/bitmap_line::e#2 )
|
|
|
|
[68] bitmap_line::x#12 = phi( bitmap_line::@16/bitmap_line::x#13, bitmap_line::@8/bitmap_line::x#1 )
|
|
|
|
[69] if(bitmap_line::y#1!=bitmap_line::y2#0) goto bitmap_line::@6
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@3
|
|
|
|
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7
|
2020-10-05 20:58:02 +00:00
|
|
|
[70] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 )
|
|
|
|
[70] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 )
|
|
|
|
[71] bitmap_plot::x#2 = bitmap_line::x#6
|
2021-08-10 15:48:55 +00:00
|
|
|
[72] bitmap_plot::y#2 = (char)bitmap_line::y#7
|
|
|
|
[73] call bitmap_plot
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@return
|
|
|
|
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4
|
2020-06-27 21:26:57 +00:00
|
|
|
[74] return
|
2019-09-18 19:53:32 +00:00
|
|
|
to:@return
|
|
|
|
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@15
|
2020-10-05 20:58:02 +00:00
|
|
|
[75] bitmap_line::e1#0 = bitmap_line::dy#0 >> 1
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@9
|
|
|
|
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
[76] bitmap_line::e1#3 = phi( bitmap_line::@10/bitmap_line::e1#6, bitmap_line::@2/bitmap_line::e1#0 )
|
|
|
|
[76] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 )
|
|
|
|
[76] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 )
|
|
|
|
[77] bitmap_plot::x#3 = bitmap_line::x#7
|
2021-08-10 15:48:55 +00:00
|
|
|
[78] bitmap_plot::y#3 = (char)bitmap_line::y#15
|
|
|
|
[79] call bitmap_plot
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@17
|
|
|
|
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9
|
2020-10-05 20:58:02 +00:00
|
|
|
[80] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0
|
|
|
|
[81] bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#0
|
|
|
|
[82] if(bitmap_line::dx#0>=bitmap_line::e1#1) goto bitmap_line::@10
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@11
|
|
|
|
bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@17
|
2020-10-05 20:58:02 +00:00
|
|
|
[83] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0
|
|
|
|
[84] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@10
|
|
|
|
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17
|
2020-10-05 20:58:02 +00:00
|
|
|
[85] bitmap_line::e1#6 = phi( bitmap_line::@11/bitmap_line::e1#2, bitmap_line::@17/bitmap_line::e1#1 )
|
|
|
|
[85] bitmap_line::y#13 = phi( bitmap_line::@11/bitmap_line::y#2, bitmap_line::@17/bitmap_line::y#15 )
|
|
|
|
[86] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@3
|
|
|
|
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
|
2020-06-27 21:26:57 +00:00
|
|
|
[87] phi()
|
2021-08-10 15:48:55 +00:00
|
|
|
[88] call bitmap_plot
|
2019-09-18 19:53:32 +00:00
|
|
|
to:bitmap_line::@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void * memset(void *str , char c , unsigned int num)
|
2019-09-18 19:53:32 +00:00
|
|
|
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
[89] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 )
|
2021-08-10 15:48:55 +00:00
|
|
|
[89] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP )
|
2020-10-05 20:58:02 +00:00
|
|
|
[89] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 )
|
|
|
|
[90] if(memset::num#2<=0) goto memset::@return
|
2019-09-18 19:53:32 +00:00
|
|
|
to:memset::@1
|
|
|
|
memset::@1: scope:[memset] from memset
|
2021-08-10 15:48:55 +00:00
|
|
|
[91] memset::end#0 = (char *)memset::str#3 + memset::num#2
|
|
|
|
[92] memset::dst#4 = (char *)memset::str#3
|
2019-09-18 19:53:32 +00:00
|
|
|
to:memset::@2
|
|
|
|
memset::@2: scope:[memset] from memset::@1 memset::@3
|
2020-10-05 20:58:02 +00:00
|
|
|
[93] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
|
|
|
|
[94] if(memset::dst#2!=memset::end#0) goto memset::@3
|
2019-09-18 19:53:32 +00:00
|
|
|
to:memset::@return
|
|
|
|
memset::@return: scope:[memset] from memset memset::@2
|
2020-06-27 21:26:57 +00:00
|
|
|
[95] return
|
2019-09-18 19:53:32 +00:00
|
|
|
to:@return
|
|
|
|
memset::@3: scope:[memset] from memset::@2
|
2020-10-05 20:58:02 +00:00
|
|
|
[96] *memset::dst#2 = memset::c#4
|
|
|
|
[97] memset::dst#1 = ++ memset::dst#2
|
2019-09-18 19:53:32 +00:00
|
|
|
to:memset::@2
|
2019-09-18 21:00:30 +00:00
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int abs_u16(unsigned int w)
|
2020-06-27 21:26:57 +00:00
|
|
|
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
|
2020-10-05 20:58:02 +00:00
|
|
|
[98] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/bitmap_line::y2#0 )
|
2021-06-13 12:24:57 +00:00
|
|
|
[99] abs_u16::$0 = byte1 abs_u16::w#2
|
2020-10-05 20:58:02 +00:00
|
|
|
[100] abs_u16::$1 = abs_u16::$0 & $80
|
|
|
|
[101] if(0!=abs_u16::$1) goto abs_u16::@1
|
2020-06-27 21:26:57 +00:00
|
|
|
to:abs_u16::@return
|
|
|
|
abs_u16::@1: scope:[abs_u16] from abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
[102] abs_u16::return#2 = - abs_u16::w#2
|
2020-06-27 21:26:57 +00:00
|
|
|
to:abs_u16::@return
|
|
|
|
abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
[103] abs_u16::return#4 = phi( abs_u16::@1/abs_u16::return#2, abs_u16/abs_u16::w#2 )
|
2020-06-27 21:26:57 +00:00
|
|
|
[104] return
|
|
|
|
to:@return
|
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int sgn_u16(unsigned int w)
|
2020-06-27 21:26:57 +00:00
|
|
|
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
|
2020-10-05 20:58:02 +00:00
|
|
|
[105] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/bitmap_line::y2#0 )
|
2021-06-13 12:24:57 +00:00
|
|
|
[106] sgn_u16::$0 = byte1 sgn_u16::w#2
|
2020-10-05 20:58:02 +00:00
|
|
|
[107] sgn_u16::$1 = sgn_u16::$0 & $80
|
|
|
|
[108] if(0!=sgn_u16::$1) goto sgn_u16::@1
|
2020-06-27 21:26:57 +00:00
|
|
|
to:sgn_u16::@return
|
|
|
|
sgn_u16::@1: scope:[sgn_u16] from sgn_u16
|
|
|
|
[109] phi()
|
|
|
|
to:sgn_u16::@return
|
|
|
|
sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
|
2020-10-05 20:58:02 +00:00
|
|
|
[110] sgn_u16::return#4 = phi( sgn_u16::@1/-1, sgn_u16/1 )
|
2020-06-27 21:26:57 +00:00
|
|
|
[111] return
|
|
|
|
to:@return
|
|
|
|
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_plot(unsigned int x , char y)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
|
2020-10-05 20:58:02 +00:00
|
|
|
[112] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_line::x1#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 )
|
|
|
|
[112] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 )
|
|
|
|
[113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
|
2021-07-01 22:21:08 +00:00
|
|
|
[114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
2021-08-10 15:48:55 +00:00
|
|
|
[115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1
|
2021-07-01 22:21:08 +00:00
|
|
|
[116] bitmap_plot::$2 = byte0 bitmap_plot::x#4
|
|
|
|
[117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
2020-06-27 21:26:57 +00:00
|
|
|
to:bitmap_plot::@return
|
|
|
|
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
2020-06-27 19:18:00 +00:00
|
|
|
[118] return
|
2019-09-18 19:53:32 +00:00
|
|
|
to:@return
|
|
|
|
|
|
|
|
|
|
|
|
VARIABLE REGISTER WEIGHTS
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int abs_u16(unsigned int w)
|
|
|
|
char abs_u16::$0 // 2002.0
|
|
|
|
char abs_u16::$1 // 2002.0
|
|
|
|
unsigned int abs_u16::return
|
|
|
|
unsigned int abs_u16::return#0 // 202.0
|
|
|
|
unsigned int abs_u16::return#1 // 202.0
|
|
|
|
unsigned int abs_u16::return#2 // 2002.0
|
|
|
|
unsigned int abs_u16::return#4 // 551.0
|
|
|
|
unsigned int abs_u16::w
|
|
|
|
unsigned int abs_u16::w#0 // 202.0
|
|
|
|
unsigned int abs_u16::w#2 // 776.0
|
|
|
|
void bitmap_clear(char bgcol , char fgcol)
|
|
|
|
char bitmap_clear::bgcol
|
|
|
|
char bitmap_clear::col
|
|
|
|
char bitmap_clear::fgcol
|
|
|
|
char *bitmap_gfx
|
|
|
|
void bitmap_init(char *gfx , char *screen)
|
|
|
|
char bitmap_init::$4 // 202.0
|
|
|
|
char bitmap_init::$5 // 202.0
|
|
|
|
char bitmap_init::$6 // 202.0
|
|
|
|
char bitmap_init::$7 // 50.5
|
|
|
|
char bitmap_init::bits
|
|
|
|
char bitmap_init::bits#1 // 101.0
|
|
|
|
char bitmap_init::bits#3 // 151.5
|
|
|
|
char bitmap_init::bits#4 // 67.33333333333333
|
|
|
|
char *bitmap_init::gfx
|
|
|
|
char *bitmap_init::screen
|
|
|
|
char bitmap_init::x
|
|
|
|
char bitmap_init::x#1 // 151.5
|
|
|
|
char bitmap_init::x#2 // 50.5
|
|
|
|
char bitmap_init::y
|
|
|
|
char bitmap_init::y#1 // 151.5
|
|
|
|
char bitmap_init::y#2 // 50.5
|
|
|
|
char *bitmap_init::yoffs
|
|
|
|
char *bitmap_init::yoffs#1 // 202.0
|
|
|
|
char *bitmap_init::yoffs#2 // 63.125
|
|
|
|
char *bitmap_init::yoffs#4 // 101.0
|
|
|
|
void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2)
|
|
|
|
unsigned int bitmap_line::dx
|
|
|
|
unsigned int bitmap_line::dx#0 // 800.1842105263158
|
|
|
|
unsigned int bitmap_line::dy
|
|
|
|
unsigned int bitmap_line::dy#0 // 868.7714285714285
|
|
|
|
unsigned int bitmap_line::e
|
|
|
|
unsigned int bitmap_line::e#0 // 202.0
|
|
|
|
unsigned int bitmap_line::e#1 // 13334.666666666666
|
|
|
|
unsigned int bitmap_line::e#2 // 20002.0
|
|
|
|
unsigned int bitmap_line::e#3 // 4020.6000000000004
|
|
|
|
unsigned int bitmap_line::e#6 // 15001.5
|
|
|
|
unsigned int bitmap_line::e1
|
|
|
|
unsigned int bitmap_line::e1#0 // 202.0
|
|
|
|
unsigned int bitmap_line::e1#1 // 13334.666666666666
|
|
|
|
unsigned int bitmap_line::e1#2 // 20002.0
|
|
|
|
unsigned int bitmap_line::e1#3 // 4020.6000000000004
|
|
|
|
unsigned int bitmap_line::e1#6 // 15001.5
|
|
|
|
unsigned int bitmap_line::sx
|
|
|
|
unsigned int bitmap_line::sx#0 // 693.2068965517242
|
|
|
|
unsigned int bitmap_line::sy
|
|
|
|
unsigned int bitmap_line::sy#0 // 773.1923076923076
|
|
|
|
unsigned int bitmap_line::x
|
|
|
|
unsigned int bitmap_line::x#1 // 10001.0
|
|
|
|
unsigned int bitmap_line::x#12 // 20002.0
|
|
|
|
unsigned int bitmap_line::x#13 // 5714.857142857143
|
|
|
|
unsigned int bitmap_line::x#15 // 5714.857142857143
|
|
|
|
unsigned int bitmap_line::x#6 // 20103.0
|
|
|
|
unsigned int bitmap_line::x#7 // 7500.75
|
|
|
|
unsigned int bitmap_line::x1
|
|
|
|
unsigned int bitmap_line::x2
|
|
|
|
unsigned int bitmap_line::x2#0 // 340.4666666666667
|
|
|
|
unsigned int bitmap_line::y
|
|
|
|
unsigned int bitmap_line::y#1 // 5714.857142857143
|
|
|
|
unsigned int bitmap_line::y#13 // 20002.0
|
|
|
|
unsigned int bitmap_line::y#15 // 4286.142857142857
|
|
|
|
unsigned int bitmap_line::y#2 // 10001.0
|
|
|
|
unsigned int bitmap_line::y#4 // 5000.5
|
|
|
|
unsigned int bitmap_line::y#7 // 10001.0
|
|
|
|
unsigned int bitmap_line::y1
|
|
|
|
unsigned int bitmap_line::y2
|
|
|
|
void bitmap_plot(unsigned int x , char y)
|
|
|
|
unsigned int bitmap_plot::$1 // 200002.0
|
|
|
|
char bitmap_plot::$2 // 200002.0
|
|
|
|
char *bitmap_plot::plotter
|
|
|
|
unsigned int bitmap_plot::plotter#0 // 50000.5
|
|
|
|
char *bitmap_plot::plotter#1 // 150001.5
|
|
|
|
unsigned int bitmap_plot::x
|
|
|
|
unsigned int bitmap_plot::x#1 // 10001.0
|
|
|
|
unsigned int bitmap_plot::x#2 // 101.0
|
|
|
|
unsigned int bitmap_plot::x#3 // 10001.0
|
|
|
|
unsigned int bitmap_plot::x#4 // 55026.25
|
|
|
|
char bitmap_plot::y
|
|
|
|
char bitmap_plot::y#1 // 20002.0
|
|
|
|
char bitmap_plot::y#2 // 202.0
|
|
|
|
char bitmap_plot::y#3 // 20002.0
|
|
|
|
char bitmap_plot::y#4 // 220105.0
|
|
|
|
char *bitmap_screen
|
2020-10-05 20:58:02 +00:00
|
|
|
void main()
|
2021-08-10 15:48:55 +00:00
|
|
|
void * memset(void *str , char c , unsigned int num)
|
|
|
|
char memset::c
|
|
|
|
char memset::c#4 // 125.125
|
|
|
|
char *memset::dst
|
|
|
|
char *memset::dst#1 // 2002.0
|
|
|
|
char *memset::dst#2 // 1368.3333333333335
|
|
|
|
char *memset::dst#4 // 202.0
|
|
|
|
char *memset::end
|
|
|
|
char *memset::end#0 // 183.66666666666669
|
|
|
|
unsigned int memset::num
|
|
|
|
unsigned int memset::num#2 // 101.0
|
|
|
|
void *memset::return
|
|
|
|
void *memset::str
|
|
|
|
void *memset::str#3
|
|
|
|
unsigned int next
|
|
|
|
unsigned int next#0 // 11.0
|
|
|
|
unsigned int next#11 // 22.0
|
|
|
|
unsigned int next#6 // 11.0
|
|
|
|
unsigned int sgn_u16(unsigned int w)
|
|
|
|
char sgn_u16::$0 // 2002.0
|
|
|
|
char sgn_u16::$1 // 2002.0
|
|
|
|
unsigned int sgn_u16::return
|
|
|
|
unsigned int sgn_u16::return#0 // 202.0
|
|
|
|
unsigned int sgn_u16::return#1 // 202.0
|
|
|
|
unsigned int sgn_u16::return#4 // 50.5
|
|
|
|
unsigned int sgn_u16::w
|
|
|
|
unsigned int sgn_u16::w#0 // 202.0
|
|
|
|
unsigned int sgn_u16::w#2 // 1102.0
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
Initial phi equivalence classes
|
2020-06-27 19:18:00 +00:00
|
|
|
[ next#6 next#11 next#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
[ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
|
|
[ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
|
|
[ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
|
|
[ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
[ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
|
|
|
|
[ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ]
|
2020-04-19 09:05:54 +00:00
|
|
|
[ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
[ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ]
|
|
|
|
[ memset::num#2 ]
|
|
|
|
[ memset::str#3 ]
|
|
|
|
[ memset::c#4 ]
|
|
|
|
[ memset::dst#2 memset::dst#4 memset::dst#1 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
[ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ]
|
|
|
|
[ sgn_u16::w#2 sgn_u16::w#0 ]
|
|
|
|
[ sgn_u16::return#4 ]
|
|
|
|
[ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
|
|
|
[ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ]
|
2019-12-08 15:04:35 +00:00
|
|
|
Added variable bitmap_line::x2#0 to live range equivalence class [ bitmap_line::x2#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
Added variable bitmap_init::$7 to live range equivalence class [ bitmap_init::$7 ]
|
|
|
|
Added variable bitmap_init::$4 to live range equivalence class [ bitmap_init::$4 ]
|
|
|
|
Added variable bitmap_init::$5 to live range equivalence class [ bitmap_init::$5 ]
|
|
|
|
Added variable bitmap_init::$6 to live range equivalence class [ bitmap_init::$6 ]
|
2019-12-08 15:04:35 +00:00
|
|
|
Added variable abs_u16::return#0 to live range equivalence class [ abs_u16::return#0 ]
|
|
|
|
Added variable bitmap_line::dx#0 to live range equivalence class [ bitmap_line::dx#0 ]
|
|
|
|
Added variable abs_u16::return#1 to live range equivalence class [ abs_u16::return#1 ]
|
|
|
|
Added variable bitmap_line::dy#0 to live range equivalence class [ bitmap_line::dy#0 ]
|
|
|
|
Added variable sgn_u16::return#0 to live range equivalence class [ sgn_u16::return#0 ]
|
|
|
|
Added variable bitmap_line::sx#0 to live range equivalence class [ bitmap_line::sx#0 ]
|
|
|
|
Added variable sgn_u16::return#1 to live range equivalence class [ sgn_u16::return#1 ]
|
|
|
|
Added variable bitmap_line::sy#0 to live range equivalence class [ bitmap_line::sy#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
Added variable memset::end#0 to live range equivalence class [ memset::end#0 ]
|
|
|
|
Added variable abs_u16::$0 to live range equivalence class [ abs_u16::$0 ]
|
|
|
|
Added variable abs_u16::$1 to live range equivalence class [ abs_u16::$1 ]
|
|
|
|
Added variable sgn_u16::$0 to live range equivalence class [ sgn_u16::$0 ]
|
|
|
|
Added variable sgn_u16::$1 to live range equivalence class [ sgn_u16::$1 ]
|
2019-12-08 15:04:35 +00:00
|
|
|
Added variable bitmap_plot::plotter#0 to live range equivalence class [ bitmap_plot::plotter#0 ]
|
2020-04-19 09:05:54 +00:00
|
|
|
Added variable bitmap_plot::$1 to live range equivalence class [ bitmap_plot::$1 ]
|
2021-07-01 22:21:08 +00:00
|
|
|
Added variable bitmap_plot::plotter#1 to live range equivalence class [ bitmap_plot::plotter#1 ]
|
|
|
|
Added variable bitmap_plot::$2 to live range equivalence class [ bitmap_plot::$2 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
Complete equivalence classes
|
2020-06-27 19:18:00 +00:00
|
|
|
[ next#6 next#11 next#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
[ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
|
|
[ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
|
|
[ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
|
|
[ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
[ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
|
|
|
|
[ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ]
|
2020-04-19 09:05:54 +00:00
|
|
|
[ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
[ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ]
|
|
|
|
[ memset::num#2 ]
|
|
|
|
[ memset::str#3 ]
|
|
|
|
[ memset::c#4 ]
|
|
|
|
[ memset::dst#2 memset::dst#4 memset::dst#1 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
[ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ]
|
|
|
|
[ sgn_u16::w#2 sgn_u16::w#0 ]
|
|
|
|
[ sgn_u16::return#4 ]
|
|
|
|
[ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
|
|
|
[ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
[ bitmap_line::x2#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
[ bitmap_init::$7 ]
|
|
|
|
[ bitmap_init::$4 ]
|
|
|
|
[ bitmap_init::$5 ]
|
|
|
|
[ bitmap_init::$6 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
[ abs_u16::return#0 ]
|
|
|
|
[ bitmap_line::dx#0 ]
|
|
|
|
[ abs_u16::return#1 ]
|
|
|
|
[ bitmap_line::dy#0 ]
|
|
|
|
[ sgn_u16::return#0 ]
|
|
|
|
[ bitmap_line::sx#0 ]
|
|
|
|
[ sgn_u16::return#1 ]
|
|
|
|
[ bitmap_line::sy#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
[ memset::end#0 ]
|
|
|
|
[ abs_u16::$0 ]
|
|
|
|
[ abs_u16::$1 ]
|
|
|
|
[ sgn_u16::$0 ]
|
|
|
|
[ sgn_u16::$1 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
[ bitmap_plot::plotter#0 ]
|
2020-04-19 09:05:54 +00:00
|
|
|
[ bitmap_plot::$1 ]
|
2021-07-01 22:21:08 +00:00
|
|
|
[ bitmap_plot::plotter#1 ]
|
|
|
|
[ bitmap_plot::$2 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
Allocated zp[1]:2 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
|
|
|
Allocated zp[2]:3 [ bitmap_plot::$1 ]
|
|
|
|
Allocated zp[1]:5 [ bitmap_plot::$2 ]
|
|
|
|
Allocated zp[2]:6 [ bitmap_plot::plotter#1 ]
|
|
|
|
Allocated zp[2]:8 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ]
|
|
|
|
Allocated zp[2]:10 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ]
|
|
|
|
Allocated zp[2]:12 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ]
|
|
|
|
Allocated zp[2]:14 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
|
|
|
|
Allocated zp[2]:16 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ]
|
|
|
|
Allocated zp[2]:18 [ bitmap_plot::plotter#0 ]
|
|
|
|
Allocated zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ]
|
|
|
|
Allocated zp[2]:22 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ]
|
|
|
|
Allocated zp[1]:24 [ abs_u16::$0 ]
|
|
|
|
Allocated zp[1]:25 [ abs_u16::$1 ]
|
|
|
|
Allocated zp[1]:26 [ sgn_u16::$0 ]
|
|
|
|
Allocated zp[1]:27 [ sgn_u16::$1 ]
|
|
|
|
Allocated zp[2]:28 [ sgn_u16::w#2 sgn_u16::w#0 ]
|
|
|
|
Allocated zp[2]:30 [ bitmap_line::dy#0 ]
|
|
|
|
Allocated zp[2]:32 [ bitmap_line::dx#0 ]
|
|
|
|
Allocated zp[2]:34 [ bitmap_line::sy#0 ]
|
|
|
|
Allocated zp[2]:36 [ bitmap_line::sx#0 ]
|
|
|
|
Allocated zp[2]:38 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
|
|
|
Allocated zp[2]:40 [ bitmap_line::x2#0 ]
|
|
|
|
Allocated zp[1]:42 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
|
|
Allocated zp[1]:43 [ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
|
|
Allocated zp[1]:44 [ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
|
|
Allocated zp[1]:45 [ bitmap_init::$4 ]
|
|
|
|
Allocated zp[1]:46 [ bitmap_init::$5 ]
|
|
|
|
Allocated zp[1]:47 [ bitmap_init::$6 ]
|
|
|
|
Allocated zp[2]:48 [ abs_u16::return#0 ]
|
|
|
|
Allocated zp[2]:50 [ abs_u16::return#1 ]
|
|
|
|
Allocated zp[2]:52 [ sgn_u16::return#0 ]
|
|
|
|
Allocated zp[2]:54 [ sgn_u16::return#1 ]
|
|
|
|
Allocated zp[2]:56 [ memset::end#0 ]
|
|
|
|
Allocated zp[1]:58 [ memset::c#4 ]
|
|
|
|
Allocated zp[2]:59 [ memset::num#2 ]
|
|
|
|
Allocated zp[2]:61 [ sgn_u16::return#4 ]
|
|
|
|
Allocated zp[1]:63 [ bitmap_init::$7 ]
|
|
|
|
Allocated zp[2]:64 [ next#6 next#11 next#0 ]
|
|
|
|
Allocated zp[2]:66 [ memset::str#3 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
|
|
Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
2020-12-29 18:37:32 +00:00
|
|
|
Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [8] bitmap_line::x2#0 = next#6 [ next#6 bitmap_line::x2#0 ] ( [ next#6 bitmap_line::x2#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [11] if(next#0!=$140) goto main::@5 [ next#0 ] ( [ next#0 ] { } ) always clobbers reg byte a
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a
|
2021-09-23 06:24:56 +00:00
|
|
|
Removing always clobbered register reg byte a as potential for zp[1]:44 [ bitmap_init::y#2 bitmap_init::y#1 ]
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [41] abs_u16::w#0 = bitmap_line::x2#0 [ bitmap_line::x2#0 abs_u16::w#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [43] abs_u16::return#0 = abs_u16::return#4 [ bitmap_line::x2#0 abs_u16::return#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::return#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [44] bitmap_line::dx#0 = abs_u16::return#0 [ bitmap_line::x2#0 bitmap_line::dx#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [46] abs_u16::return#1 = abs_u16::return#4 [ bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#1 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [47] bitmap_line::dy#0 = abs_u16::return#1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [48] if(bitmap_line::dx#0!=0) goto bitmap_line::@1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [49] if(bitmap_line::dy#0==0) goto bitmap_line::@4 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [50] sgn_u16::w#0 = bitmap_line::x2#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::w#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::w#0 ] { { sgn_u16::w#0 = sgn_u16::w#2 bitmap_line::x2#0 next#6 } { sgn_u16::return#0 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [52] sgn_u16::return#0 = sgn_u16::return#4 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::return#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::return#0 ] { { sgn_u16::w#0 = sgn_u16::w#2 bitmap_line::x2#0 next#6 } { sgn_u16::return#0 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [53] bitmap_line::sx#0 = sgn_u16::return#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 ] { { next#6 = bitmap_line::x2#0 } { sgn_u16::return#1 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [55] sgn_u16::return#1 = sgn_u16::return#4 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 sgn_u16::return#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 sgn_u16::return#1 ] { { next#6 = bitmap_line::x2#0 } { sgn_u16::return#1 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [56] bitmap_line::sy#0 = sgn_u16::return#1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [57] if(bitmap_line::dx#0>bitmap_line::dy#0) goto bitmap_line::@2 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [58] bitmap_line::e#0 = bitmap_line::dx#0 >> 1 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e#0 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [60] bitmap_plot::x#1 = bitmap_line::x#13 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } ) always clobbers reg byte a
|
|
|
|
Statement [63] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::e#3 bitmap_line::y#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::e#3 bitmap_line::y#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [64] bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [65] if(bitmap_line::dy#0>=bitmap_line::e#1) goto bitmap_line::@7 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [66] bitmap_line::x#1 = bitmap_line::x#13 + bitmap_line::sx#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::e#1 bitmap_line::x#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::e#1 bitmap_line::x#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [67] bitmap_line::e#2 = bitmap_line::e#1 - bitmap_line::dy#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::x#1 bitmap_line::e#2 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::x#1 bitmap_line::e#2 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [69] if(bitmap_line::y#1!=bitmap_line::y2#0) goto bitmap_line::@6 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#12 bitmap_line::y#1 bitmap_line::e#6 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#12 bitmap_line::y#1 bitmap_line::e#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [71] bitmap_plot::x#2 = bitmap_line::x#6 [ bitmap_line::y#7 bitmap_plot::x#2 ] ( bitmap_line:9 [ next#6 bitmap_line::y#7 bitmap_plot::x#2 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } ) always clobbers reg byte a
|
|
|
|
Statement [75] bitmap_line::e1#0 = bitmap_line::dy#0 >> 1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e1#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e1#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [77] bitmap_plot::x#3 = bitmap_line::x#7 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#3 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } ) always clobbers reg byte a
|
|
|
|
Statement [80] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#3 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [81] bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [82] if(bitmap_line::dx#0>=bitmap_line::e1#1) goto bitmap_line::@10 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [83] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::e1#1 bitmap_line::y#2 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::e1#1 bitmap_line::y#2 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [84] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [86] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [90] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:37 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:39 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a
|
2021-09-23 06:24:56 +00:00
|
|
|
Removing always clobbered register reg byte a as potential for zp[1]:58 [ memset::c#4 ]
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:37 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:39 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a
|
|
|
|
Statement [92] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [94] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a
|
|
|
|
Statement [96] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
2021-09-23 06:24:56 +00:00
|
|
|
Removing always clobbered register reg byte y as potential for zp[1]:58 [ memset::c#4 ]
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [102] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:9::abs_u16:42 [ next#6 bitmap_line::x2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:9::abs_u16:45 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
2021-07-01 22:21:08 +00:00
|
|
|
Statement [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
2021-07-01 22:21:08 +00:00
|
|
|
Statement [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a reg byte y
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
|
|
Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
2020-12-29 18:37:32 +00:00
|
|
|
Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [8] bitmap_line::x2#0 = next#6 [ next#6 bitmap_line::x2#0 ] ( [ next#6 bitmap_line::x2#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [11] if(next#0!=$140) goto main::@5 [ next#0 ] ( [ next#0 ] { } ) always clobbers reg byte a
|
|
|
|
Statement [24] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] { } ) always clobbers reg byte a
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [41] abs_u16::w#0 = bitmap_line::x2#0 [ bitmap_line::x2#0 abs_u16::w#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [43] abs_u16::return#0 = abs_u16::return#4 [ bitmap_line::x2#0 abs_u16::return#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::return#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [44] bitmap_line::dx#0 = abs_u16::return#0 [ bitmap_line::x2#0 bitmap_line::dx#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [46] abs_u16::return#1 = abs_u16::return#4 [ bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#1 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [47] bitmap_line::dy#0 = abs_u16::return#1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [48] if(bitmap_line::dx#0!=0) goto bitmap_line::@1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [49] if(bitmap_line::dy#0==0) goto bitmap_line::@4 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [50] sgn_u16::w#0 = bitmap_line::x2#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::w#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::w#0 ] { { sgn_u16::w#0 = sgn_u16::w#2 bitmap_line::x2#0 next#6 } { sgn_u16::return#0 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [52] sgn_u16::return#0 = sgn_u16::return#4 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::return#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 sgn_u16::return#0 ] { { sgn_u16::w#0 = sgn_u16::w#2 bitmap_line::x2#0 next#6 } { sgn_u16::return#0 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [53] bitmap_line::sx#0 = sgn_u16::return#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 ] { { next#6 = bitmap_line::x2#0 } { sgn_u16::return#1 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [55] sgn_u16::return#1 = sgn_u16::return#4 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 sgn_u16::return#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 sgn_u16::return#1 ] { { next#6 = bitmap_line::x2#0 } { sgn_u16::return#1 = sgn_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [56] bitmap_line::sy#0 = sgn_u16::return#1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [57] if(bitmap_line::dx#0>bitmap_line::dy#0) goto bitmap_line::@2 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [58] bitmap_line::e#0 = bitmap_line::dx#0 >> 1 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e#0 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [60] bitmap_plot::x#1 = bitmap_line::x#13 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } ) always clobbers reg byte a
|
|
|
|
Statement [63] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::e#3 bitmap_line::y#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::e#3 bitmap_line::y#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [64] bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [65] if(bitmap_line::dy#0>=bitmap_line::e#1) goto bitmap_line::@7 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#1 bitmap_line::e#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [66] bitmap_line::x#1 = bitmap_line::x#13 + bitmap_line::sx#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::e#1 bitmap_line::x#1 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::e#1 bitmap_line::x#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [67] bitmap_line::e#2 = bitmap_line::e#1 - bitmap_line::dy#0 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::x#1 bitmap_line::e#2 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::y#1 bitmap_line::x#1 bitmap_line::e#2 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [69] if(bitmap_line::y#1!=bitmap_line::y2#0) goto bitmap_line::@6 [ bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#12 bitmap_line::y#1 bitmap_line::e#6 ] ( bitmap_line:9 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#12 bitmap_line::y#1 bitmap_line::e#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [71] bitmap_plot::x#2 = bitmap_line::x#6 [ bitmap_line::y#7 bitmap_plot::x#2 ] ( bitmap_line:9 [ next#6 bitmap_line::y#7 bitmap_plot::x#2 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } ) always clobbers reg byte a
|
|
|
|
Statement [75] bitmap_line::e1#0 = bitmap_line::dy#0 >> 1 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e1#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::e1#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [77] bitmap_plot::x#3 = bitmap_line::x#7 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#3 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } ) always clobbers reg byte a
|
|
|
|
Statement [80] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#3 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [81] bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [82] if(bitmap_line::dx#0>=bitmap_line::e1#1) goto bitmap_line::@10 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#15 bitmap_line::e1#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [83] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::e1#1 bitmap_line::y#2 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::e1#1 bitmap_line::y#2 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [84] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [86] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
|
|
|
Statement [90] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:37 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:39 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:37 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:39 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a
|
|
|
|
Statement [92] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a
|
2020-10-05 20:58:02 +00:00
|
|
|
Statement [94] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a
|
|
|
|
Statement [96] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
|
|
|
Statement [102] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:9::abs_u16:42 [ next#6 bitmap_line::x2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:9::abs_u16:45 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
|
|
|
Statement [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
2021-07-01 22:21:08 +00:00
|
|
|
Statement [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
2021-08-10 15:48:55 +00:00
|
|
|
Statement [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a
|
2021-07-01 22:21:08 +00:00
|
|
|
Statement [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a reg byte y
|
2021-09-23 06:24:56 +00:00
|
|
|
Potential registers zp[2]:64 [ next#6 next#11 next#0 ] : zp[2]:64 ,
|
|
|
|
Potential registers zp[1]:42 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] : zp[1]:42 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[1]:43 [ bitmap_init::x#2 bitmap_init::x#1 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[1]:44 [ bitmap_init::y#2 bitmap_init::y#1 ] : zp[1]:44 , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[2]:38 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] : zp[2]:38 ,
|
|
|
|
Potential registers zp[2]:14 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] : zp[2]:14 ,
|
|
|
|
Potential registers zp[2]:10 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] : zp[2]:10 ,
|
|
|
|
Potential registers zp[2]:12 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ] : zp[2]:12 ,
|
|
|
|
Potential registers zp[2]:16 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] : zp[2]:16 ,
|
|
|
|
Potential registers zp[2]:59 [ memset::num#2 ] : zp[2]:59 ,
|
|
|
|
Potential registers zp[2]:66 [ memset::str#3 ] : zp[2]:66 ,
|
|
|
|
Potential registers zp[1]:58 [ memset::c#4 ] : zp[1]:58 , reg byte x ,
|
|
|
|
Potential registers zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:20 ,
|
|
|
|
Potential registers zp[2]:22 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] : zp[2]:22 ,
|
|
|
|
Potential registers zp[2]:28 [ sgn_u16::w#2 sgn_u16::w#0 ] : zp[2]:28 ,
|
|
|
|
Potential registers zp[2]:61 [ sgn_u16::return#4 ] : zp[2]:61 ,
|
|
|
|
Potential registers zp[1]:2 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[2]:8 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] : zp[2]:8 ,
|
|
|
|
Potential registers zp[2]:40 [ bitmap_line::x2#0 ] : zp[2]:40 ,
|
|
|
|
Potential registers zp[1]:63 [ bitmap_init::$7 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y ,
|
2021-12-27 00:16:04 +00:00
|
|
|
Potential registers zp[1]:45 [ bitmap_init::$4 ] : zp[1]:45 , reg byte a , reg byte x , reg byte y ,
|
2021-09-23 06:24:56 +00:00
|
|
|
Potential registers zp[1]:46 [ bitmap_init::$5 ] : zp[1]:46 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[1]:47 [ bitmap_init::$6 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[2]:48 [ abs_u16::return#0 ] : zp[2]:48 ,
|
|
|
|
Potential registers zp[2]:32 [ bitmap_line::dx#0 ] : zp[2]:32 ,
|
|
|
|
Potential registers zp[2]:50 [ abs_u16::return#1 ] : zp[2]:50 ,
|
|
|
|
Potential registers zp[2]:30 [ bitmap_line::dy#0 ] : zp[2]:30 ,
|
|
|
|
Potential registers zp[2]:52 [ sgn_u16::return#0 ] : zp[2]:52 ,
|
|
|
|
Potential registers zp[2]:36 [ bitmap_line::sx#0 ] : zp[2]:36 ,
|
|
|
|
Potential registers zp[2]:54 [ sgn_u16::return#1 ] : zp[2]:54 ,
|
|
|
|
Potential registers zp[2]:34 [ bitmap_line::sy#0 ] : zp[2]:34 ,
|
|
|
|
Potential registers zp[2]:56 [ memset::end#0 ] : zp[2]:56 ,
|
|
|
|
Potential registers zp[1]:24 [ abs_u16::$0 ] : zp[1]:24 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[1]:25 [ abs_u16::$1 ] : zp[1]:25 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[1]:26 [ sgn_u16::$0 ] : zp[1]:26 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[1]:27 [ sgn_u16::$1 ] : zp[1]:27 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
Potential registers zp[2]:18 [ bitmap_plot::plotter#0 ] : zp[2]:18 ,
|
|
|
|
Potential registers zp[2]:3 [ bitmap_plot::$1 ] : zp[2]:3 ,
|
|
|
|
Potential registers zp[2]:6 [ bitmap_plot::plotter#1 ] : zp[2]:6 ,
|
|
|
|
Potential registers zp[1]:5 [ bitmap_plot::$2 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y ,
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
REGISTER UPLIFT SCOPES
|
2021-09-23 06:24:56 +00:00
|
|
|
Uplift Scope [bitmap_plot] 260,311: zp[1]:2 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:3 [ bitmap_plot::$1 ] 200,002: zp[1]:5 [ bitmap_plot::$2 ] 150,001.5: zp[2]:6 [ bitmap_plot::plotter#1 ] 75,129.25: zp[2]:8 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:18 [ bitmap_plot::plotter#0 ]
|
|
|
|
Uplift Scope [bitmap_line] 69,036.46: zp[2]:10 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] 55,005.5: zp[2]:12 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ] 52,560.77: zp[2]:14 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 52,560.77: zp[2]:16 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 868.77: zp[2]:30 [ bitmap_line::dy#0 ] 800.18: zp[2]:32 [ bitmap_line::dx#0 ] 773.19: zp[2]:34 [ bitmap_line::sy#0 ] 693.21: zp[2]:36 [ bitmap_line::sx#0 ] 340.47: zp[2]:40 [ bitmap_line::x2#0 ]
|
|
|
|
Uplift Scope [abs_u16] 3,531: zp[2]:22 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] 2,002: zp[1]:24 [ abs_u16::$0 ] 2,002: zp[1]:25 [ abs_u16::$1 ] 202: zp[2]:48 [ abs_u16::return#0 ] 202: zp[2]:50 [ abs_u16::return#1 ]
|
|
|
|
Uplift Scope [sgn_u16] 2,002: zp[1]:26 [ sgn_u16::$0 ] 2,002: zp[1]:27 [ sgn_u16::$1 ] 1,304: zp[2]:28 [ sgn_u16::w#2 sgn_u16::w#0 ] 202: zp[2]:52 [ sgn_u16::return#0 ] 202: zp[2]:54 [ sgn_u16::return#1 ] 50.5: zp[2]:61 [ sgn_u16::return#4 ]
|
|
|
|
Uplift Scope [memset] 3,572.33: zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 183.67: zp[2]:56 [ memset::end#0 ] 125.12: zp[1]:58 [ memset::c#4 ] 101: zp[2]:59 [ memset::num#2 ] 0: zp[2]:66 [ memset::str#3 ]
|
|
|
|
Uplift Scope [bitmap_init] 366.12: zp[2]:38 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 319.83: zp[1]:42 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 202: zp[1]:43 [ bitmap_init::x#2 bitmap_init::x#1 ] 202: zp[1]:44 [ bitmap_init::y#2 bitmap_init::y#1 ] 202: zp[1]:45 [ bitmap_init::$4 ] 202: zp[1]:46 [ bitmap_init::$5 ] 202: zp[1]:47 [ bitmap_init::$6 ] 50.5: zp[1]:63 [ bitmap_init::$7 ]
|
|
|
|
Uplift Scope [] 44: zp[2]:64 [ next#6 next#11 next#0 ]
|
2020-04-26 21:30:04 +00:00
|
|
|
Uplift Scope [MOS6526_CIA]
|
2020-04-28 20:58:16 +00:00
|
|
|
Uplift Scope [MOS6569_VICII]
|
2020-04-27 22:30:35 +00:00
|
|
|
Uplift Scope [MOS6581_SID]
|
2019-09-18 19:53:32 +00:00
|
|
|
Uplift Scope [bitmap_clear]
|
|
|
|
Uplift Scope [main]
|
|
|
|
|
2021-09-23 06:24:56 +00:00
|
|
|
Uplifting [bitmap_plot] best 36602 combination reg byte x [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] zp[2]:3 [ bitmap_plot::$1 ] reg byte x [ bitmap_plot::$2 ] zp[2]:6 [ bitmap_plot::plotter#1 ] zp[2]:8 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] zp[2]:18 [ bitmap_plot::plotter#0 ]
|
|
|
|
Uplifting [bitmap_line] best 36602 combination zp[2]:10 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] zp[2]:12 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ] zp[2]:14 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] zp[2]:16 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] zp[2]:30 [ bitmap_line::dy#0 ] zp[2]:32 [ bitmap_line::dx#0 ] zp[2]:34 [ bitmap_line::sy#0 ] zp[2]:36 [ bitmap_line::sx#0 ] zp[2]:40 [ bitmap_line::x2#0 ]
|
|
|
|
Uplifting [abs_u16] best 36592 combination zp[2]:22 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] reg byte a [ abs_u16::$0 ] reg byte a [ abs_u16::$1 ] zp[2]:48 [ abs_u16::return#0 ] zp[2]:50 [ abs_u16::return#1 ]
|
|
|
|
Uplifting [sgn_u16] best 36582 combination reg byte a [ sgn_u16::$0 ] reg byte a [ sgn_u16::$1 ] zp[2]:28 [ sgn_u16::w#2 sgn_u16::w#0 ] zp[2]:52 [ sgn_u16::return#0 ] zp[2]:54 [ sgn_u16::return#1 ] zp[2]:61 [ sgn_u16::return#4 ]
|
|
|
|
Uplifting [memset] best 36566 combination zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:56 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:59 [ memset::num#2 ] zp[2]:66 [ memset::str#3 ]
|
|
|
|
Uplifting [bitmap_init] best 36116 combination zp[2]:38 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#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 ] reg byte a [ bitmap_init::$4 ] zp[1]:46 [ bitmap_init::$5 ] zp[1]:47 [ bitmap_init::$6 ] zp[1]:63 [ bitmap_init::$7 ]
|
2021-12-27 00:16:04 +00:00
|
|
|
Limited combination testing to 100 combinations of 12288 possible.
|
2021-09-23 06:24:56 +00:00
|
|
|
Uplifting [] best 36116 combination zp[2]:64 [ next#6 next#11 next#0 ]
|
2021-06-13 12:24:57 +00:00
|
|
|
Uplifting [MOS6526_CIA] best 36116 combination
|
|
|
|
Uplifting [MOS6569_VICII] best 36116 combination
|
|
|
|
Uplifting [MOS6581_SID] best 36116 combination
|
|
|
|
Uplifting [bitmap_clear] best 36116 combination
|
|
|
|
Uplifting [main] best 36116 combination
|
2021-09-23 06:24:56 +00:00
|
|
|
Attempting to uplift remaining variables inzp[1]:46 [ bitmap_init::$5 ]
|
2021-06-13 12:24:57 +00:00
|
|
|
Uplifting [bitmap_init] best 36056 combination reg byte a [ bitmap_init::$5 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
Attempting to uplift remaining variables inzp[1]:47 [ bitmap_init::$6 ]
|
2021-06-13 12:24:57 +00:00
|
|
|
Uplifting [bitmap_init] best 35996 combination reg byte a [ bitmap_init::$6 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
Attempting to uplift remaining variables inzp[1]:63 [ bitmap_init::$7 ]
|
|
|
|
Uplifting [bitmap_init] best 35996 combination zp[1]:63 [ bitmap_init::$7 ]
|
|
|
|
Coalescing zero page register [ zp[2]:10 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] ] with [ zp[2]:8 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] ] - score: 3
|
|
|
|
Coalescing zero page register [ zp[2]:64 [ next#6 next#11 next#0 ] ] with [ zp[2]:40 [ bitmap_line::x2#0 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:59 [ memset::num#2 ] ] with [ zp[2]:56 [ memset::end#0 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:66 [ memset::str#3 ] ] with [ zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:22 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] ] with [ zp[2]:48 [ abs_u16::return#0 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:22 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::return#0 ] ] with [ zp[2]:50 [ abs_u16::return#1 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:61 [ sgn_u16::return#4 ] ] with [ zp[2]:52 [ sgn_u16::return#0 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:61 [ sgn_u16::return#4 sgn_u16::return#0 ] ] with [ zp[2]:54 [ sgn_u16::return#1 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:18 [ bitmap_plot::plotter#0 ] ] with [ zp[2]:6 [ bitmap_plot::plotter#1 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:22 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::return#0 abs_u16::return#1 ] ] with [ zp[2]:30 [ bitmap_line::dy#0 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:61 [ sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 ] ] with [ zp[2]:34 [ bitmap_line::sy#0 ] ] - score: 1
|
|
|
|
Coalescing zero page register [ zp[2]:38 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ] with [ zp[2]:64 [ next#6 next#11 next#0 bitmap_line::x2#0 ] ]
|
|
|
|
Coalescing zero page register [ zp[2]:59 [ memset::num#2 memset::end#0 ] ] with [ zp[2]:14 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] ]
|
|
|
|
Coalescing zero page register [ zp[2]:66 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] with [ zp[2]:10 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] ]
|
|
|
|
Coalescing zero page register [ zp[2]:18 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ] ] with [ zp[2]:28 [ sgn_u16::w#2 sgn_u16::w#0 ] ]
|
|
|
|
Allocated (was zp[2]:18) zp[2]:2 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 sgn_u16::w#2 sgn_u16::w#0 ]
|
|
|
|
Allocated (was zp[2]:3) zp[2]:4 [ bitmap_plot::$1 ]
|
|
|
|
Allocated (was zp[2]:66) zp[2]:6 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ]
|
|
|
|
Allocated (was zp[2]:12) zp[2]:8 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ]
|
|
|
|
Allocated (was zp[2]:59) zp[2]:10 [ memset::num#2 memset::end#0 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
|
|
|
|
Allocated (was zp[2]:16) zp[2]:12 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ]
|
|
|
|
Allocated (was zp[2]:22) zp[2]:14 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 ]
|
|
|
|
Allocated (was zp[2]:61) zp[2]:16 [ sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 bitmap_line::sy#0 ]
|
|
|
|
Allocated (was zp[2]:32) zp[2]:18 [ bitmap_line::dx#0 ]
|
|
|
|
Allocated (was zp[2]:38) zp[2]:20 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 next#6 next#11 next#0 bitmap_line::x2#0 ]
|
|
|
|
Allocated (was zp[2]:36) zp[2]:22 [ bitmap_line::sx#0 ]
|
|
|
|
Allocated (was zp[1]:63) zp[1]:24 [ bitmap_init::$7 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
ASSEMBLER BEFORE OPTIMIZATION
|
|
|
|
// File Comments
|
2021-02-04 07:53:47 +00:00
|
|
|
// Shows that c64-bitmap.kc line() does not have the same problem as bitmap-draw.kc
|
2019-09-18 19:53:32 +00:00
|
|
|
// See bitmap-line-anim-1.kc
|
|
|
|
// Upstart
|
2020-12-21 07:57:41 +00:00
|
|
|
// Commodore 64 PRG executable file
|
|
|
|
.file [name="bitmap-line-anim-2.prg", type="prg", segments="Program"]
|
|
|
|
.segmentdef Program [segments="Basic, Code, Data"]
|
|
|
|
.segmentdef Basic [start=$0801]
|
|
|
|
.segmentdef Code [start=$80d]
|
|
|
|
.segmentdef Data [startAfter="Code"]
|
|
|
|
.segment Basic
|
2020-05-11 00:36:37 +00:00
|
|
|
:BasicUpstart(main)
|
2019-09-18 19:53:32 +00:00
|
|
|
// Global Constants & labels
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1 Bit#5: BMM Turn Bitmap Mode on/off
|
2020-12-29 18:37:32 +00:00
|
|
|
.const VICII_BMM = $20
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off
|
2020-12-29 18:37:32 +00:00
|
|
|
.const VICII_DEN = $10
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows
|
|
|
|
/// RSEL| Display window height | First line | Last line
|
|
|
|
/// ----+--------------------------+-------------+----------
|
|
|
|
/// 0 | 24 text lines/192 pixels | 55 ($37) | 246 ($f6)
|
|
|
|
/// 1 | 25 text lines/200 pixels | 51 ($33) | 250 ($fa)
|
2020-12-29 18:37:32 +00:00
|
|
|
.const VICII_RSEL = 8
|
2019-09-18 19:53:32 +00:00
|
|
|
.const WHITE = 1
|
|
|
|
.const PURPLE = 4
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D020 Border Color
|
2020-05-02 09:38:51 +00:00
|
|
|
.label BORDER_COLOR = $d020
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D021 Background Color 0
|
2020-05-02 09:38:51 +00:00
|
|
|
.label BG_COLOR = $d021
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1
|
|
|
|
/// @see #VICII_CONTROL1
|
2020-04-30 20:15:59 +00:00
|
|
|
.label D011 = $d011
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D018 VIC-II base addresses
|
|
|
|
/// - Bit#0: not used
|
|
|
|
/// - Bit#1-#3: CB Address Bits 11-13 of the Character Set (*2048)
|
|
|
|
/// - Bit#4-#7: VM Address Bits 10-13 of the Screen RAM (*1024)
|
|
|
|
/// Initial Value: %00010100
|
2020-12-29 18:37:32 +00:00
|
|
|
.label VICII_MEMORY = $d018
|
2019-09-18 19:53:32 +00:00
|
|
|
.label SCREEN = $400
|
|
|
|
.label BITMAP = $2000
|
2021-09-23 06:24:56 +00:00
|
|
|
.label next = $14
|
2020-12-21 07:57:41 +00:00
|
|
|
.segment Code
|
2019-09-18 19:53:32 +00:00
|
|
|
// main
|
|
|
|
main: {
|
2020-10-05 20:58:02 +00:00
|
|
|
// [0] *BORDER_COLOR = 0 -- _deref_pbuc1=vbuc2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #0
|
2020-05-02 09:38:51 +00:00
|
|
|
sta BORDER_COLOR
|
2020-10-05 20:58:02 +00:00
|
|
|
// [1] *BG_COLOR = 0 -- _deref_pbuc1=vbuc2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #0
|
2020-05-02 09:38:51 +00:00
|
|
|
sta BG_COLOR
|
2020-12-29 18:37:32 +00:00
|
|
|
// [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2
|
|
|
|
lda #VICII_BMM|VICII_DEN|VICII_RSEL|3
|
2019-09-18 19:53:32 +00:00
|
|
|
sta D011
|
2021-08-10 15:48:55 +00:00
|
|
|
// [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
|
2020-12-29 18:37:32 +00:00
|
|
|
sta VICII_MEMORY
|
2021-08-10 15:48:55 +00:00
|
|
|
// [4] call bitmap_init
|
2020-06-27 21:26:57 +00:00
|
|
|
// [14] phi from main to bitmap_init [phi:main->bitmap_init]
|
2019-09-18 19:53:32 +00:00
|
|
|
bitmap_init_from_main:
|
|
|
|
jsr bitmap_init
|
2020-06-27 19:18:00 +00:00
|
|
|
// [5] phi from main to main::@3 [phi:main->main::@3]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b3_from_main:
|
|
|
|
jmp __b3
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@3
|
2019-09-29 21:13:37 +00:00
|
|
|
__b3:
|
2021-08-10 15:48:55 +00:00
|
|
|
// [6] call bitmap_clear
|
2020-06-27 21:26:57 +00:00
|
|
|
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear]
|
2019-09-29 21:13:37 +00:00
|
|
|
bitmap_clear_from___b3:
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_clear
|
2020-06-27 19:18:00 +00:00
|
|
|
// [7] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1_from___b3:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [7] phi next#6 = 0 [phi:main::@3->main::@1#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<0
|
|
|
|
sta.z next
|
|
|
|
lda #>0
|
|
|
|
sta.z next+1
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b1
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@1
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [8] bitmap_line::x2#0 = next#6
|
2021-08-10 15:48:55 +00:00
|
|
|
// [9] call bitmap_line
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_line
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b4
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@4
|
2019-09-29 21:13:37 +00:00
|
|
|
__b4:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [10] next#0 = ++ next#6 -- vwuz1=_inc_vwuz1
|
2019-09-18 19:53:32 +00:00
|
|
|
inc.z next
|
|
|
|
bne !+
|
|
|
|
inc.z next+1
|
|
|
|
!:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [11] if(next#0!=$140) goto main::@5 -- vwuz1_neq_vwuc1_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z next+1
|
|
|
|
cmp #>$140
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b5_from___b4
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z next
|
|
|
|
cmp #<$140
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b5_from___b4
|
2020-06-27 19:18:00 +00:00
|
|
|
// [13] phi from main::@4 to main::@2 [phi:main::@4->main::@2]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2_from___b4:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [13] phi next#11 = 0 [phi:main::@4->main::@2#0] -- vwuz1=vbuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<0
|
|
|
|
sta.z next
|
|
|
|
lda #>0
|
|
|
|
sta.z next+1
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b2
|
2020-06-27 19:18:00 +00:00
|
|
|
// [12] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b5_from___b4:
|
|
|
|
jmp __b5
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@5
|
2019-09-29 21:13:37 +00:00
|
|
|
__b5:
|
2020-06-27 19:18:00 +00:00
|
|
|
// [13] phi from main::@5 to main::@2 [phi:main::@5->main::@2]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2_from___b5:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [13] phi next#11 = next#0 [phi:main::@5->main::@2#0] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@2
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2:
|
2020-06-27 19:18:00 +00:00
|
|
|
// [7] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1_from___b2:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [7] phi next#6 = next#11 [phi:main::@2->main::@1#0] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b1
|
2020-06-27 21:26:57 +00:00
|
|
|
}
|
|
|
|
// bitmap_init
|
|
|
|
// Initialize bitmap plotting tables
|
2021-08-10 15:48:55 +00:00
|
|
|
// void bitmap_init(char *gfx, char *screen)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_init: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label __7 = $18
|
|
|
|
.label yoffs = $14
|
2020-06-27 21:26:57 +00:00
|
|
|
// [15] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
|
|
|
|
__b1_from_bitmap_init:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [15] phi bitmap_init::x#2 = 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #0
|
2020-10-05 20:58:02 +00:00
|
|
|
// [15] phi bitmap_init::bits#3 = $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #$80
|
|
|
|
jmp __b1
|
|
|
|
// [15] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
|
|
|
|
__b1_from___b2:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [15] phi bitmap_init::x#2 = bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy
|
|
|
|
// [15] phi bitmap_init::bits#3 = bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
jmp __b1
|
|
|
|
// bitmap_init::@1
|
|
|
|
__b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [16] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
sta bitmap_plot_bit,x
|
2020-10-05 20:58:02 +00:00
|
|
|
// [17] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 -- vbuaa=vbuaa_ror_1
|
2020-06-27 21:26:57 +00:00
|
|
|
lsr
|
2020-10-05 20:58:02 +00:00
|
|
|
// [18] if(bitmap_init::bits#1!=0) goto bitmap_init::@6 -- vbuaa_neq_0_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cmp #0
|
|
|
|
bne __b6_from___b1
|
|
|
|
// [20] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
|
|
|
|
__b2_from___b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [20] phi bitmap_init::bits#4 = $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #$80
|
|
|
|
jmp __b2
|
|
|
|
// [19] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6]
|
|
|
|
__b6_from___b1:
|
|
|
|
jmp __b6
|
|
|
|
// bitmap_init::@6
|
|
|
|
__b6:
|
|
|
|
// [20] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
|
|
|
|
__b2_from___b6:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [20] phi bitmap_init::bits#4 = bitmap_init::bits#1 [phi:bitmap_init::@6->bitmap_init::@2#0] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
jmp __b2
|
|
|
|
// bitmap_init::@2
|
|
|
|
__b2:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [21] bitmap_init::x#1 = ++ bitmap_init::x#2 -- vbuxx=_inc_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
inx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [22] if(bitmap_init::x#1!=0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cpx #0
|
|
|
|
bne __b1_from___b2
|
|
|
|
// [23] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
|
|
|
|
__b3_from___b2:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [23] phi bitmap_init::yoffs#2 = BITMAP [phi:bitmap_init::@2->bitmap_init::@3#0] -- pbuz1=pbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<BITMAP
|
|
|
|
sta.z yoffs
|
|
|
|
lda #>BITMAP
|
|
|
|
sta.z yoffs+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [23] phi bitmap_init::y#2 = 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #0
|
|
|
|
jmp __b3
|
|
|
|
// [23] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
|
|
|
|
__b3_from___b4:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [23] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy
|
|
|
|
// [23] phi bitmap_init::y#2 = bitmap_init::y#1 [phi:bitmap_init::@4->bitmap_init::@3#1] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
jmp __b3
|
|
|
|
// bitmap_init::@3
|
|
|
|
__b3:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [24] bitmap_init::$7 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #7
|
|
|
|
sax.z __7
|
2021-06-13 12:24:57 +00:00
|
|
|
// [25] bitmap_init::$4 = byte0 bitmap_init::yoffs#2 -- vbuaa=_byte0_pbuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z yoffs
|
2020-10-05 20:58:02 +00:00
|
|
|
// [26] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
ora.z __7
|
2020-10-05 20:58:02 +00:00
|
|
|
// [27] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
sta bitmap_plot_ylo,x
|
2021-06-13 12:24:57 +00:00
|
|
|
// [28] bitmap_init::$6 = byte1 bitmap_init::yoffs#2 -- vbuaa=_byte1_pbuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z yoffs+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [29] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
sta bitmap_plot_yhi,x
|
2020-10-05 20:58:02 +00:00
|
|
|
// [30] if(bitmap_init::$7!=7) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #7
|
|
|
|
cmp.z __7
|
|
|
|
bne __b4_from___b3
|
|
|
|
jmp __b5
|
|
|
|
// bitmap_init::@5
|
|
|
|
__b5:
|
2021-08-10 15:48:55 +00:00
|
|
|
// [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z yoffs
|
2021-06-29 22:58:50 +00:00
|
|
|
clc
|
2020-06-27 21:26:57 +00:00
|
|
|
adc #<$28*8
|
|
|
|
sta.z yoffs
|
|
|
|
lda.z yoffs+1
|
|
|
|
adc #>$28*8
|
|
|
|
sta.z yoffs+1
|
|
|
|
// [32] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4]
|
|
|
|
__b4_from___b3:
|
|
|
|
__b4_from___b5:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [32] phi bitmap_init::yoffs#4 = bitmap_init::yoffs#2 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4#0] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
jmp __b4
|
|
|
|
// bitmap_init::@4
|
|
|
|
__b4:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [33] bitmap_init::y#1 = ++ bitmap_init::y#2 -- vbuxx=_inc_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
inx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [34] if(bitmap_init::y#1!=0) goto bitmap_init::@3 -- vbuxx_neq_0_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cpx #0
|
|
|
|
bne __b3_from___b4
|
|
|
|
jmp __breturn
|
|
|
|
// bitmap_init::@return
|
|
|
|
__breturn:
|
|
|
|
// [35] return
|
|
|
|
rts
|
|
|
|
}
|
|
|
|
// bitmap_clear
|
|
|
|
// Clear all graphics on the bitmap
|
|
|
|
// bgcol - the background color to fill the screen with
|
|
|
|
// fgcol - the foreground color to fill the screen with
|
2021-08-10 15:48:55 +00:00
|
|
|
// void bitmap_clear(char bgcol, char fgcol)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_clear: {
|
|
|
|
.const col = WHITE*$10+PURPLE
|
2021-08-10 15:48:55 +00:00
|
|
|
// [37] call memset
|
2020-06-27 21:26:57 +00:00
|
|
|
// [89] phi from bitmap_clear to memset [phi:bitmap_clear->memset]
|
|
|
|
memset_from_bitmap_clear:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #col
|
2021-08-10 15:48:55 +00:00
|
|
|
// [89] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<SCREEN
|
|
|
|
sta.z memset.str
|
|
|
|
lda #>SCREEN
|
|
|
|
sta.z memset.str+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<$3e8
|
|
|
|
sta.z memset.num
|
|
|
|
lda #>$3e8
|
|
|
|
sta.z memset.num+1
|
|
|
|
jsr memset
|
|
|
|
// [38] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
|
|
|
|
__b1_from_bitmap_clear:
|
|
|
|
jmp __b1
|
|
|
|
// bitmap_clear::@1
|
|
|
|
__b1:
|
2021-08-10 15:48:55 +00:00
|
|
|
// [39] call memset
|
2020-06-27 21:26:57 +00:00
|
|
|
// [89] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset]
|
|
|
|
memset_from___b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #0
|
2021-08-10 15:48:55 +00:00
|
|
|
// [89] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<BITMAP
|
|
|
|
sta.z memset.str
|
|
|
|
lda #>BITMAP
|
|
|
|
sta.z memset.str+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<$1f40
|
|
|
|
sta.z memset.num
|
|
|
|
lda #>$1f40
|
|
|
|
sta.z memset.num+1
|
|
|
|
jsr memset
|
|
|
|
jmp __breturn
|
|
|
|
// bitmap_clear::@return
|
|
|
|
__breturn:
|
|
|
|
// [40] return
|
|
|
|
rts
|
2019-09-18 19:53:32 +00:00
|
|
|
}
|
|
|
|
// bitmap_line
|
|
|
|
// Draw a line on the bitmap using bresenhams algorithm
|
2021-09-23 06:24:56 +00:00
|
|
|
// void bitmap_line(unsigned int x1, unsigned int y1, __zp($14) unsigned int x2, unsigned int y2)
|
2019-09-18 19:53:32 +00:00
|
|
|
bitmap_line: {
|
|
|
|
.const x1 = 0
|
|
|
|
.const y1 = 0
|
|
|
|
.const y2 = $64
|
2021-09-23 06:24:56 +00:00
|
|
|
.label dx = $12
|
|
|
|
.label dy = $e
|
|
|
|
.label sx = $16
|
|
|
|
.label sy = $10
|
|
|
|
.label e1 = $c
|
|
|
|
.label e = $a
|
|
|
|
.label y = 8
|
|
|
|
.label x = 6
|
|
|
|
.label x2 = $14
|
2020-10-05 20:58:02 +00:00
|
|
|
// [41] abs_u16::w#0 = bitmap_line::x2#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x2
|
|
|
|
sta.z abs_u16.w
|
|
|
|
lda.z x2+1
|
|
|
|
sta.z abs_u16.w+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [42] call abs_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [98] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
|
2019-09-18 19:53:32 +00:00
|
|
|
abs_u16_from_bitmap_line:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
// [43] abs_u16::return#0 = abs_u16::return#4
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b12
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@12
|
2019-09-29 21:13:37 +00:00
|
|
|
__b12:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [44] bitmap_line::dx#0 = abs_u16::return#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z abs_u16.return
|
|
|
|
sta.z dx
|
|
|
|
lda.z abs_u16.return+1
|
|
|
|
sta.z dx+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [45] call abs_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [98] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
|
2019-09-29 21:13:37 +00:00
|
|
|
abs_u16_from___b12:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y2
|
|
|
|
sta.z abs_u16.w
|
|
|
|
lda #>y2
|
|
|
|
sta.z abs_u16.w+1
|
|
|
|
jsr abs_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
// [46] abs_u16::return#1 = abs_u16::return#4
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b13
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@13
|
2019-09-29 21:13:37 +00:00
|
|
|
__b13:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [47] bitmap_line::dy#0 = abs_u16::return#1
|
|
|
|
// [48] if(bitmap_line::dx#0!=0) goto bitmap_line::@1 -- vwuz1_neq_0_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dx
|
2020-12-06 15:59:54 +00:00
|
|
|
ora.z dx+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b1
|
|
|
|
jmp __b18
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@18
|
2019-09-29 21:13:37 +00:00
|
|
|
__b18:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [49] if(bitmap_line::dy#0==0) goto bitmap_line::@4 -- vwuz1_eq_0_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dy
|
2020-12-06 15:59:54 +00:00
|
|
|
ora.z dy+1
|
2019-09-29 21:13:37 +00:00
|
|
|
beq __b4_from___b18
|
|
|
|
jmp __b1
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@1
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [50] sgn_u16::w#0 = bitmap_line::x2#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x2
|
|
|
|
sta.z sgn_u16.w
|
|
|
|
lda.z x2+1
|
|
|
|
sta.z sgn_u16.w+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [51] call sgn_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [105] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
|
2019-09-29 21:13:37 +00:00
|
|
|
sgn_u16_from___b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
// [52] sgn_u16::return#0 = sgn_u16::return#4
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b14
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@14
|
2019-09-29 21:13:37 +00:00
|
|
|
__b14:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [53] bitmap_line::sx#0 = sgn_u16::return#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z sgn_u16.return
|
|
|
|
sta.z sx
|
|
|
|
lda.z sgn_u16.return+1
|
|
|
|
sta.z sx+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [54] call sgn_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [105] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
|
2019-09-29 21:13:37 +00:00
|
|
|
sgn_u16_from___b14:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y2
|
|
|
|
sta.z sgn_u16.w
|
|
|
|
lda #>y2
|
|
|
|
sta.z sgn_u16.w+1
|
|
|
|
jsr sgn_u16
|
2020-10-05 20:58:02 +00:00
|
|
|
// [55] sgn_u16::return#1 = sgn_u16::return#4
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b15
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@15
|
2019-09-29 21:13:37 +00:00
|
|
|
__b15:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [56] bitmap_line::sy#0 = sgn_u16::return#1
|
|
|
|
// [57] if(bitmap_line::dx#0>bitmap_line::dy#0) goto bitmap_line::@2 -- vwuz1_gt_vwuz2_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dy+1
|
|
|
|
cmp.z dx+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bcc __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
bne !+
|
|
|
|
lda.z dy
|
|
|
|
cmp.z dx
|
2019-09-29 21:13:37 +00:00
|
|
|
bcc __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b5
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@5
|
2019-09-29 21:13:37 +00:00
|
|
|
__b5:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [58] bitmap_line::e#0 = bitmap_line::dx#0 >> 1 -- vwuz1=vwuz2_ror_1
|
2021-07-27 17:11:14 +00:00
|
|
|
// Y is the driver
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dx+1
|
|
|
|
lsr
|
|
|
|
sta.z e+1
|
|
|
|
lda.z dx
|
|
|
|
ror
|
|
|
|
sta.z e
|
2020-06-27 21:26:57 +00:00
|
|
|
// [59] phi from bitmap_line::@5 to bitmap_line::@6 [phi:bitmap_line::@5->bitmap_line::@6]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b6_from___b5:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [59] phi bitmap_line::e#3 = bitmap_line::e#0 [phi:bitmap_line::@5->bitmap_line::@6#0] -- register_copy
|
|
|
|
// [59] phi bitmap_line::y#4 = bitmap_line::y1#0 [phi:bitmap_line::@5->bitmap_line::@6#1] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y1
|
|
|
|
sta.z y
|
|
|
|
lda #>y1
|
|
|
|
sta.z y+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [59] phi bitmap_line::x#13 = bitmap_line::x1#0 [phi:bitmap_line::@5->bitmap_line::@6#2] -- vwuz1=vwuc1
|
2020-04-19 09:05:54 +00:00
|
|
|
lda #<x1
|
|
|
|
sta.z x
|
|
|
|
lda #>x1
|
|
|
|
sta.z x+1
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b6
|
2020-06-27 21:26:57 +00:00
|
|
|
// [59] phi from bitmap_line::@7 to bitmap_line::@6 [phi:bitmap_line::@7->bitmap_line::@6]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b6_from___b7:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [59] phi bitmap_line::e#3 = bitmap_line::e#6 [phi:bitmap_line::@7->bitmap_line::@6#0] -- register_copy
|
|
|
|
// [59] phi bitmap_line::y#4 = bitmap_line::y#1 [phi:bitmap_line::@7->bitmap_line::@6#1] -- register_copy
|
|
|
|
// [59] phi bitmap_line::x#13 = bitmap_line::x#12 [phi:bitmap_line::@7->bitmap_line::@6#2] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b6
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@6
|
2019-09-29 21:13:37 +00:00
|
|
|
__b6:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [60] bitmap_plot::x#1 = bitmap_line::x#13
|
2021-08-10 15:48:55 +00:00
|
|
|
// [61] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1
|
2021-06-12 18:57:35 +00:00
|
|
|
ldx.z y
|
2021-08-10 15:48:55 +00:00
|
|
|
// [62] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
|
2019-09-29 21:13:37 +00:00
|
|
|
bitmap_plot_from___b6:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
|
|
|
|
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_plot
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b16
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@16
|
2019-09-29 21:13:37 +00:00
|
|
|
__b16:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [63] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z y
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sy
|
|
|
|
sta.z y
|
|
|
|
lda.z y+1
|
|
|
|
adc.z sy+1
|
|
|
|
sta.z y+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [64] bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z e
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z dx
|
|
|
|
sta.z e
|
|
|
|
lda.z e+1
|
|
|
|
adc.z dx+1
|
|
|
|
sta.z e+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [65] if(bitmap_line::dy#0>=bitmap_line::e#1) goto bitmap_line::@7 -- vwuz1_ge_vwuz2_then_la1
|
2021-08-13 19:22:17 +00:00
|
|
|
lda.z e+1
|
|
|
|
cmp.z dy+1
|
|
|
|
bne !+
|
|
|
|
lda.z e
|
|
|
|
cmp.z dy
|
|
|
|
beq __b7_from___b16
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
2021-08-13 19:22:17 +00:00
|
|
|
bcc __b7_from___b16
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b8
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@8
|
2019-09-29 21:13:37 +00:00
|
|
|
__b8:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [66] bitmap_line::x#1 = bitmap_line::x#13 + bitmap_line::sx#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z x
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sx
|
|
|
|
sta.z x
|
|
|
|
lda.z x+1
|
|
|
|
adc.z sx+1
|
|
|
|
sta.z x+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [67] bitmap_line::e#2 = bitmap_line::e#1 - bitmap_line::dy#0 -- vwuz1=vwuz1_minus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z e
|
|
|
|
sec
|
|
|
|
sbc.z dy
|
|
|
|
sta.z e
|
|
|
|
lda.z e+1
|
|
|
|
sbc.z dy+1
|
|
|
|
sta.z e+1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [68] phi from bitmap_line::@16 bitmap_line::@8 to bitmap_line::@7 [phi:bitmap_line::@16/bitmap_line::@8->bitmap_line::@7]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b7_from___b16:
|
|
|
|
__b7_from___b8:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [68] phi bitmap_line::e#6 = bitmap_line::e#1 [phi:bitmap_line::@16/bitmap_line::@8->bitmap_line::@7#0] -- register_copy
|
|
|
|
// [68] phi bitmap_line::x#12 = bitmap_line::x#13 [phi:bitmap_line::@16/bitmap_line::@8->bitmap_line::@7#1] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b7
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@7
|
2019-09-29 21:13:37 +00:00
|
|
|
__b7:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [69] if(bitmap_line::y#1!=bitmap_line::y2#0) goto bitmap_line::@6 -- vwuz1_neq_vwuc1_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z y+1
|
|
|
|
cmp #>y2
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b6_from___b7
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z y
|
|
|
|
cmp #<y2
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b6_from___b7
|
2020-06-27 21:26:57 +00:00
|
|
|
// [70] phi from bitmap_line::@10 bitmap_line::@7 to bitmap_line::@3 [phi:bitmap_line::@10/bitmap_line::@7->bitmap_line::@3]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b3_from___b10:
|
|
|
|
__b3_from___b7:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [70] phi bitmap_line::y#7 = bitmap_line::y#13 [phi:bitmap_line::@10/bitmap_line::@7->bitmap_line::@3#0] -- register_copy
|
|
|
|
// [70] phi bitmap_line::x#6 = bitmap_line::x#15 [phi:bitmap_line::@10/bitmap_line::@7->bitmap_line::@3#1] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b3
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@3
|
2019-09-29 21:13:37 +00:00
|
|
|
__b3:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [71] bitmap_plot::x#2 = bitmap_line::x#6
|
2021-08-10 15:48:55 +00:00
|
|
|
// [72] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1
|
2021-06-12 18:57:35 +00:00
|
|
|
ldx.z y
|
2021-08-10 15:48:55 +00:00
|
|
|
// [73] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
|
2019-09-29 21:13:37 +00:00
|
|
|
bitmap_plot_from___b3:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
|
|
|
|
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_plot
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@return
|
2019-09-29 21:13:37 +00:00
|
|
|
__breturn:
|
2020-06-27 21:26:57 +00:00
|
|
|
// [74] return
|
2019-09-18 19:53:32 +00:00
|
|
|
rts
|
|
|
|
// bitmap_line::@2
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [75] bitmap_line::e1#0 = bitmap_line::dy#0 >> 1 -- vwuz1=vwuz2_ror_1
|
2021-07-27 17:11:14 +00:00
|
|
|
// X is the driver
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dy+1
|
|
|
|
lsr
|
|
|
|
sta.z e1+1
|
|
|
|
lda.z dy
|
|
|
|
ror
|
|
|
|
sta.z e1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [76] phi from bitmap_line::@2 to bitmap_line::@9 [phi:bitmap_line::@2->bitmap_line::@9]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b9_from___b2:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [76] phi bitmap_line::e1#3 = bitmap_line::e1#0 [phi:bitmap_line::@2->bitmap_line::@9#0] -- register_copy
|
|
|
|
// [76] phi bitmap_line::y#15 = bitmap_line::y1#0 [phi:bitmap_line::@2->bitmap_line::@9#1] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y1
|
|
|
|
sta.z y
|
|
|
|
lda #>y1
|
|
|
|
sta.z y+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [76] phi bitmap_line::x#7 = bitmap_line::x1#0 [phi:bitmap_line::@2->bitmap_line::@9#2] -- vwuz1=vwuc1
|
2020-04-19 09:05:54 +00:00
|
|
|
lda #<x1
|
|
|
|
sta.z x
|
|
|
|
lda #>x1
|
|
|
|
sta.z x+1
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b9
|
2020-06-27 21:26:57 +00:00
|
|
|
// [76] phi from bitmap_line::@10 to bitmap_line::@9 [phi:bitmap_line::@10->bitmap_line::@9]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b9_from___b10:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [76] phi bitmap_line::e1#3 = bitmap_line::e1#6 [phi:bitmap_line::@10->bitmap_line::@9#0] -- register_copy
|
|
|
|
// [76] phi bitmap_line::y#15 = bitmap_line::y#13 [phi:bitmap_line::@10->bitmap_line::@9#1] -- register_copy
|
|
|
|
// [76] phi bitmap_line::x#7 = bitmap_line::x#15 [phi:bitmap_line::@10->bitmap_line::@9#2] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b9
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@9
|
2019-09-29 21:13:37 +00:00
|
|
|
__b9:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [77] bitmap_plot::x#3 = bitmap_line::x#7
|
2021-08-10 15:48:55 +00:00
|
|
|
// [78] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1
|
2021-06-12 18:57:35 +00:00
|
|
|
ldx.z y
|
2021-08-10 15:48:55 +00:00
|
|
|
// [79] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
|
2019-09-29 21:13:37 +00:00
|
|
|
bitmap_plot_from___b9:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
|
|
|
|
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_plot
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b17
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@17
|
2019-09-29 21:13:37 +00:00
|
|
|
__b17:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [80] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z x
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sx
|
|
|
|
sta.z x
|
|
|
|
lda.z x+1
|
|
|
|
adc.z sx+1
|
|
|
|
sta.z x+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [81] bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z e1
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z dy
|
|
|
|
sta.z e1
|
|
|
|
lda.z e1+1
|
|
|
|
adc.z dy+1
|
|
|
|
sta.z e1+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [82] if(bitmap_line::dx#0>=bitmap_line::e1#1) goto bitmap_line::@10 -- vwuz1_ge_vwuz2_then_la1
|
2021-08-13 19:22:17 +00:00
|
|
|
lda.z e1+1
|
|
|
|
cmp.z dx+1
|
|
|
|
bne !+
|
|
|
|
lda.z e1
|
|
|
|
cmp.z dx
|
|
|
|
beq __b10_from___b17
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
2021-08-13 19:22:17 +00:00
|
|
|
bcc __b10_from___b17
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b11
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@11
|
2019-09-29 21:13:37 +00:00
|
|
|
__b11:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [83] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z y
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sy
|
|
|
|
sta.z y
|
|
|
|
lda.z y+1
|
|
|
|
adc.z sy+1
|
|
|
|
sta.z y+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [84] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 -- vwuz1=vwuz1_minus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z e1
|
|
|
|
sec
|
|
|
|
sbc.z dx
|
|
|
|
sta.z e1
|
|
|
|
lda.z e1+1
|
|
|
|
sbc.z dx+1
|
|
|
|
sta.z e1+1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [85] phi from bitmap_line::@11 bitmap_line::@17 to bitmap_line::@10 [phi:bitmap_line::@11/bitmap_line::@17->bitmap_line::@10]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b10_from___b11:
|
|
|
|
__b10_from___b17:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [85] phi bitmap_line::e1#6 = bitmap_line::e1#2 [phi:bitmap_line::@11/bitmap_line::@17->bitmap_line::@10#0] -- register_copy
|
|
|
|
// [85] phi bitmap_line::y#13 = bitmap_line::y#2 [phi:bitmap_line::@11/bitmap_line::@17->bitmap_line::@10#1] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b10
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@10
|
2019-09-29 21:13:37 +00:00
|
|
|
__b10:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [86] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 -- vwuz1_neq_vwuz2_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x+1
|
|
|
|
cmp.z x2+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b9_from___b10
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x
|
|
|
|
cmp.z x2
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b9_from___b10
|
|
|
|
jmp __b3_from___b10
|
2020-06-27 21:26:57 +00:00
|
|
|
// [87] phi from bitmap_line::@18 to bitmap_line::@4 [phi:bitmap_line::@18->bitmap_line::@4]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b4_from___b18:
|
|
|
|
jmp __b4
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@4
|
2019-09-29 21:13:37 +00:00
|
|
|
__b4:
|
2021-08-10 15:48:55 +00:00
|
|
|
// [88] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot]
|
2019-09-29 21:13:37 +00:00
|
|
|
bitmap_plot_from___b4:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_line::x1#0 [phi:bitmap_line::@4->bitmap_plot#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<x1
|
|
|
|
sta.z bitmap_plot.x
|
|
|
|
lda #>x1
|
|
|
|
sta.z bitmap_plot.x+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- vbuxx=vbuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
ldx #0
|
|
|
|
jsr bitmap_plot
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
}
|
|
|
|
// memset
|
|
|
|
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
|
2021-09-23 06:24:56 +00:00
|
|
|
// void * memset(__zp(6) void *str, __register(X) char c, __zp($a) unsigned int num)
|
2019-09-18 19:53:32 +00:00
|
|
|
memset: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label end = $a
|
|
|
|
.label dst = 6
|
|
|
|
.label num = $a
|
|
|
|
.label str = 6
|
2020-10-05 20:58:02 +00:00
|
|
|
// [90] if(memset::num#2<=0) goto memset::@return -- vwuz1_le_0_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z num
|
|
|
|
bne !+
|
|
|
|
lda.z num+1
|
2019-09-29 21:13:37 +00:00
|
|
|
beq __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b1
|
2019-09-18 19:53:32 +00:00
|
|
|
// memset::@1
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1:
|
2021-08-10 15:48:55 +00:00
|
|
|
// [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z end
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z str
|
|
|
|
sta.z end
|
|
|
|
lda.z end+1
|
|
|
|
adc.z str+1
|
|
|
|
sta.z end+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [92] memset::dst#4 = (char *)memset::str#3
|
2020-06-27 21:26:57 +00:00
|
|
|
// [93] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2]
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2_from___b1:
|
|
|
|
__b2_from___b3:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [93] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
// memset::@2
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [94] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dst+1
|
|
|
|
cmp.z end+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b3
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dst
|
|
|
|
cmp.z end
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b3
|
|
|
|
jmp __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
// memset::@return
|
2019-09-29 21:13:37 +00:00
|
|
|
__breturn:
|
2020-06-27 21:26:57 +00:00
|
|
|
// [95] return
|
2019-09-18 19:53:32 +00:00
|
|
|
rts
|
|
|
|
// memset::@3
|
2019-09-29 21:13:37 +00:00
|
|
|
__b3:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [96] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuxx
|
2019-09-18 19:53:32 +00:00
|
|
|
txa
|
|
|
|
ldy #0
|
|
|
|
sta (dst),y
|
2020-10-05 20:58:02 +00:00
|
|
|
// [97] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1
|
2019-09-18 19:53:32 +00:00
|
|
|
inc.z dst
|
|
|
|
bne !+
|
|
|
|
inc.z dst+1
|
|
|
|
!:
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b2_from___b3
|
2019-09-18 19:53:32 +00:00
|
|
|
}
|
2020-06-27 21:26:57 +00:00
|
|
|
// abs_u16
|
|
|
|
// Get the absolute value of a 16-bit unsigned number treated as a signed number.
|
2021-09-23 06:24:56 +00:00
|
|
|
// __zp($e) unsigned int abs_u16(__zp($e) unsigned int w)
|
2020-06-27 21:26:57 +00:00
|
|
|
abs_u16: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label w = $e
|
|
|
|
.label return = $e
|
2021-06-13 12:24:57 +00:00
|
|
|
// [99] abs_u16::$0 = byte1 abs_u16::w#2 -- vbuaa=_byte1_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z w+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [100] abs_u16::$1 = abs_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
and #$80
|
2020-12-11 23:48:31 +00:00
|
|
|
// [101] if(0!=abs_u16::$1) goto abs_u16::@1 -- 0_neq_vbuaa_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
cmp #0
|
2020-06-27 21:26:57 +00:00
|
|
|
bne __b1
|
|
|
|
// [103] phi from abs_u16 abs_u16::@1 to abs_u16::@return [phi:abs_u16/abs_u16::@1->abs_u16::@return]
|
|
|
|
__breturn_from_abs_u16:
|
|
|
|
__breturn_from___b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [103] phi abs_u16::return#4 = abs_u16::w#2 [phi:abs_u16/abs_u16::@1->abs_u16::@return#0] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
jmp __breturn
|
|
|
|
// abs_u16::@1
|
|
|
|
__b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [102] abs_u16::return#2 = - abs_u16::w#2 -- vwuz1=_neg_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
sec
|
|
|
|
lda #0
|
|
|
|
sbc.z return
|
|
|
|
sta.z return
|
|
|
|
lda #0
|
|
|
|
sbc.z return+1
|
|
|
|
sta.z return+1
|
|
|
|
jmp __breturn_from___b1
|
|
|
|
// abs_u16::@return
|
|
|
|
__breturn:
|
|
|
|
// [104] return
|
|
|
|
rts
|
|
|
|
}
|
|
|
|
// sgn_u16
|
|
|
|
// Get the sign of a 16-bit unsigned number treated as a signed number.
|
|
|
|
// Returns unsigned -1 if the number is
|
2021-09-23 06:24:56 +00:00
|
|
|
// __zp($10) unsigned int sgn_u16(__zp(2) unsigned int w)
|
2020-06-27 21:26:57 +00:00
|
|
|
sgn_u16: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label w = 2
|
|
|
|
.label return = $10
|
2021-06-13 12:24:57 +00:00
|
|
|
// [106] sgn_u16::$0 = byte1 sgn_u16::w#2 -- vbuaa=_byte1_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z w+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [107] sgn_u16::$1 = sgn_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
and #$80
|
2020-12-11 23:48:31 +00:00
|
|
|
// [108] if(0!=sgn_u16::$1) goto sgn_u16::@1 -- 0_neq_vbuaa_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cmp #0
|
|
|
|
bne __b1_from_sgn_u16
|
|
|
|
// [110] phi from sgn_u16 to sgn_u16::@return [phi:sgn_u16->sgn_u16::@return]
|
|
|
|
__breturn_from_sgn_u16:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [110] phi sgn_u16::return#4 = 1 [phi:sgn_u16->sgn_u16::@return#0] -- vwuz1=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<1
|
|
|
|
sta.z return
|
|
|
|
lda #>1
|
|
|
|
sta.z return+1
|
|
|
|
jmp __breturn
|
|
|
|
// [109] phi from sgn_u16 to sgn_u16::@1 [phi:sgn_u16->sgn_u16::@1]
|
|
|
|
__b1_from_sgn_u16:
|
|
|
|
jmp __b1
|
|
|
|
// sgn_u16::@1
|
|
|
|
__b1:
|
|
|
|
// [110] phi from sgn_u16::@1 to sgn_u16::@return [phi:sgn_u16::@1->sgn_u16::@return]
|
|
|
|
__breturn_from___b1:
|
2020-10-05 20:58:02 +00:00
|
|
|
// [110] phi sgn_u16::return#4 = -1 [phi:sgn_u16::@1->sgn_u16::@return#0] -- vwuz1=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<-1
|
|
|
|
sta.z return
|
|
|
|
lda #>-1
|
|
|
|
sta.z return+1
|
|
|
|
jmp __breturn
|
|
|
|
// sgn_u16::@return
|
|
|
|
__breturn:
|
|
|
|
// [111] return
|
|
|
|
rts
|
|
|
|
}
|
|
|
|
// bitmap_plot
|
|
|
|
// Plot a single dot in the bitmap
|
2021-09-23 06:24:56 +00:00
|
|
|
// void bitmap_plot(__zp(6) unsigned int x, __register(X) char y)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_plot: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label __1 = 4
|
|
|
|
.label plotter = 2
|
|
|
|
.label x = 6
|
2020-10-05 20:58:02 +00:00
|
|
|
// [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
lda bitmap_plot_yhi,x
|
|
|
|
sta.z plotter+1
|
|
|
|
lda bitmap_plot_ylo,x
|
|
|
|
sta.z plotter
|
2021-07-01 22:21:08 +00:00
|
|
|
// [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z x
|
|
|
|
and #<$fff8
|
2021-07-01 22:21:08 +00:00
|
|
|
sta.z __1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z x+1
|
|
|
|
and #>$fff8
|
2021-07-01 22:21:08 +00:00
|
|
|
sta.z __1+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z plotter
|
2021-07-01 22:21:08 +00:00
|
|
|
adc.z __1
|
2020-06-27 21:26:57 +00:00
|
|
|
sta.z plotter
|
|
|
|
lda.z plotter+1
|
2021-07-01 22:21:08 +00:00
|
|
|
adc.z __1+1
|
2020-06-27 21:26:57 +00:00
|
|
|
sta.z plotter+1
|
2021-07-01 22:21:08 +00:00
|
|
|
// [116] bitmap_plot::$2 = byte0 bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx.z x
|
2021-07-01 22:21:08 +00:00
|
|
|
// [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
lda bitmap_plot_bit,x
|
|
|
|
ldy #0
|
|
|
|
ora (plotter),y
|
|
|
|
sta (plotter),y
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __breturn
|
2020-06-27 21:26:57 +00:00
|
|
|
// bitmap_plot::@return
|
2019-09-29 21:13:37 +00:00
|
|
|
__breturn:
|
2020-06-27 19:18:00 +00:00
|
|
|
// [118] return
|
2019-09-18 19:53:32 +00:00
|
|
|
rts
|
|
|
|
}
|
|
|
|
// File Data
|
2020-12-21 07:57:41 +00:00
|
|
|
.segment Data
|
2019-09-18 19:53:32 +00:00
|
|
|
// Tables for the plotter - initialized by calling bitmap_init();
|
|
|
|
bitmap_plot_ylo: .fill $100, 0
|
|
|
|
bitmap_plot_yhi: .fill $100, 0
|
|
|
|
bitmap_plot_bit: .fill $100, 0
|
|
|
|
|
|
|
|
ASSEMBLER OPTIMIZATIONS
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction jmp __b3
|
|
|
|
Removing instruction jmp __b1
|
|
|
|
Removing instruction jmp __b4
|
|
|
|
Removing instruction jmp __b5
|
|
|
|
Removing instruction jmp __b2
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction jmp __b1
|
|
|
|
Removing instruction jmp __b6
|
|
|
|
Removing instruction jmp __b2
|
|
|
|
Removing instruction jmp __b3
|
|
|
|
Removing instruction jmp __b5
|
|
|
|
Removing instruction jmp __b4
|
|
|
|
Removing instruction jmp __breturn
|
|
|
|
Removing instruction jmp __b1
|
|
|
|
Removing instruction jmp __breturn
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction jmp __b12
|
|
|
|
Removing instruction jmp __b13
|
|
|
|
Removing instruction jmp __b18
|
|
|
|
Removing instruction jmp __b1
|
|
|
|
Removing instruction jmp __b14
|
|
|
|
Removing instruction jmp __b15
|
|
|
|
Removing instruction jmp __b5
|
|
|
|
Removing instruction jmp __b6
|
|
|
|
Removing instruction jmp __b16
|
|
|
|
Removing instruction jmp __b8
|
|
|
|
Removing instruction jmp __b7
|
|
|
|
Removing instruction jmp __b3
|
|
|
|
Removing instruction jmp __breturn
|
|
|
|
Removing instruction jmp __b9
|
|
|
|
Removing instruction jmp __b17
|
|
|
|
Removing instruction jmp __b11
|
|
|
|
Removing instruction jmp __b10
|
|
|
|
Removing instruction jmp __b4
|
|
|
|
Removing instruction jmp __b1
|
|
|
|
Removing instruction jmp __b2
|
|
|
|
Removing instruction jmp __breturn
|
|
|
|
Removing instruction jmp __b1
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction jmp __breturn
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction jmp __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
|
|
Removing instruction lda #0
|
|
|
|
Removing instruction lda #>0
|
|
|
|
Removing instruction lda #>0
|
2021-08-13 19:22:17 +00:00
|
|
|
Removing instruction lda.z e+1
|
|
|
|
Removing instruction lda.z e1+1
|
2019-10-31 22:07:51 +00:00
|
|
|
Removing instruction lda #>-1
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
2019-09-29 21:13:37 +00:00
|
|
|
Replacing label __b5_from___b4 with __b2
|
|
|
|
Replacing label __b5_from___b4 with __b2
|
2020-06-27 21:26:57 +00:00
|
|
|
Replacing label __b6_from___b1 with __b2
|
|
|
|
Replacing label __b1_from___b2 with __b1
|
|
|
|
Replacing label __b4_from___b3 with __b4
|
|
|
|
Replacing label __b3_from___b4 with __b3
|
2019-09-29 21:13:37 +00:00
|
|
|
Replacing label __b4_from___b18 with __b4
|
|
|
|
Replacing label __b7_from___b16 with __b7
|
|
|
|
Replacing label __b7_from___b16 with __b7
|
|
|
|
Replacing label __b6_from___b7 with __b6
|
|
|
|
Replacing label __b6_from___b7 with __b6
|
|
|
|
Replacing label __b10_from___b17 with __b10
|
|
|
|
Replacing label __b10_from___b17 with __b10
|
|
|
|
Replacing label __b9_from___b10 with __b9
|
|
|
|
Replacing label __b9_from___b10 with __b9
|
|
|
|
Replacing label __b3_from___b10 with __b3
|
|
|
|
Replacing label __b2_from___b3 with __b2
|
2020-06-27 21:26:57 +00:00
|
|
|
Replacing label __b1_from_sgn_u16 with __b1
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction __b3_from_main:
|
|
|
|
Removing instruction bitmap_clear_from___b3:
|
|
|
|
Removing instruction __b5_from___b4:
|
|
|
|
Removing instruction __b5:
|
|
|
|
Removing instruction __b2_from___b5:
|
|
|
|
Removing instruction __b1_from___b2:
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction __b1_from___b2:
|
|
|
|
Removing instruction __b6_from___b1:
|
|
|
|
Removing instruction __b6:
|
|
|
|
Removing instruction __b2_from___b6:
|
|
|
|
Removing instruction __b3_from___b4:
|
|
|
|
Removing instruction __b4_from___b3:
|
|
|
|
Removing instruction __b4_from___b5:
|
|
|
|
Removing instruction __b1_from_bitmap_clear:
|
|
|
|
Removing instruction memset_from___b1:
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction __b6_from___b7:
|
|
|
|
Removing instruction __b7_from___b16:
|
|
|
|
Removing instruction __b7_from___b8:
|
|
|
|
Removing instruction __b3_from___b10:
|
|
|
|
Removing instruction __b3_from___b7:
|
|
|
|
Removing instruction __b9_from___b10:
|
|
|
|
Removing instruction __b10_from___b11:
|
|
|
|
Removing instruction __b10_from___b17:
|
|
|
|
Removing instruction __b4_from___b18:
|
|
|
|
Removing instruction bitmap_plot_from___b4:
|
|
|
|
Removing instruction __b2_from___b1:
|
|
|
|
Removing instruction __b2_from___b3:
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction __breturn_from_abs_u16:
|
|
|
|
Removing instruction __b1_from_sgn_u16:
|
|
|
|
Removing instruction __breturn_from___b1:
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5RedundantLabelElimination
|
|
|
|
Removing instruction bitmap_init_from_main:
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction __b3:
|
|
|
|
Removing instruction __b1_from___b3:
|
|
|
|
Removing instruction __b4:
|
|
|
|
Removing instruction __b2_from___b4:
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction __b1_from_bitmap_init:
|
|
|
|
Removing instruction __b2_from___b1:
|
|
|
|
Removing instruction __b3_from___b2:
|
|
|
|
Removing instruction __b5:
|
|
|
|
Removing instruction __breturn:
|
|
|
|
Removing instruction memset_from_bitmap_clear:
|
|
|
|
Removing instruction __b1:
|
|
|
|
Removing instruction __breturn:
|
2019-09-18 19:53:32 +00:00
|
|
|
Removing instruction abs_u16_from_bitmap_line:
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction __b12:
|
|
|
|
Removing instruction abs_u16_from___b12:
|
|
|
|
Removing instruction __b13:
|
|
|
|
Removing instruction __b18:
|
|
|
|
Removing instruction sgn_u16_from___b1:
|
|
|
|
Removing instruction __b14:
|
|
|
|
Removing instruction sgn_u16_from___b14:
|
|
|
|
Removing instruction __b15:
|
|
|
|
Removing instruction __b5:
|
|
|
|
Removing instruction __b6_from___b5:
|
|
|
|
Removing instruction bitmap_plot_from___b6:
|
|
|
|
Removing instruction __b16:
|
|
|
|
Removing instruction __b8:
|
|
|
|
Removing instruction bitmap_plot_from___b3:
|
|
|
|
Removing instruction __b9_from___b2:
|
|
|
|
Removing instruction bitmap_plot_from___b9:
|
|
|
|
Removing instruction __b17:
|
|
|
|
Removing instruction __b11:
|
|
|
|
Removing instruction __b1:
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction __breturn_from_sgn_u16:
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction __breturn:
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
2019-09-29 21:13:37 +00:00
|
|
|
Skipping double jump to __b1 in bne __b2
|
|
|
|
Skipping double jump to __b1 in bne __b2
|
|
|
|
Skipping double jump to __b1 in jmp __b2
|
|
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
|
|
Skipping double jump to __breturn in jmp __breturn_from___b1
|
2020-06-27 21:26:57 +00:00
|
|
|
Replacing jump to rts with rts in jmp __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5DoubleJumpElimination
|
2020-03-30 18:33:26 +00:00
|
|
|
Relabelling long label __breturn_from___b1 to __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5RelabelLongLabels
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction jmp __b1
|
|
|
|
Removing instruction jmp __b2
|
|
|
|
Removing instruction jmp __b3
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction jmp __b6
|
|
|
|
Removing instruction jmp __b9
|
|
|
|
Removing instruction jmp __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction __b2:
|
|
|
|
Removing instruction __breturn:
|
2020-03-30 18:33:26 +00:00
|
|
|
Removing instruction __b2:
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing instruction __breturn:
|
2020-06-27 21:26:57 +00:00
|
|
|
Removing instruction __breturn:
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
2019-09-29 21:13:37 +00:00
|
|
|
Removing unreachable instruction jmp __b1
|
2019-09-18 19:53:32 +00:00
|
|
|
Succesful ASM optimization Pass5UnreachableCodeElimination
|
2021-08-10 15:48:55 +00:00
|
|
|
Fixing long branch [177] beq __b4 to bne
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
FINAL SYMBOL TABLE
|
2021-08-10 15:48:55 +00:00
|
|
|
__constant char * const BG_COLOR = (char *) 53281
|
|
|
|
__constant char * const BITMAP = (char *) 8192
|
|
|
|
__constant char * const BORDER_COLOR = (char *) 53280
|
|
|
|
__constant char * const D011 = (char *) 53265
|
|
|
|
__constant const char PURPLE = 4
|
|
|
|
__constant char * const SCREEN = (char *) 1024
|
|
|
|
__constant const char VICII_BMM = $20
|
|
|
|
__constant const char VICII_DEN = $10
|
|
|
|
__constant char * const VICII_MEMORY = (char *) 53272
|
|
|
|
__constant const char VICII_RSEL = 8
|
|
|
|
__constant const char WHITE = 1
|
|
|
|
unsigned int abs_u16(unsigned int w)
|
|
|
|
char abs_u16::$0 // reg byte a 2002.0
|
|
|
|
char abs_u16::$1 // reg byte a 2002.0
|
|
|
|
unsigned int abs_u16::return
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int abs_u16::return#0 // return zp[2]:14 202.0
|
|
|
|
unsigned int abs_u16::return#1 // return zp[2]:14 202.0
|
|
|
|
unsigned int abs_u16::return#2 // return zp[2]:14 2002.0
|
|
|
|
unsigned int abs_u16::return#4 // return zp[2]:14 551.0
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int abs_u16::w
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int abs_u16::w#0 // w zp[2]:14 202.0
|
|
|
|
unsigned int abs_u16::w#2 // w zp[2]:14 776.0
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_clear(char bgcol , char fgcol)
|
|
|
|
char bitmap_clear::bgcol
|
|
|
|
char bitmap_clear::col
|
|
|
|
__constant char bitmap_clear::col#0 = WHITE*$10+PURPLE // col
|
|
|
|
char bitmap_clear::fgcol
|
|
|
|
char *bitmap_gfx
|
|
|
|
void bitmap_init(char *gfx , char *screen)
|
|
|
|
char bitmap_init::$4 // reg byte a 202.0
|
|
|
|
char bitmap_init::$5 // reg byte a 202.0
|
|
|
|
char bitmap_init::$6 // reg byte a 202.0
|
2021-09-23 06:24:56 +00:00
|
|
|
char bitmap_init::$7 // zp[1]:24 50.5
|
2021-08-10 15:48:55 +00:00
|
|
|
char bitmap_init::bits
|
|
|
|
char bitmap_init::bits#1 // reg byte a 101.0
|
|
|
|
char bitmap_init::bits#3 // reg byte a 151.5
|
|
|
|
char bitmap_init::bits#4 // reg byte a 67.33333333333333
|
|
|
|
char *bitmap_init::gfx
|
|
|
|
char *bitmap_init::screen
|
|
|
|
char bitmap_init::x
|
|
|
|
char bitmap_init::x#1 // reg byte x 151.5
|
|
|
|
char bitmap_init::x#2 // reg byte x 50.5
|
|
|
|
char bitmap_init::y
|
|
|
|
char bitmap_init::y#1 // reg byte x 151.5
|
|
|
|
char bitmap_init::y#2 // reg byte x 50.5
|
|
|
|
char *bitmap_init::yoffs
|
2021-09-23 06:24:56 +00:00
|
|
|
char *bitmap_init::yoffs#1 // yoffs zp[2]:20 202.0
|
|
|
|
char *bitmap_init::yoffs#2 // yoffs zp[2]:20 63.125
|
|
|
|
char *bitmap_init::yoffs#4 // yoffs zp[2]:20 101.0
|
2021-08-10 15:48:55 +00:00
|
|
|
void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2)
|
|
|
|
unsigned int bitmap_line::dx
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::dx#0 // dx zp[2]:18 800.1842105263158
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::dy
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::dy#0 // dy zp[2]:14 868.7714285714285
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::e
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::e#0 // e zp[2]:10 202.0
|
|
|
|
unsigned int bitmap_line::e#1 // e zp[2]:10 13334.666666666666
|
|
|
|
unsigned int bitmap_line::e#2 // e zp[2]:10 20002.0
|
|
|
|
unsigned int bitmap_line::e#3 // e zp[2]:10 4020.6000000000004
|
|
|
|
unsigned int bitmap_line::e#6 // e zp[2]:10 15001.5
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::e1
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::e1#0 // e1 zp[2]:12 202.0
|
|
|
|
unsigned int bitmap_line::e1#1 // e1 zp[2]:12 13334.666666666666
|
|
|
|
unsigned int bitmap_line::e1#2 // e1 zp[2]:12 20002.0
|
|
|
|
unsigned int bitmap_line::e1#3 // e1 zp[2]:12 4020.6000000000004
|
|
|
|
unsigned int bitmap_line::e1#6 // e1 zp[2]:12 15001.5
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::sx
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::sx#0 // sx zp[2]:22 693.2068965517242
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::sy
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::sy#0 // sy zp[2]:16 773.1923076923076
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::x
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::x#1 // x zp[2]:6 10001.0
|
|
|
|
unsigned int bitmap_line::x#12 // x zp[2]:6 20002.0
|
|
|
|
unsigned int bitmap_line::x#13 // x zp[2]:6 5714.857142857143
|
|
|
|
unsigned int bitmap_line::x#15 // x zp[2]:6 5714.857142857143
|
|
|
|
unsigned int bitmap_line::x#6 // x zp[2]:6 20103.0
|
|
|
|
unsigned int bitmap_line::x#7 // x zp[2]:6 7500.75
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::x1
|
|
|
|
__constant unsigned int bitmap_line::x1#0 = 0 // x1
|
|
|
|
unsigned int bitmap_line::x2
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::x2#0 // x2 zp[2]:20 340.4666666666667
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::y
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_line::y#1 // y zp[2]:8 5714.857142857143
|
|
|
|
unsigned int bitmap_line::y#13 // y zp[2]:8 20002.0
|
|
|
|
unsigned int bitmap_line::y#15 // y zp[2]:8 4286.142857142857
|
|
|
|
unsigned int bitmap_line::y#2 // y zp[2]:8 10001.0
|
|
|
|
unsigned int bitmap_line::y#4 // y zp[2]:8 5000.5
|
|
|
|
unsigned int bitmap_line::y#7 // y zp[2]:8 10001.0
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_line::y1
|
|
|
|
__constant unsigned int bitmap_line::y1#0 = 0 // y1
|
|
|
|
unsigned int bitmap_line::y2
|
|
|
|
__constant unsigned int bitmap_line::y2#0 = $64 // y2
|
|
|
|
void bitmap_plot(unsigned int x , char y)
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_plot::$1 // zp[2]:4 200002.0
|
2021-08-10 15:48:55 +00:00
|
|
|
char bitmap_plot::$2 // reg byte x 200002.0
|
|
|
|
char *bitmap_plot::plotter
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_plot::plotter#0 // plotter zp[2]:2 50000.5
|
|
|
|
char *bitmap_plot::plotter#1 // plotter zp[2]:2 150001.5
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int bitmap_plot::x
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int bitmap_plot::x#1 // x zp[2]:6 10001.0
|
|
|
|
unsigned int bitmap_plot::x#2 // x zp[2]:6 101.0
|
|
|
|
unsigned int bitmap_plot::x#3 // x zp[2]:6 10001.0
|
|
|
|
unsigned int bitmap_plot::x#4 // x zp[2]:6 55026.25
|
2021-08-10 15:48:55 +00:00
|
|
|
char bitmap_plot::y
|
|
|
|
char bitmap_plot::y#1 // reg byte x 20002.0
|
|
|
|
char bitmap_plot::y#2 // reg byte x 202.0
|
|
|
|
char bitmap_plot::y#3 // reg byte x 20002.0
|
|
|
|
char bitmap_plot::y#4 // reg byte x 220105.0
|
|
|
|
__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) }
|
|
|
|
__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) }
|
|
|
|
__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) }
|
|
|
|
char *bitmap_screen
|
2020-10-05 20:58:02 +00:00
|
|
|
void main()
|
2021-08-10 15:48:55 +00:00
|
|
|
void * memset(void *str , char c , unsigned int num)
|
|
|
|
char memset::c
|
|
|
|
char memset::c#4 // reg byte x 125.125
|
|
|
|
char *memset::dst
|
2021-09-23 06:24:56 +00:00
|
|
|
char *memset::dst#1 // dst zp[2]:6 2002.0
|
|
|
|
char *memset::dst#2 // dst zp[2]:6 1368.3333333333335
|
|
|
|
char *memset::dst#4 // dst zp[2]:6 202.0
|
2021-08-10 15:48:55 +00:00
|
|
|
char *memset::end
|
2021-09-23 06:24:56 +00:00
|
|
|
char *memset::end#0 // end zp[2]:10 183.66666666666669
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int memset::num
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int memset::num#2 // num zp[2]:10 101.0
|
2021-08-10 15:48:55 +00:00
|
|
|
void *memset::return
|
|
|
|
void *memset::str
|
2021-09-23 06:24:56 +00:00
|
|
|
void *memset::str#3 // str zp[2]:6
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int next
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int next#0 // next zp[2]:20 11.0
|
|
|
|
unsigned int next#11 // next zp[2]:20 22.0
|
|
|
|
unsigned int next#6 // next zp[2]:20 11.0
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int sgn_u16(unsigned int w)
|
|
|
|
char sgn_u16::$0 // reg byte a 2002.0
|
|
|
|
char sgn_u16::$1 // reg byte a 2002.0
|
|
|
|
unsigned int sgn_u16::return
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int sgn_u16::return#0 // return zp[2]:16 202.0
|
|
|
|
unsigned int sgn_u16::return#1 // return zp[2]:16 202.0
|
|
|
|
unsigned int sgn_u16::return#4 // return zp[2]:16 50.5
|
2021-08-10 15:48:55 +00:00
|
|
|
unsigned int sgn_u16::w
|
2021-09-23 06:24:56 +00:00
|
|
|
unsigned int sgn_u16::w#0 // w zp[2]:2 202.0
|
|
|
|
unsigned int sgn_u16::w#2 // w zp[2]:2 1102.0
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
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 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
zp[2]:20 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 next#6 next#11 next#0 bitmap_line::x2#0 ]
|
|
|
|
zp[2]:8 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ]
|
|
|
|
zp[2]:12 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ]
|
|
|
|
zp[2]:10 [ memset::num#2 memset::end#0 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
|
|
|
|
zp[2]:6 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
reg byte x [ memset::c#4 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
zp[2]:14 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 ]
|
|
|
|
zp[2]:16 [ sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 bitmap_line::sy#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
reg byte x [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
zp[1]:24 [ bitmap_init::$7 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
reg byte a [ bitmap_init::$4 ]
|
|
|
|
reg byte a [ bitmap_init::$5 ]
|
|
|
|
reg byte a [ bitmap_init::$6 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
zp[2]:18 [ bitmap_line::dx#0 ]
|
|
|
|
zp[2]:22 [ bitmap_line::sx#0 ]
|
2020-06-27 21:26:57 +00:00
|
|
|
reg byte a [ abs_u16::$0 ]
|
|
|
|
reg byte a [ abs_u16::$1 ]
|
|
|
|
reg byte a [ sgn_u16::$0 ]
|
|
|
|
reg byte a [ sgn_u16::$1 ]
|
2021-09-23 06:24:56 +00:00
|
|
|
zp[2]:2 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 sgn_u16::w#2 sgn_u16::w#0 ]
|
|
|
|
zp[2]:4 [ bitmap_plot::$1 ]
|
2021-07-01 22:21:08 +00:00
|
|
|
reg byte x [ bitmap_plot::$2 ]
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
FINAL ASSEMBLER
|
2021-08-13 19:22:17 +00:00
|
|
|
Score: 29778
|
2019-09-18 19:53:32 +00:00
|
|
|
|
|
|
|
// File Comments
|
2021-02-04 07:53:47 +00:00
|
|
|
// Shows that c64-bitmap.kc line() does not have the same problem as bitmap-draw.kc
|
2019-09-18 19:53:32 +00:00
|
|
|
// See bitmap-line-anim-1.kc
|
|
|
|
// Upstart
|
2020-12-21 07:57:41 +00:00
|
|
|
// Commodore 64 PRG executable file
|
|
|
|
.file [name="bitmap-line-anim-2.prg", type="prg", segments="Program"]
|
|
|
|
.segmentdef Program [segments="Basic, Code, Data"]
|
|
|
|
.segmentdef Basic [start=$0801]
|
|
|
|
.segmentdef Code [start=$80d]
|
|
|
|
.segmentdef Data [startAfter="Code"]
|
|
|
|
.segment Basic
|
2019-09-18 19:53:32 +00:00
|
|
|
:BasicUpstart(main)
|
|
|
|
// Global Constants & labels
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1 Bit#5: BMM Turn Bitmap Mode on/off
|
2020-12-29 18:37:32 +00:00
|
|
|
.const VICII_BMM = $20
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off
|
2020-12-29 18:37:32 +00:00
|
|
|
.const VICII_DEN = $10
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows
|
|
|
|
/// RSEL| Display window height | First line | Last line
|
|
|
|
/// ----+--------------------------+-------------+----------
|
|
|
|
/// 0 | 24 text lines/192 pixels | 55 ($37) | 246 ($f6)
|
|
|
|
/// 1 | 25 text lines/200 pixels | 51 ($33) | 250 ($fa)
|
2020-12-29 18:37:32 +00:00
|
|
|
.const VICII_RSEL = 8
|
2019-09-18 19:53:32 +00:00
|
|
|
.const WHITE = 1
|
|
|
|
.const PURPLE = 4
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D020 Border Color
|
2020-05-02 09:38:51 +00:00
|
|
|
.label BORDER_COLOR = $d020
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D021 Background Color 0
|
2020-05-02 09:38:51 +00:00
|
|
|
.label BG_COLOR = $d021
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D011 Control Register #1
|
|
|
|
/// @see #VICII_CONTROL1
|
2020-04-30 20:15:59 +00:00
|
|
|
.label D011 = $d011
|
2021-06-20 10:45:52 +00:00
|
|
|
/// $D018 VIC-II base addresses
|
|
|
|
/// - Bit#0: not used
|
|
|
|
/// - Bit#1-#3: CB Address Bits 11-13 of the Character Set (*2048)
|
|
|
|
/// - Bit#4-#7: VM Address Bits 10-13 of the Screen RAM (*1024)
|
|
|
|
/// Initial Value: %00010100
|
2020-12-29 18:37:32 +00:00
|
|
|
.label VICII_MEMORY = $d018
|
2019-09-18 19:53:32 +00:00
|
|
|
.label SCREEN = $400
|
|
|
|
.label BITMAP = $2000
|
2021-09-23 06:24:56 +00:00
|
|
|
.label next = $14
|
2020-12-21 07:57:41 +00:00
|
|
|
.segment Code
|
2019-09-18 19:53:32 +00:00
|
|
|
// main
|
|
|
|
main: {
|
2020-05-02 09:38:51 +00:00
|
|
|
// *BORDER_COLOR = 0
|
2020-10-05 20:58:02 +00:00
|
|
|
// [0] *BORDER_COLOR = 0 -- _deref_pbuc1=vbuc2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #0
|
2020-05-02 09:38:51 +00:00
|
|
|
sta BORDER_COLOR
|
|
|
|
// *BG_COLOR = 0
|
2020-10-05 20:58:02 +00:00
|
|
|
// [1] *BG_COLOR = 0 -- _deref_pbuc1=vbuc2
|
2020-05-02 09:38:51 +00:00
|
|
|
sta BG_COLOR
|
2020-12-29 18:37:32 +00:00
|
|
|
// *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
|
|
|
|
// [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2
|
|
|
|
lda #VICII_BMM|VICII_DEN|VICII_RSEL|3
|
2019-09-18 19:53:32 +00:00
|
|
|
sta D011
|
2020-12-29 18:37:32 +00:00
|
|
|
// *VICII_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)BITMAP&$3fff)/$400))
|
2021-08-10 15:48:55 +00:00
|
|
|
// [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
|
2020-12-29 18:37:32 +00:00
|
|
|
sta VICII_MEMORY
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_init(BITMAP, SCREEN)
|
2021-08-10 15:48:55 +00:00
|
|
|
// [4] call bitmap_init
|
2020-06-27 21:26:57 +00:00
|
|
|
// [14] phi from main to bitmap_init [phi:main->bitmap_init]
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_init
|
2020-06-27 19:18:00 +00:00
|
|
|
// [5] phi from main to main::@3 [phi:main->main::@3]
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@3
|
|
|
|
// bitmap_clear(PURPLE, WHITE)
|
2021-08-10 15:48:55 +00:00
|
|
|
// [6] call bitmap_clear
|
2020-06-27 21:26:57 +00:00
|
|
|
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear]
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_clear
|
2020-06-27 19:18:00 +00:00
|
|
|
// [7] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [7] phi next#6 = 0 [phi:main::@3->main::@1#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<0
|
|
|
|
sta.z next
|
|
|
|
sta.z next+1
|
|
|
|
// main::@1
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1:
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line(0,0,next,100)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [8] bitmap_line::x2#0 = next#6
|
2021-08-10 15:48:55 +00:00
|
|
|
// [9] call bitmap_line
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_line
|
|
|
|
// main::@4
|
|
|
|
// next++;
|
2020-10-05 20:58:02 +00:00
|
|
|
// [10] next#0 = ++ next#6 -- vwuz1=_inc_vwuz1
|
2019-09-18 19:53:32 +00:00
|
|
|
inc.z next
|
|
|
|
bne !+
|
|
|
|
inc.z next+1
|
|
|
|
!:
|
|
|
|
// if(next==320)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [11] if(next#0!=$140) goto main::@5 -- vwuz1_neq_vwuc1_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z next+1
|
|
|
|
cmp #>$140
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z next
|
|
|
|
cmp #<$140
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b1
|
2020-06-27 19:18:00 +00:00
|
|
|
// [13] phi from main::@4 to main::@2 [phi:main::@4->main::@2]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [13] phi next#11 = 0 [phi:main::@4->main::@2#0] -- vwuz1=vbuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<0
|
|
|
|
sta.z next
|
|
|
|
sta.z next+1
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b1
|
2020-06-27 19:18:00 +00:00
|
|
|
// [12] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@5
|
2020-06-27 19:18:00 +00:00
|
|
|
// [13] phi from main::@5 to main::@2 [phi:main::@5->main::@2]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [13] phi next#11 = next#0 [phi:main::@5->main::@2#0] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
// main::@2
|
2020-06-27 19:18:00 +00:00
|
|
|
// [7] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [7] phi next#6 = next#11 [phi:main::@2->main::@1#0] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
}
|
|
|
|
// bitmap_init
|
|
|
|
// Initialize bitmap plotting tables
|
2021-08-10 15:48:55 +00:00
|
|
|
// void bitmap_init(char *gfx, char *screen)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_init: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label __7 = $18
|
|
|
|
.label yoffs = $14
|
2020-06-27 21:26:57 +00:00
|
|
|
// [15] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [15] phi bitmap_init::x#2 = 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #0
|
2020-10-05 20:58:02 +00:00
|
|
|
// [15] phi bitmap_init::bits#3 = $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #$80
|
|
|
|
// [15] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [15] phi bitmap_init::x#2 = bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy
|
|
|
|
// [15] phi bitmap_init::bits#3 = bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
// bitmap_init::@1
|
|
|
|
__b1:
|
|
|
|
// bitmap_plot_bit[x] = bits
|
2020-10-05 20:58:02 +00:00
|
|
|
// [16] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
sta bitmap_plot_bit,x
|
|
|
|
// bits >>= 1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [17] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 -- vbuaa=vbuaa_ror_1
|
2020-06-27 21:26:57 +00:00
|
|
|
lsr
|
|
|
|
// if(bits==0)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [18] if(bitmap_init::bits#1!=0) goto bitmap_init::@6 -- vbuaa_neq_0_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cmp #0
|
|
|
|
bne __b2
|
|
|
|
// [20] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [20] phi bitmap_init::bits#4 = $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #$80
|
|
|
|
// [19] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6]
|
|
|
|
// bitmap_init::@6
|
|
|
|
// [20] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [20] phi bitmap_init::bits#4 = bitmap_init::bits#1 [phi:bitmap_init::@6->bitmap_init::@2#0] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
// bitmap_init::@2
|
|
|
|
__b2:
|
|
|
|
// for(char x : 0..255)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [21] bitmap_init::x#1 = ++ bitmap_init::x#2 -- vbuxx=_inc_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
inx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [22] if(bitmap_init::x#1!=0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cpx #0
|
|
|
|
bne __b1
|
|
|
|
// [23] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [23] phi bitmap_init::yoffs#2 = BITMAP [phi:bitmap_init::@2->bitmap_init::@3#0] -- pbuz1=pbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<BITMAP
|
|
|
|
sta.z yoffs
|
|
|
|
lda #>BITMAP
|
|
|
|
sta.z yoffs+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [23] phi bitmap_init::y#2 = 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #0
|
|
|
|
// [23] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [23] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy
|
|
|
|
// [23] phi bitmap_init::y#2 = bitmap_init::y#1 [phi:bitmap_init::@4->bitmap_init::@3#1] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
// bitmap_init::@3
|
|
|
|
__b3:
|
2024-01-02 18:45:16 +00:00
|
|
|
// y&0x7
|
2020-10-05 20:58:02 +00:00
|
|
|
// [24] bitmap_init::$7 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #7
|
|
|
|
sax.z __7
|
2021-06-12 18:57:35 +00:00
|
|
|
// BYTE0(yoffs)
|
2021-06-13 12:24:57 +00:00
|
|
|
// [25] bitmap_init::$4 = byte0 bitmap_init::yoffs#2 -- vbuaa=_byte0_pbuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z yoffs
|
2024-01-02 18:45:16 +00:00
|
|
|
// y&0x7 | BYTE0(yoffs)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [26] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
ora.z __7
|
2024-01-02 18:45:16 +00:00
|
|
|
// bitmap_plot_ylo[y] = y&0x7 | BYTE0(yoffs)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [27] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
sta bitmap_plot_ylo,x
|
2021-06-12 18:57:35 +00:00
|
|
|
// BYTE1(yoffs)
|
2021-06-13 12:24:57 +00:00
|
|
|
// [28] bitmap_init::$6 = byte1 bitmap_init::yoffs#2 -- vbuaa=_byte1_pbuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z yoffs+1
|
2021-06-12 18:57:35 +00:00
|
|
|
// bitmap_plot_yhi[y] = BYTE1(yoffs)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [29] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa
|
2020-06-27 21:26:57 +00:00
|
|
|
sta bitmap_plot_yhi,x
|
2024-01-02 18:45:16 +00:00
|
|
|
// if((y&0x7)==7)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [30] if(bitmap_init::$7!=7) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #7
|
|
|
|
cmp.z __7
|
|
|
|
bne __b4
|
|
|
|
// bitmap_init::@5
|
|
|
|
// yoffs = yoffs + 40*8
|
2021-08-10 15:48:55 +00:00
|
|
|
// [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z yoffs
|
2021-06-29 22:58:50 +00:00
|
|
|
clc
|
2020-06-27 21:26:57 +00:00
|
|
|
adc #<$28*8
|
|
|
|
sta.z yoffs
|
|
|
|
lda.z yoffs+1
|
|
|
|
adc #>$28*8
|
|
|
|
sta.z yoffs+1
|
|
|
|
// [32] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [32] phi bitmap_init::yoffs#4 = bitmap_init::yoffs#2 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4#0] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
// bitmap_init::@4
|
|
|
|
__b4:
|
|
|
|
// for(char y : 0..255)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [33] bitmap_init::y#1 = ++ bitmap_init::y#2 -- vbuxx=_inc_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
inx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [34] if(bitmap_init::y#1!=0) goto bitmap_init::@3 -- vbuxx_neq_0_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cpx #0
|
|
|
|
bne __b3
|
|
|
|
// bitmap_init::@return
|
|
|
|
// }
|
|
|
|
// [35] return
|
|
|
|
rts
|
|
|
|
}
|
|
|
|
// bitmap_clear
|
|
|
|
// Clear all graphics on the bitmap
|
|
|
|
// bgcol - the background color to fill the screen with
|
|
|
|
// fgcol - the foreground color to fill the screen with
|
2021-08-10 15:48:55 +00:00
|
|
|
// void bitmap_clear(char bgcol, char fgcol)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_clear: {
|
|
|
|
.const col = WHITE*$10+PURPLE
|
|
|
|
// memset(bitmap_screen, col, 1000uw)
|
2021-08-10 15:48:55 +00:00
|
|
|
// [37] call memset
|
2020-06-27 21:26:57 +00:00
|
|
|
// [89] phi from bitmap_clear to memset [phi:bitmap_clear->memset]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #col
|
2021-08-10 15:48:55 +00:00
|
|
|
// [89] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<SCREEN
|
|
|
|
sta.z memset.str
|
|
|
|
lda #>SCREEN
|
|
|
|
sta.z memset.str+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<$3e8
|
|
|
|
sta.z memset.num
|
|
|
|
lda #>$3e8
|
|
|
|
sta.z memset.num+1
|
|
|
|
jsr memset
|
|
|
|
// [38] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
|
|
|
|
// bitmap_clear::@1
|
|
|
|
// memset(bitmap_gfx, 0, 8000uw)
|
2021-08-10 15:48:55 +00:00
|
|
|
// [39] call memset
|
2020-06-27 21:26:57 +00:00
|
|
|
// [89] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx #0
|
2021-08-10 15:48:55 +00:00
|
|
|
// [89] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<BITMAP
|
|
|
|
sta.z memset.str
|
|
|
|
lda #>BITMAP
|
|
|
|
sta.z memset.str+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<$1f40
|
|
|
|
sta.z memset.num
|
|
|
|
lda #>$1f40
|
|
|
|
sta.z memset.num+1
|
|
|
|
jsr memset
|
|
|
|
// bitmap_clear::@return
|
|
|
|
// }
|
|
|
|
// [40] return
|
|
|
|
rts
|
2019-09-18 19:53:32 +00:00
|
|
|
}
|
|
|
|
// bitmap_line
|
|
|
|
// Draw a line on the bitmap using bresenhams algorithm
|
2021-09-23 06:24:56 +00:00
|
|
|
// void bitmap_line(unsigned int x1, unsigned int y1, __zp($14) unsigned int x2, unsigned int y2)
|
2019-09-18 19:53:32 +00:00
|
|
|
bitmap_line: {
|
|
|
|
.const x1 = 0
|
|
|
|
.const y1 = 0
|
|
|
|
.const y2 = $64
|
2021-09-23 06:24:56 +00:00
|
|
|
.label dx = $12
|
|
|
|
.label dy = $e
|
|
|
|
.label sx = $16
|
|
|
|
.label sy = $10
|
|
|
|
.label e1 = $c
|
|
|
|
.label e = $a
|
|
|
|
.label y = 8
|
|
|
|
.label x = 6
|
|
|
|
.label x2 = $14
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int dx = abs_u16(x2-x1)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [41] abs_u16::w#0 = bitmap_line::x2#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x2
|
|
|
|
sta.z abs_u16.w
|
|
|
|
lda.z x2+1
|
|
|
|
sta.z abs_u16.w+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [42] call abs_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [98] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr abs_u16
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int dx = abs_u16(x2-x1)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [43] abs_u16::return#0 = abs_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@12
|
2020-10-05 20:58:02 +00:00
|
|
|
// [44] bitmap_line::dx#0 = abs_u16::return#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z abs_u16.return
|
|
|
|
sta.z dx
|
|
|
|
lda.z abs_u16.return+1
|
|
|
|
sta.z dx+1
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int dy = abs_u16(y2-y1)
|
2021-08-10 15:48:55 +00:00
|
|
|
// [45] call abs_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [98] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y2
|
|
|
|
sta.z abs_u16.w
|
|
|
|
lda #>y2
|
|
|
|
sta.z abs_u16.w+1
|
|
|
|
jsr abs_u16
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int dy = abs_u16(y2-y1)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [46] abs_u16::return#1 = abs_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@13
|
2020-10-05 20:58:02 +00:00
|
|
|
// [47] bitmap_line::dy#0 = abs_u16::return#1
|
2019-09-18 19:53:32 +00:00
|
|
|
// if(dx==0 && dy==0)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [48] if(bitmap_line::dx#0!=0) goto bitmap_line::@1 -- vwuz1_neq_0_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dx
|
2020-12-06 15:59:54 +00:00
|
|
|
ora.z dx+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b1
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@18
|
2020-10-05 20:58:02 +00:00
|
|
|
// [49] if(bitmap_line::dy#0==0) goto bitmap_line::@4 -- vwuz1_eq_0_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dy
|
2020-12-06 15:59:54 +00:00
|
|
|
ora.z dy+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bne !__b4+
|
|
|
|
jmp __b4
|
|
|
|
!__b4:
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@1
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1:
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int sx = sgn_u16(x2-x1)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [50] sgn_u16::w#0 = bitmap_line::x2#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x2
|
|
|
|
sta.z sgn_u16.w
|
|
|
|
lda.z x2+1
|
|
|
|
sta.z sgn_u16.w+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [51] call sgn_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [105] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr sgn_u16
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int sx = sgn_u16(x2-x1)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [52] sgn_u16::return#0 = sgn_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@14
|
2020-10-05 20:58:02 +00:00
|
|
|
// [53] bitmap_line::sx#0 = sgn_u16::return#0 -- vwuz1=vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z sgn_u16.return
|
|
|
|
sta.z sx
|
|
|
|
lda.z sgn_u16.return+1
|
|
|
|
sta.z sx+1
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int sy = sgn_u16(y2-y1)
|
2021-08-10 15:48:55 +00:00
|
|
|
// [54] call sgn_u16
|
2020-06-27 21:26:57 +00:00
|
|
|
// [105] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y2
|
|
|
|
sta.z sgn_u16.w
|
|
|
|
lda #>y2
|
|
|
|
sta.z sgn_u16.w+1
|
|
|
|
jsr sgn_u16
|
2021-07-27 17:11:14 +00:00
|
|
|
// unsigned int sy = sgn_u16(y2-y1)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [55] sgn_u16::return#1 = sgn_u16::return#4
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@15
|
2020-10-05 20:58:02 +00:00
|
|
|
// [56] bitmap_line::sy#0 = sgn_u16::return#1
|
2019-09-18 19:53:32 +00:00
|
|
|
// if(dx > dy)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [57] if(bitmap_line::dx#0>bitmap_line::dy#0) goto bitmap_line::@2 -- vwuz1_gt_vwuz2_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dy+1
|
|
|
|
cmp.z dx+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bcc __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
bne !+
|
|
|
|
lda.z dy
|
|
|
|
cmp.z dx
|
2019-09-29 21:13:37 +00:00
|
|
|
bcc __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
|
|
|
// bitmap_line::@5
|
2021-05-02 12:28:03 +00:00
|
|
|
// unsigned int e = dx/2
|
2020-10-05 20:58:02 +00:00
|
|
|
// [58] bitmap_line::e#0 = bitmap_line::dx#0 >> 1 -- vwuz1=vwuz2_ror_1
|
2021-07-27 17:11:14 +00:00
|
|
|
// Y is the driver
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dx+1
|
|
|
|
lsr
|
|
|
|
sta.z e+1
|
|
|
|
lda.z dx
|
|
|
|
ror
|
|
|
|
sta.z e
|
2020-06-27 21:26:57 +00:00
|
|
|
// [59] phi from bitmap_line::@5 to bitmap_line::@6 [phi:bitmap_line::@5->bitmap_line::@6]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [59] phi bitmap_line::e#3 = bitmap_line::e#0 [phi:bitmap_line::@5->bitmap_line::@6#0] -- register_copy
|
|
|
|
// [59] phi bitmap_line::y#4 = bitmap_line::y1#0 [phi:bitmap_line::@5->bitmap_line::@6#1] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y1
|
|
|
|
sta.z y
|
|
|
|
lda #>y1
|
|
|
|
sta.z y+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [59] phi bitmap_line::x#13 = bitmap_line::x1#0 [phi:bitmap_line::@5->bitmap_line::@6#2] -- vwuz1=vwuc1
|
2020-04-19 09:05:54 +00:00
|
|
|
lda #<x1
|
|
|
|
sta.z x
|
|
|
|
lda #>x1
|
|
|
|
sta.z x+1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [59] phi from bitmap_line::@7 to bitmap_line::@6 [phi:bitmap_line::@7->bitmap_line::@6]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [59] phi bitmap_line::e#3 = bitmap_line::e#6 [phi:bitmap_line::@7->bitmap_line::@6#0] -- register_copy
|
|
|
|
// [59] phi bitmap_line::y#4 = bitmap_line::y#1 [phi:bitmap_line::@7->bitmap_line::@6#1] -- register_copy
|
|
|
|
// [59] phi bitmap_line::x#13 = bitmap_line::x#12 [phi:bitmap_line::@7->bitmap_line::@6#2] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@6
|
2019-09-29 21:13:37 +00:00
|
|
|
__b6:
|
2020-04-13 18:00:13 +00:00
|
|
|
// bitmap_plot(x,(char)y)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [60] bitmap_plot::x#1 = bitmap_line::x#13
|
2021-08-10 15:48:55 +00:00
|
|
|
// [61] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1
|
2021-06-12 18:57:35 +00:00
|
|
|
ldx.z y
|
2021-08-10 15:48:55 +00:00
|
|
|
// [62] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
|
|
|
|
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_plot
|
|
|
|
// bitmap_line::@16
|
|
|
|
// y += sy
|
2020-10-05 20:58:02 +00:00
|
|
|
// [63] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z y
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sy
|
|
|
|
sta.z y
|
|
|
|
lda.z y+1
|
|
|
|
adc.z sy+1
|
|
|
|
sta.z y+1
|
|
|
|
// e += dx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [64] bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z e
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z dx
|
|
|
|
sta.z e
|
|
|
|
lda.z e+1
|
|
|
|
adc.z dx+1
|
|
|
|
sta.z e+1
|
|
|
|
// if(dy<e)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [65] if(bitmap_line::dy#0>=bitmap_line::e#1) goto bitmap_line::@7 -- vwuz1_ge_vwuz2_then_la1
|
2021-08-13 19:22:17 +00:00
|
|
|
cmp.z dy+1
|
|
|
|
bne !+
|
|
|
|
lda.z e
|
|
|
|
cmp.z dy
|
|
|
|
beq __b7
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
2021-08-13 19:22:17 +00:00
|
|
|
bcc __b7
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@8
|
|
|
|
// x += sx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [66] bitmap_line::x#1 = bitmap_line::x#13 + bitmap_line::sx#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z x
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sx
|
|
|
|
sta.z x
|
|
|
|
lda.z x+1
|
|
|
|
adc.z sx+1
|
|
|
|
sta.z x+1
|
|
|
|
// e -= dy
|
2020-10-05 20:58:02 +00:00
|
|
|
// [67] bitmap_line::e#2 = bitmap_line::e#1 - bitmap_line::dy#0 -- vwuz1=vwuz1_minus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z e
|
|
|
|
sec
|
|
|
|
sbc.z dy
|
|
|
|
sta.z e
|
|
|
|
lda.z e+1
|
|
|
|
sbc.z dy+1
|
|
|
|
sta.z e+1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [68] phi from bitmap_line::@16 bitmap_line::@8 to bitmap_line::@7 [phi:bitmap_line::@16/bitmap_line::@8->bitmap_line::@7]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [68] phi bitmap_line::e#6 = bitmap_line::e#1 [phi:bitmap_line::@16/bitmap_line::@8->bitmap_line::@7#0] -- register_copy
|
|
|
|
// [68] phi bitmap_line::x#12 = bitmap_line::x#13 [phi:bitmap_line::@16/bitmap_line::@8->bitmap_line::@7#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@7
|
2019-09-29 21:13:37 +00:00
|
|
|
__b7:
|
2019-09-18 19:53:32 +00:00
|
|
|
// while (y != y2)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [69] if(bitmap_line::y#1!=bitmap_line::y2#0) goto bitmap_line::@6 -- vwuz1_neq_vwuc1_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z y+1
|
|
|
|
cmp #>y2
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b6
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z y
|
|
|
|
cmp #<y2
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b6
|
2020-06-27 21:26:57 +00:00
|
|
|
// [70] phi from bitmap_line::@10 bitmap_line::@7 to bitmap_line::@3 [phi:bitmap_line::@10/bitmap_line::@7->bitmap_line::@3]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [70] phi bitmap_line::y#7 = bitmap_line::y#13 [phi:bitmap_line::@10/bitmap_line::@7->bitmap_line::@3#0] -- register_copy
|
|
|
|
// [70] phi bitmap_line::x#6 = bitmap_line::x#15 [phi:bitmap_line::@10/bitmap_line::@7->bitmap_line::@3#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@3
|
2019-09-29 21:13:37 +00:00
|
|
|
__b3:
|
2020-04-13 18:00:13 +00:00
|
|
|
// bitmap_plot(x,(char)y)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [71] bitmap_plot::x#2 = bitmap_line::x#6
|
2021-08-10 15:48:55 +00:00
|
|
|
// [72] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1
|
2021-06-12 18:57:35 +00:00
|
|
|
ldx.z y
|
2021-08-10 15:48:55 +00:00
|
|
|
// [73] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
|
|
|
|
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_plot
|
|
|
|
// bitmap_line::@return
|
|
|
|
// }
|
2020-06-27 21:26:57 +00:00
|
|
|
// [74] return
|
2019-09-18 19:53:32 +00:00
|
|
|
rts
|
|
|
|
// bitmap_line::@2
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2:
|
2021-05-02 12:28:03 +00:00
|
|
|
// unsigned int e = dy/2
|
2020-10-05 20:58:02 +00:00
|
|
|
// [75] bitmap_line::e1#0 = bitmap_line::dy#0 >> 1 -- vwuz1=vwuz2_ror_1
|
2021-07-27 17:11:14 +00:00
|
|
|
// X is the driver
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dy+1
|
|
|
|
lsr
|
|
|
|
sta.z e1+1
|
|
|
|
lda.z dy
|
|
|
|
ror
|
|
|
|
sta.z e1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [76] phi from bitmap_line::@2 to bitmap_line::@9 [phi:bitmap_line::@2->bitmap_line::@9]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [76] phi bitmap_line::e1#3 = bitmap_line::e1#0 [phi:bitmap_line::@2->bitmap_line::@9#0] -- register_copy
|
|
|
|
// [76] phi bitmap_line::y#15 = bitmap_line::y1#0 [phi:bitmap_line::@2->bitmap_line::@9#1] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<y1
|
|
|
|
sta.z y
|
|
|
|
lda #>y1
|
|
|
|
sta.z y+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [76] phi bitmap_line::x#7 = bitmap_line::x1#0 [phi:bitmap_line::@2->bitmap_line::@9#2] -- vwuz1=vwuc1
|
2020-04-19 09:05:54 +00:00
|
|
|
lda #<x1
|
|
|
|
sta.z x
|
|
|
|
lda #>x1
|
|
|
|
sta.z x+1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [76] phi from bitmap_line::@10 to bitmap_line::@9 [phi:bitmap_line::@10->bitmap_line::@9]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [76] phi bitmap_line::e1#3 = bitmap_line::e1#6 [phi:bitmap_line::@10->bitmap_line::@9#0] -- register_copy
|
|
|
|
// [76] phi bitmap_line::y#15 = bitmap_line::y#13 [phi:bitmap_line::@10->bitmap_line::@9#1] -- register_copy
|
|
|
|
// [76] phi bitmap_line::x#7 = bitmap_line::x#15 [phi:bitmap_line::@10->bitmap_line::@9#2] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@9
|
2019-09-29 21:13:37 +00:00
|
|
|
__b9:
|
2020-04-13 18:00:13 +00:00
|
|
|
// bitmap_plot(x,(char)y)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [77] bitmap_plot::x#3 = bitmap_line::x#7
|
2021-08-10 15:48:55 +00:00
|
|
|
// [78] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1
|
2021-06-12 18:57:35 +00:00
|
|
|
ldx.z y
|
2021-08-10 15:48:55 +00:00
|
|
|
// [79] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
|
|
|
|
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
jsr bitmap_plot
|
|
|
|
// bitmap_line::@17
|
|
|
|
// x += sx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [80] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z x
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sx
|
|
|
|
sta.z x
|
|
|
|
lda.z x+1
|
|
|
|
adc.z sx+1
|
|
|
|
sta.z x+1
|
|
|
|
// e += dy
|
2020-10-05 20:58:02 +00:00
|
|
|
// [81] bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z e1
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z dy
|
|
|
|
sta.z e1
|
|
|
|
lda.z e1+1
|
|
|
|
adc.z dy+1
|
|
|
|
sta.z e1+1
|
|
|
|
// if(dx < e)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [82] if(bitmap_line::dx#0>=bitmap_line::e1#1) goto bitmap_line::@10 -- vwuz1_ge_vwuz2_then_la1
|
2021-08-13 19:22:17 +00:00
|
|
|
cmp.z dx+1
|
|
|
|
bne !+
|
|
|
|
lda.z e1
|
|
|
|
cmp.z dx
|
|
|
|
beq __b10
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
2021-08-13 19:22:17 +00:00
|
|
|
bcc __b10
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@11
|
|
|
|
// y += sy
|
2020-10-05 20:58:02 +00:00
|
|
|
// [83] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0 -- vwuz1=vwuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z y
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z sy
|
|
|
|
sta.z y
|
|
|
|
lda.z y+1
|
|
|
|
adc.z sy+1
|
|
|
|
sta.z y+1
|
|
|
|
// e -= dx
|
2020-10-05 20:58:02 +00:00
|
|
|
// [84] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 -- vwuz1=vwuz1_minus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z e1
|
|
|
|
sec
|
|
|
|
sbc.z dx
|
|
|
|
sta.z e1
|
|
|
|
lda.z e1+1
|
|
|
|
sbc.z dx+1
|
|
|
|
sta.z e1+1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [85] phi from bitmap_line::@11 bitmap_line::@17 to bitmap_line::@10 [phi:bitmap_line::@11/bitmap_line::@17->bitmap_line::@10]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [85] phi bitmap_line::e1#6 = bitmap_line::e1#2 [phi:bitmap_line::@11/bitmap_line::@17->bitmap_line::@10#0] -- register_copy
|
|
|
|
// [85] phi bitmap_line::y#13 = bitmap_line::y#2 [phi:bitmap_line::@11/bitmap_line::@17->bitmap_line::@10#1] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@10
|
2019-09-29 21:13:37 +00:00
|
|
|
__b10:
|
2019-09-18 19:53:32 +00:00
|
|
|
// while (x != x2)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [86] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 -- vwuz1_neq_vwuz2_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x+1
|
|
|
|
cmp.z x2+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b9
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z x
|
|
|
|
cmp.z x2
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b9
|
|
|
|
jmp __b3
|
2020-06-27 21:26:57 +00:00
|
|
|
// [87] phi from bitmap_line::@18 to bitmap_line::@4 [phi:bitmap_line::@18->bitmap_line::@4]
|
2019-09-18 19:53:32 +00:00
|
|
|
// bitmap_line::@4
|
2019-09-29 21:13:37 +00:00
|
|
|
__b4:
|
2020-04-13 18:00:13 +00:00
|
|
|
// bitmap_plot(x,(char)y)
|
2021-08-10 15:48:55 +00:00
|
|
|
// [88] call bitmap_plot
|
2020-06-27 21:26:57 +00:00
|
|
|
// [112] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::x#4 = bitmap_line::x1#0 [phi:bitmap_line::@4->bitmap_plot#0] -- vwuz1=vwuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda #<x1
|
|
|
|
sta.z bitmap_plot.x
|
|
|
|
lda #>x1
|
|
|
|
sta.z bitmap_plot.x+1
|
2020-10-05 20:58:02 +00:00
|
|
|
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- vbuxx=vbuc1
|
2019-09-18 19:53:32 +00:00
|
|
|
ldx #0
|
|
|
|
jsr bitmap_plot
|
|
|
|
rts
|
|
|
|
}
|
|
|
|
// memset
|
|
|
|
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
|
2021-09-23 06:24:56 +00:00
|
|
|
// void * memset(__zp(6) void *str, __register(X) char c, __zp($a) unsigned int num)
|
2019-09-18 19:53:32 +00:00
|
|
|
memset: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label end = $a
|
|
|
|
.label dst = 6
|
|
|
|
.label num = $a
|
|
|
|
.label str = 6
|
2019-09-18 19:53:32 +00:00
|
|
|
// if(num>0)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [90] if(memset::num#2<=0) goto memset::@return -- vwuz1_le_0_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z num
|
|
|
|
bne !+
|
|
|
|
lda.z num+1
|
2019-09-29 21:13:37 +00:00
|
|
|
beq __breturn
|
2019-09-18 19:53:32 +00:00
|
|
|
!:
|
|
|
|
// memset::@1
|
2021-05-02 12:28:03 +00:00
|
|
|
// char* end = (char*)str + num
|
2021-08-10 15:48:55 +00:00
|
|
|
// [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z end
|
2019-09-18 19:53:32 +00:00
|
|
|
adc.z str
|
|
|
|
sta.z end
|
|
|
|
lda.z end+1
|
|
|
|
adc.z str+1
|
|
|
|
sta.z end+1
|
2021-08-10 15:48:55 +00:00
|
|
|
// [92] memset::dst#4 = (char *)memset::str#3
|
2020-06-27 21:26:57 +00:00
|
|
|
// [93] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [93] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy
|
2019-09-18 19:53:32 +00:00
|
|
|
// memset::@2
|
2019-09-29 21:13:37 +00:00
|
|
|
__b2:
|
2019-09-18 19:53:32 +00:00
|
|
|
// for(char* dst = str; dst!=end; dst++)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [94] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dst+1
|
|
|
|
cmp.z end+1
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b3
|
2019-09-18 19:53:32 +00:00
|
|
|
lda.z dst
|
|
|
|
cmp.z end
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b3
|
2019-09-18 19:53:32 +00:00
|
|
|
// memset::@return
|
2019-09-29 21:13:37 +00:00
|
|
|
__breturn:
|
2019-09-18 19:53:32 +00:00
|
|
|
// }
|
2020-06-27 21:26:57 +00:00
|
|
|
// [95] return
|
2019-09-18 19:53:32 +00:00
|
|
|
rts
|
|
|
|
// memset::@3
|
2019-09-29 21:13:37 +00:00
|
|
|
__b3:
|
2019-09-18 19:53:32 +00:00
|
|
|
// *dst = c
|
2020-10-05 20:58:02 +00:00
|
|
|
// [96] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuxx
|
2019-09-18 19:53:32 +00:00
|
|
|
txa
|
|
|
|
ldy #0
|
|
|
|
sta (dst),y
|
|
|
|
// for(char* dst = str; dst!=end; dst++)
|
2020-10-05 20:58:02 +00:00
|
|
|
// [97] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1
|
2019-09-18 19:53:32 +00:00
|
|
|
inc.z dst
|
|
|
|
bne !+
|
|
|
|
inc.z dst+1
|
|
|
|
!:
|
2019-09-29 21:13:37 +00:00
|
|
|
jmp __b2
|
2019-09-18 19:53:32 +00:00
|
|
|
}
|
2020-06-27 21:26:57 +00:00
|
|
|
// abs_u16
|
|
|
|
// Get the absolute value of a 16-bit unsigned number treated as a signed number.
|
2021-09-23 06:24:56 +00:00
|
|
|
// __zp($e) unsigned int abs_u16(__zp($e) unsigned int w)
|
2020-06-27 21:26:57 +00:00
|
|
|
abs_u16: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label w = $e
|
|
|
|
.label return = $e
|
2021-06-12 18:57:35 +00:00
|
|
|
// BYTE1(w)
|
2021-06-13 12:24:57 +00:00
|
|
|
// [99] abs_u16::$0 = byte1 abs_u16::w#2 -- vbuaa=_byte1_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z w+1
|
2021-06-12 18:57:35 +00:00
|
|
|
// BYTE1(w)&0x80
|
2020-10-05 20:58:02 +00:00
|
|
|
// [100] abs_u16::$1 = abs_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
and #$80
|
2021-06-12 18:57:35 +00:00
|
|
|
// if(BYTE1(w)&0x80)
|
2020-12-11 23:48:31 +00:00
|
|
|
// [101] if(0!=abs_u16::$1) goto abs_u16::@1 -- 0_neq_vbuaa_then_la1
|
2020-06-27 21:26:57 +00:00
|
|
|
cmp #0
|
|
|
|
bne __b1
|
|
|
|
// [103] phi from abs_u16 abs_u16::@1 to abs_u16::@return [phi:abs_u16/abs_u16::@1->abs_u16::@return]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [103] phi abs_u16::return#4 = abs_u16::w#2 [phi:abs_u16/abs_u16::@1->abs_u16::@return#0] -- register_copy
|
2020-06-27 21:26:57 +00:00
|
|
|
rts
|
|
|
|
// abs_u16::@1
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1:
|
2020-06-27 21:26:57 +00:00
|
|
|
// return -w;
|
2020-10-05 20:58:02 +00:00
|
|
|
// [102] abs_u16::return#2 = - abs_u16::w#2 -- vwuz1=_neg_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
sec
|
|
|
|
lda #0
|
|
|
|
sbc.z return
|
|
|
|
sta.z return
|
|
|
|
lda #0
|
|
|
|
sbc.z return+1
|
|
|
|
sta.z return+1
|
|
|
|
// abs_u16::@return
|
|
|
|
// }
|
|
|
|
// [104] return
|
|
|
|
rts
|
|
|
|
}
|
|
|
|
// sgn_u16
|
|
|
|
// Get the sign of a 16-bit unsigned number treated as a signed number.
|
|
|
|
// Returns unsigned -1 if the number is
|
2021-09-23 06:24:56 +00:00
|
|
|
// __zp($10) unsigned int sgn_u16(__zp(2) unsigned int w)
|
2020-06-27 21:26:57 +00:00
|
|
|
sgn_u16: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label w = 2
|
|
|
|
.label return = $10
|
2021-06-12 18:57:35 +00:00
|
|
|
// BYTE1(w)
|
2021-06-13 12:24:57 +00:00
|
|
|
// [106] sgn_u16::$0 = byte1 sgn_u16::w#2 -- vbuaa=_byte1_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z w+1
|
2021-06-12 18:57:35 +00:00
|
|
|
// BYTE1(w)&0x80
|
2020-10-05 20:58:02 +00:00
|
|
|
// [107] sgn_u16::$1 = sgn_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
and #$80
|
2021-06-12 18:57:35 +00:00
|
|
|
// if(BYTE1(w)&0x80)
|
2020-12-11 23:48:31 +00:00
|
|
|
// [108] if(0!=sgn_u16::$1) goto sgn_u16::@1 -- 0_neq_vbuaa_then_la1
|
2019-09-18 19:53:32 +00:00
|
|
|
cmp #0
|
2019-09-29 21:13:37 +00:00
|
|
|
bne __b1
|
2020-06-27 21:26:57 +00:00
|
|
|
// [110] phi from sgn_u16 to sgn_u16::@return [phi:sgn_u16->sgn_u16::@return]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [110] phi sgn_u16::return#4 = 1 [phi:sgn_u16->sgn_u16::@return#0] -- vwuz1=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<1
|
|
|
|
sta.z return
|
|
|
|
lda #>1
|
|
|
|
sta.z return+1
|
|
|
|
rts
|
|
|
|
// [109] phi from sgn_u16 to sgn_u16::@1 [phi:sgn_u16->sgn_u16::@1]
|
|
|
|
// sgn_u16::@1
|
|
|
|
__b1:
|
|
|
|
// [110] phi from sgn_u16::@1 to sgn_u16::@return [phi:sgn_u16::@1->sgn_u16::@return]
|
2020-10-05 20:58:02 +00:00
|
|
|
// [110] phi sgn_u16::return#4 = -1 [phi:sgn_u16::@1->sgn_u16::@return#0] -- vwuz1=vbuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda #<-1
|
|
|
|
sta.z return
|
|
|
|
sta.z return+1
|
|
|
|
// sgn_u16::@return
|
|
|
|
// }
|
|
|
|
// [111] return
|
|
|
|
rts
|
|
|
|
}
|
|
|
|
// bitmap_plot
|
|
|
|
// Plot a single dot in the bitmap
|
2021-09-23 06:24:56 +00:00
|
|
|
// void bitmap_plot(__zp(6) unsigned int x, __register(X) char y)
|
2020-06-27 21:26:57 +00:00
|
|
|
bitmap_plot: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label __1 = 4
|
|
|
|
.label plotter = 2
|
|
|
|
.label x = 6
|
2021-07-01 22:21:08 +00:00
|
|
|
// MAKEWORD( bitmap_plot_yhi[y], bitmap_plot_ylo[y] )
|
2020-10-05 20:58:02 +00:00
|
|
|
// [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
lda bitmap_plot_yhi,x
|
|
|
|
sta.z plotter+1
|
|
|
|
lda bitmap_plot_ylo,x
|
|
|
|
sta.z plotter
|
2024-01-02 18:45:16 +00:00
|
|
|
// x & 0xfff8
|
2021-07-01 22:21:08 +00:00
|
|
|
// [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z x
|
|
|
|
and #<$fff8
|
2021-07-01 22:21:08 +00:00
|
|
|
sta.z __1
|
2020-06-27 21:26:57 +00:00
|
|
|
lda.z x+1
|
|
|
|
and #>$fff8
|
2021-07-01 22:21:08 +00:00
|
|
|
sta.z __1+1
|
2024-01-02 18:45:16 +00:00
|
|
|
// plotter += ( x & 0xfff8 )
|
2021-08-10 15:48:55 +00:00
|
|
|
// [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2
|
2019-09-18 19:53:32 +00:00
|
|
|
clc
|
2021-06-29 22:05:01 +00:00
|
|
|
lda.z plotter
|
2021-07-01 22:21:08 +00:00
|
|
|
adc.z __1
|
2020-06-27 21:26:57 +00:00
|
|
|
sta.z plotter
|
|
|
|
lda.z plotter+1
|
2021-07-01 22:21:08 +00:00
|
|
|
adc.z __1+1
|
2020-06-27 21:26:57 +00:00
|
|
|
sta.z plotter+1
|
2021-06-13 06:22:32 +00:00
|
|
|
// BYTE0(x)
|
2021-07-01 22:21:08 +00:00
|
|
|
// [116] bitmap_plot::$2 = byte0 bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1
|
2020-06-27 21:26:57 +00:00
|
|
|
ldx.z x
|
2021-06-13 06:22:32 +00:00
|
|
|
// *plotter |= bitmap_plot_bit[BYTE0(x)]
|
2021-07-01 22:21:08 +00:00
|
|
|
// [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
2020-06-27 21:26:57 +00:00
|
|
|
lda bitmap_plot_bit,x
|
|
|
|
ldy #0
|
|
|
|
ora (plotter),y
|
|
|
|
sta (plotter),y
|
|
|
|
// bitmap_plot::@return
|
2019-09-18 19:53:32 +00:00
|
|
|
// }
|
2020-06-27 19:18:00 +00:00
|
|
|
// [118] return
|
2019-09-18 19:53:32 +00:00
|
|
|
rts
|
|
|
|
}
|
|
|
|
// File Data
|
2020-12-21 07:57:41 +00:00
|
|
|
.segment Data
|
2019-09-18 19:53:32 +00:00
|
|
|
// Tables for the plotter - initialized by calling bitmap_init();
|
|
|
|
bitmap_plot_ylo: .fill $100, 0
|
|
|
|
bitmap_plot_yhi: .fill $100, 0
|
|
|
|
bitmap_plot_bit: .fill $100, 0
|
|
|
|
|