mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-23 09:33:30 +00:00
Added a bresenham line routine to singlecolor bitmap bitmap2.kc
This commit is contained in:
parent
62d7ecbeff
commit
fd63efafe2
@ -1,4 +1,4 @@
|
||||
// Simple Singlecolor Bitmap Routines
|
||||
// Simple single-color (320x200) bitmap routines
|
||||
import "string"
|
||||
|
||||
// The adddress of the bitmap screen (used for colors)
|
||||
@ -48,3 +48,59 @@ void bitmap_plot(word x, byte y) {
|
||||
plotter += ( x & $fff8 );
|
||||
*plotter |= bitmap_plot_bit[<x];
|
||||
}
|
||||
|
||||
// Draw a line on the bitmap using bresenhams algorithm
|
||||
void bitmap_line(word x1, word y1, word x2, word y2) {
|
||||
word x = x1;
|
||||
word y = y1;
|
||||
word dx = abs_u16(x2-x1);
|
||||
word dy = abs_u16(y2-y1);
|
||||
word sx = sgn_u16(x2-x1);
|
||||
word sy = sgn_u16(y2-y1);
|
||||
if(dx > dy) {
|
||||
// X is the driver
|
||||
word e = dy/2;
|
||||
do {
|
||||
bitmap_plot(x,(byte)y);
|
||||
x += sx;
|
||||
e += dy;
|
||||
if(dx < e) {
|
||||
y += sy;
|
||||
e -= dx;
|
||||
}
|
||||
} while (x != x2);
|
||||
} else {
|
||||
// Y is the driver
|
||||
word e = dx/2;
|
||||
do {
|
||||
bitmap_plot(x,(byte)y);
|
||||
y += sy;
|
||||
e += dx;
|
||||
if(dy<e) {
|
||||
x += sx;
|
||||
e -= dy;
|
||||
}
|
||||
} while (y != y2);
|
||||
}
|
||||
bitmap_plot(x,(byte)y);
|
||||
}
|
||||
|
||||
// Get the absolute value of a 16-bit unsigned number treated as a signed number.
|
||||
word abs_u16(word w) {
|
||||
if(>w&0x80) {
|
||||
return -w;
|
||||
} else {
|
||||
return w;
|
||||
}
|
||||
}
|
||||
|
||||
// Get the sign of a 16-bit unsigned number treated as a signed number.
|
||||
// Returns unsigned -1 if the number is
|
||||
word sgn_u16(word w) {
|
||||
if(>w&0x80) {
|
||||
return 0xffff;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,5 +19,5 @@ while [[ "$#" -gt 0 ]]; do case $1 in
|
||||
*) export PARAM="$PARAM $1"; shift;;
|
||||
esac; done
|
||||
|
||||
echo java -jar $KICKC_JAR -I $KICKC_STDLIB_HOME -F $KICKC_FRAGMENT_HOME $PARAM
|
||||
java -jar $KICKC_JAR -I $KICKC_STDLIB_HOME -F $KICKC_FRAGMENT_HOME $PARAM
|
||||
echo java -jar $KICKC_JAR -F $KICKC_FRAGMENT_HOME $PARAM -I $KICKC_STDLIB_HOME
|
||||
java -jar $KICKC_JAR -F $KICKC_FRAGMENT_HOME $PARAM -I $KICKC_STDLIB_HOME
|
@ -136,6 +136,11 @@ public class TestPrograms {
|
||||
compileAndCompare("memcpy-0");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBitmapPlot3() throws IOException, URISyntaxException {
|
||||
compileAndCompare("bitmap-plot-3");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBitmapPlot2() throws IOException, URISyntaxException {
|
||||
compileAndCompare("bitmap-plot-2");
|
||||
|
23
src/test/kc/bitmap-plot-3.kc
Normal file
23
src/test/kc/bitmap-plot-3.kc
Normal file
@ -0,0 +1,23 @@
|
||||
// Tests the simple bitmap plotter
|
||||
// Plots a few lines using the bresenham line algorithm
|
||||
import "c64"
|
||||
import "bitmap2"
|
||||
import "print"
|
||||
|
||||
byte* BITMAP = 0x2000;
|
||||
byte* SCREEN = 0x0400;
|
||||
|
||||
byte[0x180] align(0x100) SINTAB = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }};
|
||||
byte* COSTAB = SINTAB+0x40;
|
||||
|
||||
void main() {
|
||||
bitmap_init(BITMAP, SCREEN);
|
||||
bitmap_clear(BLACK, WHITE);
|
||||
*D011 = VIC_BMM|VIC_DEN|VIC_RSEL|3;
|
||||
*D018 = toD018(SCREEN, BITMAP);
|
||||
for( byte i=0, a=0; i!=8; i++, a+=32) {
|
||||
bitmap_line( (word)COSTAB[a]+120, (word)SINTAB[a], (word)COSTAB[a+32]+120, (word)SINTAB[a+32]);
|
||||
}
|
||||
while(true)
|
||||
(*(SCREEN+999))++;
|
||||
}
|
@ -2,6 +2,8 @@ Resolved forward reference frame_cnt to (byte) frame_cnt
|
||||
Resolved forward reference frame_cnt to (byte) frame_cnt
|
||||
Resolved forward reference irq to interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
||||
Warning! Adding boolean cast to non-boolean sub-expression (byte) frame_cnt
|
||||
Identified constant variable (byte*) BITMAP
|
||||
Identified constant variable (byte*) SCREEN
|
||||
@ -18,12 +20,15 @@ Culled Empty Block (label) @7
|
||||
Culled Empty Block (label) bitmap_init::@8
|
||||
Culled Empty Block (label) @9
|
||||
Culled Empty Block (label) @10
|
||||
Culled Empty Block (label) @11
|
||||
Culled Empty Block (label) @12
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) main::toD0181_@1
|
||||
Culled Empty Block (label) main::@6
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) main::@7
|
||||
Culled Empty Block (label) main::@10
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @16
|
||||
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
@ -82,7 +87,7 @@ memset::@return: scope:[memset] from memset::@2
|
||||
(byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
|
||||
to:@11
|
||||
to:@14
|
||||
bitmap_init: scope:[bitmap_init] from main
|
||||
(byte*) bitmap_init::screen#1 ← phi( main/(byte*) bitmap_init::screen#0 )
|
||||
(byte*) bitmap_init::gfx#1 ← phi( main/(byte*) bitmap_init::gfx#0 )
|
||||
@ -207,17 +212,17 @@ bitmap_plot: scope:[bitmap_plot] from main::@2
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @8
|
||||
@14: scope:[] from @8
|
||||
(byte*) bitmap_screen#24 ← phi( @8/(byte*) bitmap_screen#0 )
|
||||
(byte*) bitmap_gfx#25 ← phi( @8/(byte*) bitmap_gfx#0 )
|
||||
(byte*) BITMAP#0 ← ((byte*)) (number) $2000
|
||||
(byte*) SCREEN#0 ← ((byte*)) (number) $400
|
||||
(byte[$100]) plots_per_frame#0 ← { fill( $100, 0) }
|
||||
to:@12
|
||||
main: scope:[main] from @14
|
||||
(byte) frame_cnt#21 ← phi( @14/(byte) frame_cnt#9 )
|
||||
(byte*) bitmap_screen#12 ← phi( @14/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#13 ← phi( @14/(byte*) bitmap_gfx#15 )
|
||||
to:@15
|
||||
main: scope:[main] from @17
|
||||
(byte) frame_cnt#21 ← phi( @17/(byte) frame_cnt#9 )
|
||||
(byte*) bitmap_screen#12 ← phi( @17/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#13 ← phi( @17/(byte*) bitmap_gfx#15 )
|
||||
(byte*) bitmap_init::gfx#0 ← (byte*) BITMAP#0
|
||||
(byte*) bitmap_init::screen#0 ← (byte*) SCREEN#0
|
||||
call bitmap_init
|
||||
@ -376,11 +381,11 @@ main::@return: scope:[main] from main::@1
|
||||
(byte*) bitmap_screen#4 ← (byte*) bitmap_screen#9
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
(byte*) bitmap_screen#19 ← phi( @11/(byte*) bitmap_screen#24 )
|
||||
(byte*) bitmap_gfx#20 ← phi( @11/(byte*) bitmap_gfx#25 )
|
||||
@15: scope:[] from @14
|
||||
(byte*) bitmap_screen#19 ← phi( @14/(byte*) bitmap_screen#24 )
|
||||
(byte*) bitmap_gfx#20 ← phi( @14/(byte*) bitmap_gfx#25 )
|
||||
(byte) frame_cnt#0 ← (number) 1
|
||||
to:@14
|
||||
to:@17
|
||||
init_irq: scope:[init_irq] from main::@11
|
||||
asm { sei }
|
||||
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
|
||||
@ -397,7 +402,7 @@ init_irq::@return: scope:[init_irq] from init_irq
|
||||
return
|
||||
to:@return
|
||||
irq: scope:[irq] from
|
||||
(byte) frame_cnt#4 ← phi( @14/(byte) frame_cnt#9 )
|
||||
(byte) frame_cnt#4 ← phi( @17/(byte) frame_cnt#9 )
|
||||
*((byte*) BGCOL#0) ← (byte) WHITE#0
|
||||
(bool~) irq::$1 ← (number) 0 != (byte) frame_cnt#4
|
||||
(bool~) irq::$0 ← ! (bool~) irq::$1
|
||||
@ -417,25 +422,25 @@ irq::@return: scope:[irq] from irq::@1
|
||||
(byte) frame_cnt#2 ← (byte) frame_cnt#6
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @12
|
||||
(byte*) bitmap_screen#14 ← phi( @12/(byte*) bitmap_screen#19 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @12/(byte*) bitmap_gfx#20 )
|
||||
(byte) frame_cnt#9 ← phi( @12/(byte) frame_cnt#0 )
|
||||
@17: scope:[] from @15
|
||||
(byte*) bitmap_screen#14 ← phi( @15/(byte*) bitmap_screen#19 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @15/(byte*) bitmap_gfx#20 )
|
||||
(byte) frame_cnt#9 ← phi( @15/(byte) frame_cnt#0 )
|
||||
call main
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
(byte*) bitmap_screen#10 ← phi( @14/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @14/(byte*) bitmap_gfx#4 )
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
(byte*) bitmap_screen#10 ← phi( @17/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @17/(byte*) bitmap_gfx#4 )
|
||||
(byte*) bitmap_gfx#5 ← (byte*) bitmap_gfx#10
|
||||
(byte*) bitmap_screen#5 ← (byte*) bitmap_screen#10
|
||||
to:@end
|
||||
@end: scope:[] from @15
|
||||
@end: scope:[] from @18
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @11
|
||||
(label) @12
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @17
|
||||
(label) @18
|
||||
(label) @8
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -1332,9 +1337,9 @@ Added new block during phi lifting main::@19(between main::@17 and main::@5)
|
||||
Added new block during phi lifting irq::@3(between irq and irq::@1)
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @8
|
||||
Adding NOP phi() at start of @11
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @17
|
||||
Adding NOP phi() at start of @18
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@12
|
||||
@ -1374,8 +1379,8 @@ Coalesced [106] frame_cnt#23 ← frame_cnt#1
|
||||
Coalesced [111] frame_cnt#22 ← frame_cnt#0
|
||||
Coalesced down to 13 phi equivalence classes
|
||||
Culled Empty Block (label) @8
|
||||
Culled Empty Block (label) @11
|
||||
Culled Empty Block (label) @15
|
||||
Culled Empty Block (label) @14
|
||||
Culled Empty Block (label) @18
|
||||
Culled Empty Block (label) main::toD0181_@return
|
||||
Culled Empty Block (label) main::@14
|
||||
Culled Empty Block (label) main::@19
|
||||
@ -1389,8 +1394,8 @@ Culled Empty Block (label) bitmap_init::@11
|
||||
Culled Empty Block (label) bitmap_init::@12
|
||||
Culled Empty Block (label) bitmap_init::@9
|
||||
Culled Empty Block (label) irq::@3
|
||||
Renumbering block @12 to @1
|
||||
Renumbering block @14 to @2
|
||||
Renumbering block @15 to @1
|
||||
Renumbering block @17 to @2
|
||||
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
|
||||
|
@ -6,6 +6,8 @@ Fixing pointer increment (signed word*) sin16s_gen2::sintab ← ++ (signed word*
|
||||
Fixing pointer array-indexing *((signed word[$200]) SINUS + (word) main::idx_x)
|
||||
Fixing pointer array-indexing *((signed word[$200]) SINUS + (word) main::idx_y)
|
||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
||||
Warning! Adding boolean cast to non-boolean sub-expression (byte) frame_cnt
|
||||
Identified constant variable (byte*) BITMAP
|
||||
Identified constant variable (byte*) SCREEN
|
||||
@ -50,12 +52,15 @@ Culled Empty Block (label) @27
|
||||
Culled Empty Block (label) bitmap_init::@8
|
||||
Culled Empty Block (label) @29
|
||||
Culled Empty Block (label) @30
|
||||
Culled Empty Block (label) @31
|
||||
Culled Empty Block (label) @32
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) main::toD0181_@1
|
||||
Culled Empty Block (label) main::@6
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) main::@7
|
||||
Culled Empty Block (label) main::@10
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) @36
|
||||
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
@ -576,7 +581,7 @@ memset::@return: scope:[memset] from memset::@2
|
||||
(byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
|
||||
to:@31
|
||||
to:@34
|
||||
bitmap_init: scope:[bitmap_init] from main::@12
|
||||
(byte*) bitmap_init::screen#1 ← phi( main::@12/(byte*) bitmap_init::screen#0 )
|
||||
(byte*) bitmap_init::gfx#1 ← phi( main::@12/(byte*) bitmap_init::gfx#0 )
|
||||
@ -701,7 +706,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@17
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @28
|
||||
@34: scope:[] from @28
|
||||
(byte*) bitmap_screen#25 ← phi( @28/(byte*) bitmap_screen#0 )
|
||||
(byte*) bitmap_gfx#26 ← phi( @28/(byte*) bitmap_gfx#0 )
|
||||
(word) rem16u#34 ← phi( @28/(word) rem16u#35 )
|
||||
@ -709,12 +714,12 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
(byte*) SCREEN#0 ← ((byte*)) (number) $400
|
||||
(byte[$100]) plots_per_frame#0 ← { fill( $100, 0) }
|
||||
(signed word[$200]) SINUS#0 ← { fill( $200, 0) }
|
||||
to:@32
|
||||
main: scope:[main] from @34
|
||||
(byte) frame_cnt#24 ← phi( @34/(byte) frame_cnt#9 )
|
||||
(byte*) bitmap_screen#17 ← phi( @34/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#18 ← phi( @34/(byte*) bitmap_gfx#15 )
|
||||
(word) rem16u#23 ← phi( @34/(word) rem16u#25 )
|
||||
to:@35
|
||||
main: scope:[main] from @37
|
||||
(byte) frame_cnt#24 ← phi( @37/(byte) frame_cnt#9 )
|
||||
(byte*) bitmap_screen#17 ← phi( @37/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#18 ← phi( @37/(byte*) bitmap_gfx#15 )
|
||||
(word) rem16u#23 ← phi( @37/(word) rem16u#25 )
|
||||
(signed word*) sin16s_gen2::sintab#1 ← (signed word[$200]) SINUS#0
|
||||
(word) sin16s_gen2::wavelength#0 ← (number) $200
|
||||
(signed word) sin16s_gen2::min#0 ← (number) -$1001
|
||||
@ -922,12 +927,12 @@ main::@return: scope:[main] from main::@1
|
||||
(byte*) bitmap_screen#4 ← (byte*) bitmap_screen#9
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
(byte*) bitmap_screen#20 ← phi( @31/(byte*) bitmap_screen#25 )
|
||||
(byte*) bitmap_gfx#21 ← phi( @31/(byte*) bitmap_gfx#26 )
|
||||
(word) rem16u#29 ← phi( @31/(word) rem16u#34 )
|
||||
@35: scope:[] from @34
|
||||
(byte*) bitmap_screen#20 ← phi( @34/(byte*) bitmap_screen#25 )
|
||||
(byte*) bitmap_gfx#21 ← phi( @34/(byte*) bitmap_gfx#26 )
|
||||
(word) rem16u#29 ← phi( @34/(word) rem16u#34 )
|
||||
(byte) frame_cnt#0 ← (number) 1
|
||||
to:@34
|
||||
to:@37
|
||||
init_irq: scope:[init_irq] from main::@11
|
||||
asm { sei }
|
||||
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
|
||||
@ -944,7 +949,7 @@ init_irq::@return: scope:[init_irq] from init_irq
|
||||
return
|
||||
to:@return
|
||||
irq: scope:[irq] from
|
||||
(byte) frame_cnt#4 ← phi( @34/(byte) frame_cnt#9 )
|
||||
(byte) frame_cnt#4 ← phi( @37/(byte) frame_cnt#9 )
|
||||
*((byte*) BGCOL#0) ← (byte) WHITE#0
|
||||
(bool~) irq::$1 ← (number) 0 != (byte) frame_cnt#4
|
||||
(bool~) irq::$0 ← ! (bool~) irq::$1
|
||||
@ -964,30 +969,30 @@ irq::@return: scope:[irq] from irq::@1
|
||||
(byte) frame_cnt#2 ← (byte) frame_cnt#6
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @32
|
||||
(byte*) bitmap_screen#14 ← phi( @32/(byte*) bitmap_screen#20 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @32/(byte*) bitmap_gfx#21 )
|
||||
(word) rem16u#25 ← phi( @32/(word) rem16u#29 )
|
||||
(byte) frame_cnt#9 ← phi( @32/(byte) frame_cnt#0 )
|
||||
@37: scope:[] from @35
|
||||
(byte*) bitmap_screen#14 ← phi( @35/(byte*) bitmap_screen#20 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @35/(byte*) bitmap_gfx#21 )
|
||||
(word) rem16u#25 ← phi( @35/(word) rem16u#29 )
|
||||
(byte) frame_cnt#9 ← phi( @35/(byte) frame_cnt#0 )
|
||||
call main
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
(byte*) bitmap_screen#10 ← phi( @34/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @34/(byte*) bitmap_gfx#4 )
|
||||
(word) rem16u#19 ← phi( @34/(word) rem16u#9 )
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
(byte*) bitmap_screen#10 ← phi( @37/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @37/(byte*) bitmap_gfx#4 )
|
||||
(word) rem16u#19 ← phi( @37/(word) rem16u#9 )
|
||||
(word) rem16u#10 ← (word) rem16u#19
|
||||
(byte*) bitmap_gfx#5 ← (byte*) bitmap_gfx#10
|
||||
(byte*) bitmap_screen#5 ← (byte*) bitmap_screen#10
|
||||
to:@end
|
||||
@end: scope:[] from @35
|
||||
@end: scope:[] from @38
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @17
|
||||
(label) @28
|
||||
(label) @31
|
||||
(label) @32
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @37
|
||||
(label) @38
|
||||
(label) @6
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -2808,9 +2813,9 @@ Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @6
|
||||
Adding NOP phi() at start of @17
|
||||
Adding NOP phi() at start of @28
|
||||
Adding NOP phi() at start of @31
|
||||
Adding NOP phi() at start of @34
|
||||
Adding NOP phi() at start of @35
|
||||
Adding NOP phi() at start of @37
|
||||
Adding NOP phi() at start of @38
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@12
|
||||
@ -2907,8 +2912,8 @@ Coalesced down to 30 phi equivalence classes
|
||||
Culled Empty Block (label) @6
|
||||
Culled Empty Block (label) @17
|
||||
Culled Empty Block (label) @28
|
||||
Culled Empty Block (label) @31
|
||||
Culled Empty Block (label) @35
|
||||
Culled Empty Block (label) @34
|
||||
Culled Empty Block (label) @38
|
||||
Culled Empty Block (label) main::toD0181_@return
|
||||
Culled Empty Block (label) main::@15
|
||||
Culled Empty Block (label) main::@8
|
||||
@ -2932,8 +2937,8 @@ Culled Empty Block (label) divr16u::@8
|
||||
Culled Empty Block (label) divr16u::@10
|
||||
Culled Empty Block (label) divr16u::@9
|
||||
Culled Empty Block (label) irq::@3
|
||||
Renumbering block @32 to @1
|
||||
Renumbering block @34 to @2
|
||||
Renumbering block @35 to @1
|
||||
Renumbering block @37 to @2
|
||||
Renumbering block div32u16u::@2 to div32u16u::@1
|
||||
Renumbering block div32u16u::@3 to div32u16u::@2
|
||||
Renumbering block mul16u::@4 to mul16u::@3
|
||||
|
@ -6,6 +6,8 @@ Fixing pointer increment (signed word*) sin16s_gen2::sintab ← ++ (signed word*
|
||||
Fixing pointer array-indexing *((signed word[$200]) SINUS + (word) main::idx_x)
|
||||
Fixing pointer array-indexing *((signed word[$200]) SINUS + (word) main::idx_y)
|
||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
||||
Warning! Adding boolean cast to non-boolean sub-expression (byte) frame_cnt
|
||||
Identified constant variable (byte*) BITMAP
|
||||
Identified constant variable (byte*) SCREEN
|
||||
@ -50,6 +52,9 @@ Culled Empty Block (label) @27
|
||||
Culled Empty Block (label) bitmap_init::@8
|
||||
Culled Empty Block (label) @29
|
||||
Culled Empty Block (label) @30
|
||||
Culled Empty Block (label) @31
|
||||
Culled Empty Block (label) @32
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) main::toD0181_@1
|
||||
Culled Empty Block (label) main::@9
|
||||
Culled Empty Block (label) main::@3
|
||||
@ -63,7 +68,7 @@ Culled Empty Block (label) main::@20
|
||||
Culled Empty Block (label) main::@19
|
||||
Culled Empty Block (label) main::@21
|
||||
Culled Empty Block (label) main::@22
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) @36
|
||||
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
@ -585,7 +590,7 @@ memset::@return: scope:[memset] from memset::@2
|
||||
(byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
|
||||
to:@31
|
||||
to:@34
|
||||
bitmap_init: scope:[bitmap_init] from main::@24
|
||||
(byte*) bitmap_init::screen#1 ← phi( main::@24/(byte*) bitmap_init::screen#0 )
|
||||
(byte*) bitmap_init::gfx#1 ← phi( main::@24/(byte*) bitmap_init::gfx#0 )
|
||||
@ -710,7 +715,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@29
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @28
|
||||
@34: scope:[] from @28
|
||||
(byte*) bitmap_screen#26 ← phi( @28/(byte*) bitmap_screen#0 )
|
||||
(byte*) bitmap_gfx#27 ← phi( @28/(byte*) bitmap_gfx#0 )
|
||||
(word) rem16u#35 ← phi( @28/(word) rem16u#36 )
|
||||
@ -718,12 +723,12 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
(byte*) SCREEN#0 ← ((byte*)) (number) $400
|
||||
(byte[$100]) plots_per_frame#0 ← { fill( $100, 0) }
|
||||
(signed word[$200]) SINUS#0 ← { fill( $200, 0) }
|
||||
to:@32
|
||||
main: scope:[main] from @34
|
||||
(byte) frame_cnt#26 ← phi( @34/(byte) frame_cnt#8 )
|
||||
(byte*) bitmap_screen#17 ← phi( @34/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#18 ← phi( @34/(byte*) bitmap_gfx#15 )
|
||||
(word) rem16u#23 ← phi( @34/(word) rem16u#25 )
|
||||
to:@35
|
||||
main: scope:[main] from @37
|
||||
(byte) frame_cnt#26 ← phi( @37/(byte) frame_cnt#8 )
|
||||
(byte*) bitmap_screen#17 ← phi( @37/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#18 ← phi( @37/(byte*) bitmap_gfx#15 )
|
||||
(word) rem16u#23 ← phi( @37/(word) rem16u#25 )
|
||||
(signed word*) sin16s_gen2::sintab#1 ← (signed word[$200]) SINUS#0
|
||||
(word) sin16s_gen2::wavelength#0 ← (number) $200
|
||||
(signed word) sin16s_gen2::min#0 ← (number) -$1001
|
||||
@ -995,12 +1000,12 @@ main::@return: scope:[main] from main::@17
|
||||
(byte*) bitmap_screen#4 ← (byte*) bitmap_screen#9
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
(byte*) bitmap_screen#21 ← phi( @31/(byte*) bitmap_screen#26 )
|
||||
(byte*) bitmap_gfx#22 ← phi( @31/(byte*) bitmap_gfx#27 )
|
||||
(word) rem16u#30 ← phi( @31/(word) rem16u#35 )
|
||||
@35: scope:[] from @34
|
||||
(byte*) bitmap_screen#21 ← phi( @34/(byte*) bitmap_screen#26 )
|
||||
(byte*) bitmap_gfx#22 ← phi( @34/(byte*) bitmap_gfx#27 )
|
||||
(word) rem16u#30 ← phi( @34/(word) rem16u#35 )
|
||||
(byte) frame_cnt#0 ← (number) 1
|
||||
to:@34
|
||||
to:@37
|
||||
init_irq: scope:[init_irq] from main::@23
|
||||
asm { sei }
|
||||
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
|
||||
@ -1017,7 +1022,7 @@ init_irq::@return: scope:[init_irq] from init_irq
|
||||
return
|
||||
to:@return
|
||||
irq: scope:[irq] from
|
||||
(byte) frame_cnt#4 ← phi( @34/(byte) frame_cnt#8 )
|
||||
(byte) frame_cnt#4 ← phi( @37/(byte) frame_cnt#8 )
|
||||
*((byte*) BGCOL#0) ← (byte) WHITE#0
|
||||
(bool~) irq::$1 ← (number) 0 != (byte) frame_cnt#4
|
||||
(bool~) irq::$0 ← ! (bool~) irq::$1
|
||||
@ -1037,30 +1042,30 @@ irq::@return: scope:[irq] from irq::@1
|
||||
(byte) frame_cnt#2 ← (byte) frame_cnt#6
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @32
|
||||
(byte*) bitmap_screen#14 ← phi( @32/(byte*) bitmap_screen#21 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @32/(byte*) bitmap_gfx#22 )
|
||||
(word) rem16u#25 ← phi( @32/(word) rem16u#30 )
|
||||
(byte) frame_cnt#8 ← phi( @32/(byte) frame_cnt#0 )
|
||||
@37: scope:[] from @35
|
||||
(byte*) bitmap_screen#14 ← phi( @35/(byte*) bitmap_screen#21 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @35/(byte*) bitmap_gfx#22 )
|
||||
(word) rem16u#25 ← phi( @35/(word) rem16u#30 )
|
||||
(byte) frame_cnt#8 ← phi( @35/(byte) frame_cnt#0 )
|
||||
call main
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
(byte*) bitmap_screen#10 ← phi( @34/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @34/(byte*) bitmap_gfx#4 )
|
||||
(word) rem16u#19 ← phi( @34/(word) rem16u#9 )
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
(byte*) bitmap_screen#10 ← phi( @37/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @37/(byte*) bitmap_gfx#4 )
|
||||
(word) rem16u#19 ← phi( @37/(word) rem16u#9 )
|
||||
(word) rem16u#10 ← (word) rem16u#19
|
||||
(byte*) bitmap_gfx#5 ← (byte*) bitmap_gfx#10
|
||||
(byte*) bitmap_screen#5 ← (byte*) bitmap_screen#10
|
||||
to:@end
|
||||
@end: scope:[] from @35
|
||||
@end: scope:[] from @38
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @17
|
||||
(label) @28
|
||||
(label) @31
|
||||
(label) @32
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @37
|
||||
(label) @38
|
||||
(label) @6
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -2998,9 +3003,9 @@ Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @6
|
||||
Adding NOP phi() at start of @17
|
||||
Adding NOP phi() at start of @28
|
||||
Adding NOP phi() at start of @31
|
||||
Adding NOP phi() at start of @34
|
||||
Adding NOP phi() at start of @35
|
||||
Adding NOP phi() at start of @37
|
||||
Adding NOP phi() at start of @38
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@24
|
||||
@ -3104,8 +3109,8 @@ Coalesced down to 32 phi equivalence classes
|
||||
Culled Empty Block (label) @6
|
||||
Culled Empty Block (label) @17
|
||||
Culled Empty Block (label) @28
|
||||
Culled Empty Block (label) @31
|
||||
Culled Empty Block (label) @35
|
||||
Culled Empty Block (label) @34
|
||||
Culled Empty Block (label) @38
|
||||
Culled Empty Block (label) main::toD0181_@return
|
||||
Culled Empty Block (label) main::@27
|
||||
Culled Empty Block (label) main::@11
|
||||
@ -3132,8 +3137,8 @@ Culled Empty Block (label) divr16u::@8
|
||||
Culled Empty Block (label) divr16u::@10
|
||||
Culled Empty Block (label) divr16u::@9
|
||||
Culled Empty Block (label) irq::@3
|
||||
Renumbering block @32 to @1
|
||||
Renumbering block @34 to @2
|
||||
Renumbering block @35 to @1
|
||||
Renumbering block @37 to @2
|
||||
Renumbering block div32u16u::@2 to div32u16u::@1
|
||||
Renumbering block div32u16u::@3 to div32u16u::@2
|
||||
Renumbering block mul16u::@4 to mul16u::@3
|
||||
|
432
src/test/ref/bitmap-plot-3.asm
Normal file
432
src/test/ref/bitmap-plot-3.asm
Normal file
@ -0,0 +1,432 @@
|
||||
// Tests the simple bitmap plotter
|
||||
// Plots a few lines using the bresenham line algorithm
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.label D011 = $d011
|
||||
.const VIC_BMM = $20
|
||||
.const VIC_DEN = $10
|
||||
.const VIC_RSEL = 8
|
||||
.label D018 = $d018
|
||||
.const WHITE = 1
|
||||
.label BITMAP = $2000
|
||||
.label SCREEN = $400
|
||||
.label COSTAB = SINTAB+$40
|
||||
main: {
|
||||
.const toD0181_return = (>(SCREEN&$3fff)*4)|(>BITMAP)/4&$f
|
||||
.label _6 = 8
|
||||
.label _10 = $18
|
||||
.label a = 2
|
||||
.label i = 3
|
||||
jsr bitmap_init
|
||||
jsr bitmap_clear
|
||||
lda #VIC_BMM|VIC_DEN|VIC_RSEL|3
|
||||
sta D011
|
||||
lda #toD0181_return
|
||||
sta D018
|
||||
lda #0
|
||||
sta i
|
||||
sta a
|
||||
b1:
|
||||
ldy a
|
||||
lda COSTAB,y
|
||||
sta _6
|
||||
lda #0
|
||||
sta _6+1
|
||||
lda #$78
|
||||
clc
|
||||
adc bitmap_line.x1
|
||||
sta bitmap_line.x1
|
||||
bcc !+
|
||||
inc bitmap_line.x1+1
|
||||
!:
|
||||
ldy a
|
||||
lda SINTAB,y
|
||||
sta bitmap_line.y1
|
||||
lda #0
|
||||
sta bitmap_line.y1+1
|
||||
lda COSTAB+$20,y
|
||||
sta _10
|
||||
lda #0
|
||||
sta _10+1
|
||||
lda #$78
|
||||
clc
|
||||
adc bitmap_line.x2
|
||||
sta bitmap_line.x2
|
||||
bcc !+
|
||||
inc bitmap_line.x2+1
|
||||
!:
|
||||
ldy a
|
||||
lda SINTAB+$20,y
|
||||
sta bitmap_line.y2
|
||||
lda #0
|
||||
sta bitmap_line.y2+1
|
||||
jsr bitmap_line
|
||||
lax a
|
||||
axs #-[$20]
|
||||
stx a
|
||||
inc i
|
||||
lda #8
|
||||
cmp i
|
||||
bne b1
|
||||
b2:
|
||||
inc SCREEN+$3e7
|
||||
jmp b2
|
||||
}
|
||||
// Draw a line on the bitmap using bresenhams algorithm
|
||||
// bitmap_line(word zeropage(8) x1, word zeropage(6) y1, word zeropage($18) x2, word zeropage($1a) y2)
|
||||
bitmap_line: {
|
||||
.label dx = $1c
|
||||
.label dy = $10
|
||||
.label sx = $1e
|
||||
.label sy = $e
|
||||
.label e1 = $a
|
||||
.label e = 4
|
||||
.label y = 6
|
||||
.label x = 8
|
||||
.label x1 = 8
|
||||
.label y1 = 6
|
||||
.label x2 = $18
|
||||
.label y2 = $1a
|
||||
lda x2
|
||||
sec
|
||||
sbc x1
|
||||
sta abs_u16.w
|
||||
lda x2+1
|
||||
sbc x1+1
|
||||
sta abs_u16.w+1
|
||||
jsr abs_u16
|
||||
lda abs_u16.return
|
||||
sta dx
|
||||
lda abs_u16.return+1
|
||||
sta dx+1
|
||||
lda y2
|
||||
sec
|
||||
sbc y1
|
||||
sta abs_u16.w
|
||||
lda y2+1
|
||||
sbc y1+1
|
||||
sta abs_u16.w+1
|
||||
jsr abs_u16
|
||||
lda x2
|
||||
sec
|
||||
sbc x1
|
||||
sta sgn_u16.w
|
||||
lda x2+1
|
||||
sbc x1+1
|
||||
sta sgn_u16.w+1
|
||||
jsr sgn_u16
|
||||
lda sgn_u16.return
|
||||
sta sx
|
||||
lda sgn_u16.return+1
|
||||
sta sx+1
|
||||
lda y2
|
||||
sec
|
||||
sbc y1
|
||||
sta sgn_u16.w
|
||||
lda y2+1
|
||||
sbc y1+1
|
||||
sta sgn_u16.w+1
|
||||
jsr sgn_u16
|
||||
lda dy+1
|
||||
cmp dx+1
|
||||
bcc b1
|
||||
bne !+
|
||||
lda dy
|
||||
cmp dx
|
||||
bcc b1
|
||||
!:
|
||||
lda dx+1
|
||||
lsr
|
||||
sta e+1
|
||||
lda dx
|
||||
ror
|
||||
sta e
|
||||
b4:
|
||||
lda y
|
||||
tax
|
||||
jsr bitmap_plot
|
||||
lda y
|
||||
clc
|
||||
adc sy
|
||||
sta y
|
||||
lda y+1
|
||||
adc sy+1
|
||||
sta y+1
|
||||
lda e
|
||||
clc
|
||||
adc dx
|
||||
sta e
|
||||
lda e+1
|
||||
adc dx+1
|
||||
sta e+1
|
||||
cmp dy+1
|
||||
bne !+
|
||||
lda e
|
||||
cmp dy
|
||||
beq b5
|
||||
!:
|
||||
bcc b5
|
||||
lda x
|
||||
clc
|
||||
adc sx
|
||||
sta x
|
||||
lda x+1
|
||||
adc sx+1
|
||||
sta x+1
|
||||
lda e
|
||||
sec
|
||||
sbc dy
|
||||
sta e
|
||||
lda e+1
|
||||
sbc dy+1
|
||||
sta e+1
|
||||
b5:
|
||||
lda y+1
|
||||
cmp y2+1
|
||||
bne b4
|
||||
lda y
|
||||
cmp y2
|
||||
bne b4
|
||||
b2:
|
||||
lda y
|
||||
tax
|
||||
jsr bitmap_plot
|
||||
rts
|
||||
b1:
|
||||
lda dy+1
|
||||
lsr
|
||||
sta e1+1
|
||||
lda dy
|
||||
ror
|
||||
sta e1
|
||||
b7:
|
||||
lda y
|
||||
tax
|
||||
jsr bitmap_plot
|
||||
lda x
|
||||
clc
|
||||
adc sx
|
||||
sta x
|
||||
lda x+1
|
||||
adc sx+1
|
||||
sta x+1
|
||||
lda e1
|
||||
clc
|
||||
adc dy
|
||||
sta e1
|
||||
lda e1+1
|
||||
adc dy+1
|
||||
sta e1+1
|
||||
cmp dx+1
|
||||
bne !+
|
||||
lda e1
|
||||
cmp dx
|
||||
beq b8
|
||||
!:
|
||||
bcc b8
|
||||
lda y
|
||||
clc
|
||||
adc sy
|
||||
sta y
|
||||
lda y+1
|
||||
adc sy+1
|
||||
sta y+1
|
||||
lda e1
|
||||
sec
|
||||
sbc dx
|
||||
sta e1
|
||||
lda e1+1
|
||||
sbc dx+1
|
||||
sta e1+1
|
||||
b8:
|
||||
lda x+1
|
||||
cmp x2+1
|
||||
bne b7
|
||||
lda x
|
||||
cmp x2
|
||||
bne b7
|
||||
jmp b2
|
||||
}
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zeropage(8) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label _1 = $22
|
||||
.label plotter = $20
|
||||
.label x = 8
|
||||
lda bitmap_plot_yhi,x
|
||||
sta plotter+1
|
||||
lda bitmap_plot_ylo,x
|
||||
sta plotter
|
||||
lda x
|
||||
and #<$fff8
|
||||
sta _1
|
||||
lda x+1
|
||||
and #>$fff8
|
||||
sta _1+1
|
||||
lda plotter
|
||||
clc
|
||||
adc _1
|
||||
sta plotter
|
||||
lda plotter+1
|
||||
adc _1+1
|
||||
sta plotter+1
|
||||
lda x
|
||||
tay
|
||||
lda bitmap_plot_bit,y
|
||||
ldy #0
|
||||
ora (plotter),y
|
||||
sta (plotter),y
|
||||
rts
|
||||
}
|
||||
// Get the sign of a 16-bit unsigned number treated as a signed number.
|
||||
// Returns unsigned -1 if the number is
|
||||
// sgn_u16(word zeropage($c) w)
|
||||
sgn_u16: {
|
||||
.label w = $c
|
||||
.label return = $e
|
||||
lda w+1
|
||||
and #$80
|
||||
cmp #0
|
||||
bne b1
|
||||
lda #1
|
||||
sta return
|
||||
lda #0
|
||||
sta return+1
|
||||
rts
|
||||
b1:
|
||||
lda #<$ffff
|
||||
sta return
|
||||
lda #>$ffff
|
||||
sta return+1
|
||||
rts
|
||||
}
|
||||
// Get the absolute value of a 16-bit unsigned number treated as a signed number.
|
||||
// abs_u16(word zeropage($10) w)
|
||||
abs_u16: {
|
||||
.label w = $10
|
||||
.label return = $10
|
||||
lda w+1
|
||||
and #$80
|
||||
cmp #0
|
||||
bne b1
|
||||
rts
|
||||
b1:
|
||||
sec
|
||||
lda #0
|
||||
sbc return
|
||||
sta return
|
||||
lda #0
|
||||
sbc return+1
|
||||
sta return+1
|
||||
rts
|
||||
}
|
||||
// Clear all graphics on the bitmap
|
||||
// bgcol - the background color to fill the screen with
|
||||
// fgcol - the foreground color to fill the screen with
|
||||
bitmap_clear: {
|
||||
.const col = WHITE*$10
|
||||
ldx #col
|
||||
lda #<$3e8
|
||||
sta memset.num
|
||||
lda #>$3e8
|
||||
sta memset.num+1
|
||||
lda #<SCREEN
|
||||
sta memset.str
|
||||
lda #>SCREEN
|
||||
sta memset.str+1
|
||||
jsr memset
|
||||
ldx #0
|
||||
lda #<$1f40
|
||||
sta memset.num
|
||||
lda #>$1f40
|
||||
sta memset.num+1
|
||||
lda #<BITMAP
|
||||
sta memset.str
|
||||
lda #>BITMAP
|
||||
sta memset.str+1
|
||||
jsr memset
|
||||
rts
|
||||
}
|
||||
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
|
||||
// memset(void* zeropage($12) str, byte register(X) c, word zeropage($14) num)
|
||||
memset: {
|
||||
.label end = $14
|
||||
.label dst = $12
|
||||
.label str = $12
|
||||
.label num = $14
|
||||
lda end
|
||||
clc
|
||||
adc str
|
||||
sta end
|
||||
lda end+1
|
||||
adc str+1
|
||||
sta end+1
|
||||
b1:
|
||||
txa
|
||||
ldy #0
|
||||
sta (dst),y
|
||||
inc dst
|
||||
bne !+
|
||||
inc dst+1
|
||||
!:
|
||||
lda dst+1
|
||||
cmp end+1
|
||||
bne b1
|
||||
lda dst
|
||||
cmp end
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
// Initialize bitmap plotting tables
|
||||
bitmap_init: {
|
||||
.label _7 = $24
|
||||
.label yoffs = $16
|
||||
ldx #0
|
||||
lda #$80
|
||||
b1:
|
||||
sta bitmap_plot_bit,x
|
||||
lsr
|
||||
cmp #0
|
||||
bne b2
|
||||
lda #$80
|
||||
b2:
|
||||
inx
|
||||
cpx #0
|
||||
bne b1
|
||||
lda #<BITMAP
|
||||
sta yoffs
|
||||
lda #>BITMAP
|
||||
sta yoffs+1
|
||||
ldx #0
|
||||
b3:
|
||||
lda #7
|
||||
sax _7
|
||||
lda yoffs
|
||||
ora _7
|
||||
sta bitmap_plot_ylo,x
|
||||
lda yoffs+1
|
||||
sta bitmap_plot_yhi,x
|
||||
lda #7
|
||||
cmp _7
|
||||
bne b4
|
||||
clc
|
||||
lda yoffs
|
||||
adc #<$28*8
|
||||
sta yoffs
|
||||
lda yoffs+1
|
||||
adc #>$28*8
|
||||
sta yoffs+1
|
||||
b4:
|
||||
inx
|
||||
cpx #0
|
||||
bne b3
|
||||
rts
|
||||
}
|
||||
// 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
|
||||
.align $100
|
||||
SINTAB:
|
||||
.fill $180, 99.5+99.5*sin(i*2*PI/256)
|
237
src/test/ref/bitmap-plot-3.cfg
Normal file
237
src/test/ref/bitmap-plot-3.cfg
Normal file
@ -0,0 +1,237 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@1
|
||||
@1: scope:[] from @begin
|
||||
[1] phi()
|
||||
[2] call main
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
[3] phi()
|
||||
main: scope:[main] from @1
|
||||
[4] phi()
|
||||
[5] call bitmap_init
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main
|
||||
[6] phi()
|
||||
[7] call bitmap_clear
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[8] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main::@5
|
||||
[9] phi()
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::toD0181
|
||||
[10] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@3 main::@6
|
||||
[11] (byte) main::i#2 ← phi( main::@6/(byte) main::i#1 main::@3/(byte) 0 )
|
||||
[11] (byte) main::a#2 ← phi( main::@6/(byte) main::a#1 main::@3/(byte) 0 )
|
||||
[12] (word~) main::$6 ← (word)*((const byte*) COSTAB#0 + (byte) main::a#2)
|
||||
[13] (word) bitmap_line::x1#0 ← (word~) main::$6 + (byte) $78
|
||||
[14] (word) bitmap_line::y1#0 ← (word)*((const byte[$180]) SINTAB#0 + (byte) main::a#2)
|
||||
[15] (word~) main::$10 ← (word)*((const byte*) COSTAB#0+(byte) $20 + (byte) main::a#2)
|
||||
[16] (word) bitmap_line::x2#0 ← (word~) main::$10 + (byte) $78
|
||||
[17] (word) bitmap_line::y2#0 ← (word)*((const byte[$180]) SINTAB#0+(byte) $20 + (byte) main::a#2)
|
||||
[18] call bitmap_line
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@1
|
||||
[19] (byte) main::a#1 ← (byte) main::a#2 + (byte) $20
|
||||
[20] (byte) main::i#1 ← ++ (byte) main::i#2
|
||||
[21] if((byte) main::i#1!=(byte) 8) goto main::@1
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@2 main::@6
|
||||
[22] *((const byte*) SCREEN#0+(word) $3e7) ← ++ *((const byte*) SCREEN#0+(word) $3e7)
|
||||
to:main::@2
|
||||
bitmap_line: scope:[bitmap_line] from main::@1
|
||||
[23] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0 - (word) bitmap_line::x1#0
|
||||
[24] call abs_u16
|
||||
[25] (word) abs_u16::return#0 ← (word) abs_u16::return#4
|
||||
to:bitmap_line::@10
|
||||
bitmap_line::@10: scope:[bitmap_line] from bitmap_line
|
||||
[26] (word) bitmap_line::dx#0 ← (word) abs_u16::return#0
|
||||
[27] (word) abs_u16::w#1 ← (word) bitmap_line::y2#0 - (word) bitmap_line::y1#0
|
||||
[28] call abs_u16
|
||||
[29] (word) abs_u16::return#1 ← (word) abs_u16::return#4
|
||||
to:bitmap_line::@11
|
||||
bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@10
|
||||
[30] (word) bitmap_line::dy#0 ← (word) abs_u16::return#1
|
||||
[31] (word) sgn_u16::w#0 ← (word) bitmap_line::x2#0 - (word) bitmap_line::x1#0
|
||||
[32] call sgn_u16
|
||||
[33] (word) sgn_u16::return#0 ← (word) sgn_u16::return#4
|
||||
to:bitmap_line::@12
|
||||
bitmap_line::@12: scope:[bitmap_line] from bitmap_line::@11
|
||||
[34] (word) bitmap_line::sx#0 ← (word) sgn_u16::return#0
|
||||
[35] (word) sgn_u16::w#1 ← (word) bitmap_line::y2#0 - (word) bitmap_line::y1#0
|
||||
[36] call sgn_u16
|
||||
[37] (word) sgn_u16::return#1 ← (word) sgn_u16::return#4
|
||||
to:bitmap_line::@13
|
||||
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12
|
||||
[38] (word) bitmap_line::sy#0 ← (word) sgn_u16::return#1
|
||||
[39] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@1
|
||||
to:bitmap_line::@3
|
||||
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@13
|
||||
[40] (word) bitmap_line::e#0 ← (word) bitmap_line::dx#0 >> (byte) 1
|
||||
to:bitmap_line::@4
|
||||
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@5
|
||||
[41] (word) bitmap_line::e#3 ← phi( bitmap_line::@3/(word) bitmap_line::e#0 bitmap_line::@5/(word) bitmap_line::e#6 )
|
||||
[41] (word) bitmap_line::x#11 ← phi( bitmap_line::@3/(word) bitmap_line::x1#0 bitmap_line::@5/(word) bitmap_line::x#10 )
|
||||
[41] (word) bitmap_line::y#3 ← phi( bitmap_line::@3/(word) bitmap_line::y1#0 bitmap_line::@5/(word) bitmap_line::y#1 )
|
||||
[42] (byte) bitmap_plot::y#0 ← (byte)(word) bitmap_line::y#3
|
||||
[43] (word) bitmap_plot::x#0 ← (word) bitmap_line::x#11
|
||||
[44] call bitmap_plot
|
||||
to:bitmap_line::@14
|
||||
bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@4
|
||||
[45] (word) bitmap_line::y#1 ← (word) bitmap_line::y#3 + (word) bitmap_line::sy#0
|
||||
[46] (word) bitmap_line::e#1 ← (word) bitmap_line::e#3 + (word) bitmap_line::dx#0
|
||||
[47] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@5
|
||||
to:bitmap_line::@6
|
||||
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@14
|
||||
[48] (word) bitmap_line::x#1 ← (word) bitmap_line::x#11 + (word) bitmap_line::sx#0
|
||||
[49] (word) bitmap_line::e#2 ← (word) bitmap_line::e#1 - (word) bitmap_line::dy#0
|
||||
to:bitmap_line::@5
|
||||
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@14 bitmap_line::@6
|
||||
[50] (word) bitmap_line::e#6 ← phi( bitmap_line::@14/(word) bitmap_line::e#1 bitmap_line::@6/(word) bitmap_line::e#2 )
|
||||
[50] (word) bitmap_line::x#10 ← phi( bitmap_line::@14/(word) bitmap_line::x#11 bitmap_line::@6/(word) bitmap_line::x#1 )
|
||||
[51] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#0) goto bitmap_line::@4
|
||||
to:bitmap_line::@2
|
||||
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@8
|
||||
[52] (word) bitmap_line::x#5 ← phi( bitmap_line::@8/(word) bitmap_line::x#13 bitmap_line::@5/(word) bitmap_line::x#10 )
|
||||
[52] (word) bitmap_line::y#6 ← phi( bitmap_line::@8/(word) bitmap_line::y#11 bitmap_line::@5/(word) bitmap_line::y#1 )
|
||||
[53] (byte) bitmap_plot::y#1 ← (byte)(word) bitmap_line::y#6
|
||||
[54] (word) bitmap_plot::x#1 ← (word) bitmap_line::x#5
|
||||
[55] call bitmap_plot
|
||||
to:bitmap_line::@return
|
||||
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@2
|
||||
[56] return
|
||||
to:@return
|
||||
bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13
|
||||
[57] (word) bitmap_line::e1#0 ← (word) bitmap_line::dy#0 >> (byte) 1
|
||||
to:bitmap_line::@7
|
||||
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@1 bitmap_line::@8
|
||||
[58] (word) bitmap_line::e1#3 ← phi( bitmap_line::@1/(word) bitmap_line::e1#0 bitmap_line::@8/(word) bitmap_line::e1#6 )
|
||||
[58] (word) bitmap_line::x#6 ← phi( bitmap_line::@1/(word) bitmap_line::x1#0 bitmap_line::@8/(word) bitmap_line::x#13 )
|
||||
[58] (word) bitmap_line::y#13 ← phi( bitmap_line::@1/(word) bitmap_line::y1#0 bitmap_line::@8/(word) bitmap_line::y#11 )
|
||||
[59] (byte) bitmap_plot::y#2 ← (byte)(word) bitmap_line::y#13
|
||||
[60] (word) bitmap_plot::x#2 ← (word) bitmap_line::x#6
|
||||
[61] call bitmap_plot
|
||||
to:bitmap_line::@15
|
||||
bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@7
|
||||
[62] (word) bitmap_line::x#13 ← (word) bitmap_line::x#6 + (word) bitmap_line::sx#0
|
||||
[63] (word) bitmap_line::e1#1 ← (word) bitmap_line::e1#3 + (word) bitmap_line::dy#0
|
||||
[64] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@8
|
||||
to:bitmap_line::@9
|
||||
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@15
|
||||
[65] (word) bitmap_line::y#2 ← (word) bitmap_line::y#13 + (word) bitmap_line::sy#0
|
||||
[66] (word) bitmap_line::e1#2 ← (word) bitmap_line::e1#1 - (word) bitmap_line::dx#0
|
||||
to:bitmap_line::@8
|
||||
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@15 bitmap_line::@9
|
||||
[67] (word) bitmap_line::e1#6 ← phi( bitmap_line::@9/(word) bitmap_line::e1#2 bitmap_line::@15/(word) bitmap_line::e1#1 )
|
||||
[67] (word) bitmap_line::y#11 ← phi( bitmap_line::@9/(word) bitmap_line::y#2 bitmap_line::@15/(word) bitmap_line::y#13 )
|
||||
[68] if((word) bitmap_line::x#13!=(word) bitmap_line::x2#0) goto bitmap_line::@7
|
||||
to:bitmap_line::@2
|
||||
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@2 bitmap_line::@4 bitmap_line::@7
|
||||
[69] (word) bitmap_plot::x#3 ← phi( bitmap_line::@2/(word) bitmap_plot::x#1 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@7/(word) bitmap_plot::x#2 )
|
||||
[69] (byte) bitmap_plot::y#3 ← phi( bitmap_line::@2/(byte) bitmap_plot::y#1 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@7/(byte) bitmap_plot::y#2 )
|
||||
[70] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#3) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#3)
|
||||
[71] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#3 & (word) $fff8
|
||||
[72] (byte*) bitmap_plot::plotter#1 ← (byte*)(word) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1
|
||||
[73] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#3
|
||||
[74] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2)
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
[75] return
|
||||
to:@return
|
||||
sgn_u16: scope:[sgn_u16] from bitmap_line::@11 bitmap_line::@12
|
||||
[76] (word) sgn_u16::w#2 ← phi( bitmap_line::@11/(word) sgn_u16::w#0 bitmap_line::@12/(word) sgn_u16::w#1 )
|
||||
[77] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
|
||||
[78] (byte~) sgn_u16::$1 ← (byte~) sgn_u16::$0 & (byte) $80
|
||||
[79] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
|
||||
to:sgn_u16::@return
|
||||
sgn_u16::@1: scope:[sgn_u16] from sgn_u16
|
||||
[80] phi()
|
||||
to:sgn_u16::@return
|
||||
sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
|
||||
[81] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(word) $ffff sgn_u16/(byte) 1 )
|
||||
[82] return
|
||||
to:@return
|
||||
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@10
|
||||
[83] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@10/(word) abs_u16::w#1 )
|
||||
[84] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
|
||||
[85] (byte~) abs_u16::$1 ← (byte~) abs_u16::$0 & (byte) $80
|
||||
[86] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
|
||||
to:abs_u16::@return
|
||||
abs_u16::@1: scope:[abs_u16] from abs_u16
|
||||
[87] (word) abs_u16::return#2 ← - (word) abs_u16::w#2
|
||||
to:abs_u16::@return
|
||||
abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
|
||||
[88] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
|
||||
[89] return
|
||||
to:@return
|
||||
bitmap_clear: scope:[bitmap_clear] from main::@4
|
||||
[90] phi()
|
||||
[91] call memset
|
||||
to:bitmap_clear::@1
|
||||
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
|
||||
[92] phi()
|
||||
[93] call memset
|
||||
to:bitmap_clear::@return
|
||||
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
|
||||
[94] return
|
||||
to:@return
|
||||
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
|
||||
[95] (byte) memset::c#3 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
|
||||
[95] (word) memset::num#2 ← phi( bitmap_clear/(word) $3e8 bitmap_clear::@1/(word) $1f40 )
|
||||
[95] (void*) memset::str#2 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
|
||||
[96] (byte*) memset::end#0 ← (byte*)(void*) memset::str#2 + (word) memset::num#2
|
||||
[97] (byte*~) memset::dst#3 ← (byte*)(void*) memset::str#2
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset memset::@1
|
||||
[98] (byte*) memset::dst#2 ← phi( memset/(byte*~) memset::dst#3 memset::@1/(byte*) memset::dst#1 )
|
||||
[99] *((byte*) memset::dst#2) ← (byte) memset::c#3
|
||||
[100] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
[101] if((byte*) memset::dst#1!=(byte*) memset::end#0) goto memset::@1
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@1
|
||||
[102] return
|
||||
to:@return
|
||||
bitmap_init: scope:[bitmap_init] from main
|
||||
[103] phi()
|
||||
to:bitmap_init::@1
|
||||
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
|
||||
[104] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
|
||||
[104] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
|
||||
[105] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
|
||||
[106] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
|
||||
[107] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6
|
||||
to:bitmap_init::@2
|
||||
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@1
|
||||
[108] phi()
|
||||
to:bitmap_init::@2
|
||||
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@6
|
||||
[109] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
|
||||
[110] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
|
||||
[111] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1
|
||||
to:bitmap_init::@3
|
||||
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4
|
||||
[112] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(const byte*) BITMAP#0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
|
||||
[112] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
|
||||
[113] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
|
||||
[114] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2
|
||||
[115] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$7 | (byte~) bitmap_init::$4
|
||||
[116] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5
|
||||
[117] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2
|
||||
[118] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6
|
||||
[119] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@4
|
||||
to:bitmap_init::@5
|
||||
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3
|
||||
[120] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8
|
||||
to:bitmap_init::@4
|
||||
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
|
||||
[121] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
|
||||
[122] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
|
||||
[123] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3
|
||||
to:bitmap_init::@return
|
||||
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
|
||||
[124] return
|
||||
to:@return
|
5487
src/test/ref/bitmap-plot-3.log
Normal file
5487
src/test/ref/bitmap-plot-3.log
Normal file
File diff suppressed because it is too large
Load Diff
248
src/test/ref/bitmap-plot-3.sym
Normal file
248
src/test/ref/bitmap-plot-3.sym
Normal file
@ -0,0 +1,248 @@
|
||||
(label) @1
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BITMAP
|
||||
(const byte*) BITMAP#0 BITMAP = (byte*) 8192
|
||||
(byte) BLACK
|
||||
(byte*) COSTAB
|
||||
(const byte*) COSTAB#0 COSTAB = (const byte[$180]) SINTAB#0+(byte) $40
|
||||
(byte*) D011
|
||||
(const byte*) D011#0 D011 = (byte*) 53265
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = (byte*) 53272
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (byte*) 1024
|
||||
(byte[$180]) SINTAB
|
||||
(const byte[$180]) SINTAB#0 SINTAB = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }}
|
||||
(byte) VIC_BMM
|
||||
(const byte) VIC_BMM#0 VIC_BMM = (byte) $20
|
||||
(byte) VIC_DEN
|
||||
(const byte) VIC_DEN#0 VIC_DEN = (byte) $10
|
||||
(byte) VIC_RSEL
|
||||
(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8
|
||||
(byte) WHITE
|
||||
(const byte) WHITE#0 WHITE = (byte) 1
|
||||
(word()) abs_u16((word) abs_u16::w)
|
||||
(byte~) abs_u16::$0 reg byte a 4.0
|
||||
(byte~) abs_u16::$1 reg byte a 4.0
|
||||
(label) abs_u16::@1
|
||||
(label) abs_u16::@return
|
||||
(word) abs_u16::return
|
||||
(word) abs_u16::return#0 return zp ZP_WORD:16 4.0
|
||||
(word) abs_u16::return#1 return zp ZP_WORD:16 4.0
|
||||
(word) abs_u16::return#2 return zp ZP_WORD:16 4.0
|
||||
(word) abs_u16::return#4 return zp ZP_WORD:16 2.0
|
||||
(word) abs_u16::w
|
||||
(word) abs_u16::w#0 w zp ZP_WORD:16 4.0
|
||||
(word) abs_u16::w#1 w zp ZP_WORD:16 4.0
|
||||
(word) abs_u16::w#2 w zp ZP_WORD:16 2.5
|
||||
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
|
||||
(label) bitmap_clear::@1
|
||||
(label) bitmap_clear::@return
|
||||
(byte) bitmap_clear::bgcol
|
||||
(byte) bitmap_clear::col
|
||||
(const byte) bitmap_clear::col#0 col = (const byte) WHITE#0*(byte) $10
|
||||
(byte) bitmap_clear::fgcol
|
||||
(byte*) bitmap_gfx
|
||||
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
|
||||
(byte~) bitmap_init::$4 reg byte a 22.0
|
||||
(byte~) bitmap_init::$5 reg byte a 22.0
|
||||
(byte~) bitmap_init::$6 reg byte a 22.0
|
||||
(byte~) bitmap_init::$7 $7 zp ZP_BYTE:36 5.5
|
||||
(label) bitmap_init::@1
|
||||
(label) bitmap_init::@2
|
||||
(label) bitmap_init::@3
|
||||
(label) bitmap_init::@4
|
||||
(label) bitmap_init::@5
|
||||
(label) bitmap_init::@6
|
||||
(label) bitmap_init::@return
|
||||
(byte) bitmap_init::bits
|
||||
(byte) bitmap_init::bits#1 reg byte a 11.0
|
||||
(byte) bitmap_init::bits#3 reg byte a 16.5
|
||||
(byte) bitmap_init::bits#4 reg byte a 7.333333333333333
|
||||
(byte*) bitmap_init::gfx
|
||||
(byte*) bitmap_init::screen
|
||||
(byte) bitmap_init::x
|
||||
(byte) bitmap_init::x#1 reg byte x 16.5
|
||||
(byte) bitmap_init::x#2 reg byte x 5.5
|
||||
(byte) bitmap_init::y
|
||||
(byte) bitmap_init::y#1 reg byte x 16.5
|
||||
(byte) bitmap_init::y#2 reg byte x 5.5
|
||||
(byte*) bitmap_init::yoffs
|
||||
(byte*) bitmap_init::yoffs#1 yoffs zp ZP_WORD:22 22.0
|
||||
(byte*) bitmap_init::yoffs#2 yoffs zp ZP_WORD:22 6.875
|
||||
(byte*) bitmap_init::yoffs#4 yoffs zp ZP_WORD:22 11.0
|
||||
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
|
||||
(label) bitmap_line::@1
|
||||
(label) bitmap_line::@10
|
||||
(label) bitmap_line::@11
|
||||
(label) bitmap_line::@12
|
||||
(label) bitmap_line::@13
|
||||
(label) bitmap_line::@14
|
||||
(label) bitmap_line::@15
|
||||
(label) bitmap_line::@2
|
||||
(label) bitmap_line::@3
|
||||
(label) bitmap_line::@4
|
||||
(label) bitmap_line::@5
|
||||
(label) bitmap_line::@6
|
||||
(label) bitmap_line::@7
|
||||
(label) bitmap_line::@8
|
||||
(label) bitmap_line::@9
|
||||
(label) bitmap_line::@return
|
||||
(word) bitmap_line::dx
|
||||
(word) bitmap_line::dx#0 dx zp ZP_WORD:28 8.131578947368421
|
||||
(word) bitmap_line::dy
|
||||
(word) bitmap_line::dy#0 dy zp ZP_WORD:16 9.088235294117647
|
||||
(word) bitmap_line::e
|
||||
(word) bitmap_line::e#0 e zp ZP_WORD:4 4.0
|
||||
(word) bitmap_line::e#1 e zp ZP_WORD:4 134.66666666666666
|
||||
(word) bitmap_line::e#2 e zp ZP_WORD:4 202.0
|
||||
(word) bitmap_line::e#3 e zp ZP_WORD:4 40.8
|
||||
(word) bitmap_line::e#6 e zp ZP_WORD:4 151.5
|
||||
(word) bitmap_line::e1
|
||||
(word) bitmap_line::e1#0 e1 zp ZP_WORD:10 4.0
|
||||
(word) bitmap_line::e1#1 e1 zp ZP_WORD:10 134.66666666666666
|
||||
(word) bitmap_line::e1#2 e1 zp ZP_WORD:10 202.0
|
||||
(word) bitmap_line::e1#3 e1 zp ZP_WORD:10 40.8
|
||||
(word) bitmap_line::e1#6 e1 zp ZP_WORD:10 151.5
|
||||
(word) bitmap_line::sx
|
||||
(word) bitmap_line::sx#0 sx zp ZP_WORD:30 6.800000000000001
|
||||
(word) bitmap_line::sy
|
||||
(word) bitmap_line::sy#0 sy zp ZP_WORD:14 7.846153846153847
|
||||
(word) bitmap_line::x
|
||||
(word) bitmap_line::x#1 x zp ZP_WORD:8 101.0
|
||||
(word) bitmap_line::x#10 x zp ZP_WORD:8 202.0
|
||||
(word) bitmap_line::x#11 x zp ZP_WORD:8 58.00000000000001
|
||||
(word) bitmap_line::x#13 x zp ZP_WORD:8 57.714285714285715
|
||||
(word) bitmap_line::x#5 x zp ZP_WORD:8 102.0
|
||||
(word) bitmap_line::x#6 x zp ZP_WORD:8 76.25
|
||||
(word) bitmap_line::x1
|
||||
(word) bitmap_line::x1#0 x1 zp ZP_WORD:8 0.7916666666666667
|
||||
(word) bitmap_line::x2
|
||||
(word) bitmap_line::x2#0 x2 zp ZP_WORD:24 3.741935483870968
|
||||
(word) bitmap_line::y
|
||||
(word) bitmap_line::y#1 y zp ZP_WORD:6 57.714285714285715
|
||||
(word) bitmap_line::y#11 y zp ZP_WORD:6 202.0
|
||||
(word) bitmap_line::y#13 y zp ZP_WORD:6 43.57142857142858
|
||||
(word) bitmap_line::y#2 y zp ZP_WORD:6 101.0
|
||||
(word) bitmap_line::y#3 y zp ZP_WORD:6 51.0
|
||||
(word) bitmap_line::y#6 y zp ZP_WORD:6 202.0
|
||||
(word) bitmap_line::y1
|
||||
(word) bitmap_line::y1#0 y1 zp ZP_WORD:6 0.826086956521739
|
||||
(word) bitmap_line::y2
|
||||
(word) bitmap_line::y2#0 y2 zp ZP_WORD:26 3.8666666666666667
|
||||
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
|
||||
(word~) bitmap_plot::$1 $1 zp ZP_WORD:34 4.0
|
||||
(byte~) bitmap_plot::$2 reg byte a 4.0
|
||||
(label) bitmap_plot::@return
|
||||
(byte*) bitmap_plot::plotter
|
||||
(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:32 1.0
|
||||
(byte*) bitmap_plot::plotter#1 plotter zp ZP_WORD:32 3.0
|
||||
(word) bitmap_plot::x
|
||||
(word) bitmap_plot::x#0 x zp ZP_WORD:8 202.0
|
||||
(word) bitmap_plot::x#1 x zp ZP_WORD:8 4.0
|
||||
(word) bitmap_plot::x#2 x zp ZP_WORD:8 202.0
|
||||
(word) bitmap_plot::x#3 x zp ZP_WORD:8 52.0
|
||||
(byte) bitmap_plot::y
|
||||
(byte) bitmap_plot::y#0 reg byte x 101.0
|
||||
(byte) bitmap_plot::y#1 reg byte x 2.0
|
||||
(byte) bitmap_plot::y#2 reg byte x 101.0
|
||||
(byte) bitmap_plot::y#3 reg byte x 208.0
|
||||
(byte[$100]) bitmap_plot_bit
|
||||
(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_yhi
|
||||
(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_ylo
|
||||
(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) }
|
||||
(byte*) bitmap_screen
|
||||
(void()) main()
|
||||
(word~) main::$10 $10 zp ZP_WORD:24 22.0
|
||||
(word~) main::$6 $6 zp ZP_WORD:8 22.0
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(byte) main::a
|
||||
(byte) main::a#1 a zp ZP_BYTE:2 7.333333333333333
|
||||
(byte) main::a#2 a zp ZP_BYTE:2 2.75
|
||||
(byte) main::i
|
||||
(byte) main::i#1 i zp ZP_BYTE:3 16.5
|
||||
(byte) main::i#2 i zp ZP_BYTE:3 2.4444444444444446
|
||||
(label) main::toD0181
|
||||
(word~) main::toD0181_$0
|
||||
(number~) main::toD0181_$1
|
||||
(number~) main::toD0181_$2
|
||||
(number~) main::toD0181_$3
|
||||
(word~) main::toD0181_$4
|
||||
(byte~) main::toD0181_$5
|
||||
(number~) main::toD0181_$6
|
||||
(number~) main::toD0181_$7
|
||||
(number~) main::toD0181_$8
|
||||
(byte*) main::toD0181_gfx
|
||||
(byte) main::toD0181_return
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) BITMAP#0/(byte) 4&(byte) $f
|
||||
(byte*) main::toD0181_screen
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
(label) memset::@return
|
||||
(byte) memset::c
|
||||
(byte) memset::c#3 reg byte x 1.5714285714285714
|
||||
(byte*) memset::dst
|
||||
(byte*) memset::dst#1 dst zp ZP_WORD:18 16.5
|
||||
(byte*) memset::dst#2 dst zp ZP_WORD:18 17.5
|
||||
(byte*~) memset::dst#3 dst zp ZP_WORD:18 4.0
|
||||
(byte*) memset::end
|
||||
(byte*) memset::end#0 end zp ZP_WORD:20 2.1666666666666665
|
||||
(word) memset::num
|
||||
(word) memset::num#2 num zp ZP_WORD:20 2.0
|
||||
(void*) memset::return
|
||||
(void*) memset::str
|
||||
(void*) memset::str#2 str zp ZP_WORD:18
|
||||
(word()) sgn_u16((word) sgn_u16::w)
|
||||
(byte~) sgn_u16::$0 reg byte a 4.0
|
||||
(byte~) sgn_u16::$1 reg byte a 4.0
|
||||
(label) sgn_u16::@1
|
||||
(label) sgn_u16::@return
|
||||
(word) sgn_u16::return
|
||||
(word) sgn_u16::return#0 return zp ZP_WORD:14 4.0
|
||||
(word) sgn_u16::return#1 return zp ZP_WORD:14 4.0
|
||||
(word) sgn_u16::return#4 return zp ZP_WORD:14 1.0
|
||||
(word) sgn_u16::w
|
||||
(word) sgn_u16::w#0 w zp ZP_WORD:12 4.0
|
||||
(word) sgn_u16::w#1 w zp ZP_WORD:12 4.0
|
||||
(word) sgn_u16::w#2 w zp ZP_WORD:12 6.0
|
||||
|
||||
zp ZP_BYTE:2 [ main::a#2 main::a#1 ]
|
||||
zp ZP_BYTE:3 [ main::i#2 main::i#1 ]
|
||||
zp ZP_WORD:4 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
|
||||
zp ZP_WORD:6 [ bitmap_line::y#13 bitmap_line::y#6 bitmap_line::y#11 bitmap_line::y#3 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ]
|
||||
zp ZP_WORD:8 [ bitmap_line::x#6 bitmap_line::x#5 bitmap_line::x#13 bitmap_line::x#11 bitmap_line::x1#0 bitmap_line::x#10 bitmap_line::x#1 bitmap_plot::x#3 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#2 main::$6 ]
|
||||
zp ZP_WORD:10 [ bitmap_line::e1#3 bitmap_line::e1#0 bitmap_line::e1#6 bitmap_line::e1#2 bitmap_line::e1#1 ]
|
||||
reg byte x [ bitmap_plot::y#3 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#2 ]
|
||||
zp ZP_WORD:12 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ]
|
||||
zp ZP_WORD:14 [ sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 bitmap_line::sy#0 ]
|
||||
zp ZP_WORD:16 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 ]
|
||||
zp ZP_WORD:18 [ memset::str#2 memset::dst#2 memset::dst#3 memset::dst#1 ]
|
||||
zp ZP_WORD:20 [ memset::num#2 memset::end#0 ]
|
||||
reg byte x [ memset::c#3 ]
|
||||
reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
||||
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
|
||||
reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
|
||||
zp ZP_WORD:22 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
||||
zp ZP_WORD:24 [ main::$10 bitmap_line::x2#0 ]
|
||||
zp ZP_WORD:26 [ bitmap_line::y2#0 ]
|
||||
zp ZP_WORD:28 [ bitmap_line::dx#0 ]
|
||||
zp ZP_WORD:30 [ bitmap_line::sx#0 ]
|
||||
zp ZP_WORD:32 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ]
|
||||
zp ZP_WORD:34 [ bitmap_plot::$1 ]
|
||||
reg byte a [ bitmap_plot::$2 ]
|
||||
reg byte a [ sgn_u16::$0 ]
|
||||
reg byte a [ sgn_u16::$1 ]
|
||||
reg byte a [ abs_u16::$0 ]
|
||||
reg byte a [ abs_u16::$1 ]
|
||||
zp ZP_BYTE:36 [ bitmap_init::$7 ]
|
||||
reg byte a [ bitmap_init::$4 ]
|
||||
reg byte a [ bitmap_init::$5 ]
|
||||
reg byte a [ bitmap_init::$6 ]
|
@ -3,6 +3,8 @@ Fixing pointer increment (signed word*) sin16s_gen2::sintab ← ++ (signed word*
|
||||
Fixing pointer addition (signed word*~) render_sine::$0 ← (signed word[$200]) sin + (word) render_sine::sin_idx
|
||||
Fixing pointer addition (signed word*~) render_sine::$3 ← (signed word[$200]) sin2 + (word) render_sine::sin_idx
|
||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
||||
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
||||
Identified constant variable (byte*) SCREEN
|
||||
Identified constant variable (byte*) BITMAP
|
||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||
@ -47,6 +49,9 @@ Culled Empty Block (label) @27
|
||||
Culled Empty Block (label) bitmap_init::@8
|
||||
Culled Empty Block (label) @29
|
||||
Culled Empty Block (label) @30
|
||||
Culled Empty Block (label) @31
|
||||
Culled Empty Block (label) @32
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) main::vicSelectGfxBank1_toDd001_@1
|
||||
Culled Empty Block (label) main::vicSelectGfxBank1_@return
|
||||
Culled Empty Block (label) main::toD0181_@1
|
||||
@ -54,9 +59,9 @@ Culled Empty Block (label) main::@4
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) main::@5
|
||||
Culled Empty Block (label) main::@6
|
||||
Culled Empty Block (label) @32
|
||||
Culled Empty Block (label) @35
|
||||
Culled Empty Block (label) render_sine::@4
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) @36
|
||||
Culled Empty Block (label) wrap_y::@4
|
||||
Culled Empty Block (label) wrap_y::@3
|
||||
Culled Empty Block (label) wrap_y::@5
|
||||
@ -581,7 +586,7 @@ memset::@return: scope:[memset] from memset::@2
|
||||
(byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
|
||||
to:@31
|
||||
to:@34
|
||||
bitmap_init: scope:[bitmap_init] from main::@8
|
||||
(byte*) bitmap_init::screen#1 ← phi( main::@8/(byte*) bitmap_init::screen#0 )
|
||||
(byte*) bitmap_init::gfx#1 ← phi( main::@8/(byte*) bitmap_init::gfx#0 )
|
||||
@ -706,7 +711,7 @@ bitmap_plot: scope:[bitmap_plot] from render_sine::@5 render_sine::@7
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @28
|
||||
@34: scope:[] from @28
|
||||
(word) rem16u#30 ← phi( @28/(word) rem16u#32 )
|
||||
(byte*) bitmap_screen#20 ← phi( @28/(byte*) bitmap_screen#0 )
|
||||
(byte*) bitmap_gfx#21 ← phi( @28/(byte*) bitmap_gfx#0 )
|
||||
@ -718,11 +723,11 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
.word sin(toRadians([i*360]/512))*320
|
||||
}
|
||||
}}
|
||||
to:@34
|
||||
main: scope:[main] from @34
|
||||
(word) rem16u#42 ← phi( @34/(word) rem16u#25 )
|
||||
(byte*) bitmap_screen#33 ← phi( @34/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#34 ← phi( @34/(byte*) bitmap_gfx#15 )
|
||||
to:@37
|
||||
main: scope:[main] from @37
|
||||
(word) rem16u#42 ← phi( @37/(word) rem16u#25 )
|
||||
(byte*) bitmap_screen#33 ← phi( @37/(byte*) bitmap_screen#14 )
|
||||
(byte*) bitmap_gfx#34 ← phi( @37/(byte*) bitmap_gfx#15 )
|
||||
asm { sei }
|
||||
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
|
||||
*((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0
|
||||
@ -960,28 +965,28 @@ wrap_y::@return: scope:[wrap_y] from wrap_y::@9
|
||||
(byte) wrap_y::return#3 ← (byte) wrap_y::return#6
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @31
|
||||
(word) rem16u#25 ← phi( @31/(word) rem16u#30 )
|
||||
(byte*) bitmap_screen#14 ← phi( @31/(byte*) bitmap_screen#20 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @31/(byte*) bitmap_gfx#21 )
|
||||
@37: scope:[] from @34
|
||||
(word) rem16u#25 ← phi( @34/(word) rem16u#30 )
|
||||
(byte*) bitmap_screen#14 ← phi( @34/(byte*) bitmap_screen#20 )
|
||||
(byte*) bitmap_gfx#15 ← phi( @34/(byte*) bitmap_gfx#21 )
|
||||
call main
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
(word) rem16u#19 ← phi( @34/(word) rem16u#9 )
|
||||
(byte*) bitmap_screen#10 ← phi( @34/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @34/(byte*) bitmap_gfx#4 )
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
(word) rem16u#19 ← phi( @37/(word) rem16u#9 )
|
||||
(byte*) bitmap_screen#10 ← phi( @37/(byte*) bitmap_screen#4 )
|
||||
(byte*) bitmap_gfx#10 ← phi( @37/(byte*) bitmap_gfx#4 )
|
||||
(byte*) bitmap_gfx#5 ← (byte*) bitmap_gfx#10
|
||||
(byte*) bitmap_screen#5 ← (byte*) bitmap_screen#10
|
||||
(word) rem16u#10 ← (word) rem16u#19
|
||||
to:@end
|
||||
@end: scope:[] from @35
|
||||
@end: scope:[] from @38
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @17
|
||||
(label) @28
|
||||
(label) @31
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @37
|
||||
(label) @38
|
||||
(label) @6
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -2761,9 +2766,9 @@ Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @6
|
||||
Adding NOP phi() at start of @17
|
||||
Adding NOP phi() at start of @28
|
||||
Adding NOP phi() at start of @31
|
||||
Adding NOP phi() at start of @34
|
||||
Adding NOP phi() at start of @35
|
||||
Adding NOP phi() at start of @37
|
||||
Adding NOP phi() at start of @38
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main::vicSelectGfxBank1_toDd001
|
||||
Adding NOP phi() at start of main::vicSelectGfxBank1_toDd001_@return
|
||||
@ -2865,8 +2870,8 @@ Coalesced down to 30 phi equivalence classes
|
||||
Culled Empty Block (label) @6
|
||||
Culled Empty Block (label) @17
|
||||
Culled Empty Block (label) @28
|
||||
Culled Empty Block (label) @31
|
||||
Culled Empty Block (label) @35
|
||||
Culled Empty Block (label) @34
|
||||
Culled Empty Block (label) @38
|
||||
Culled Empty Block (label) main::vicSelectGfxBank1_toDd001_@return
|
||||
Culled Empty Block (label) main::toD0181_@return
|
||||
Culled Empty Block (label) main::@12
|
||||
@ -2891,7 +2896,7 @@ Culled Empty Block (label) bitmap_init::@4
|
||||
Culled Empty Block (label) bitmap_init::@11
|
||||
Culled Empty Block (label) bitmap_init::@12
|
||||
Culled Empty Block (label) bitmap_init::@9
|
||||
Renumbering block @34 to @1
|
||||
Renumbering block @37 to @1
|
||||
Renumbering block div32u16u::@2 to div32u16u::@1
|
||||
Renumbering block div32u16u::@3 to div32u16u::@2
|
||||
Renumbering block mul16u::@4 to mul16u::@3
|
||||
|
Loading…
x
Reference in New Issue
Block a user