1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-02-20 00:29:10 +00:00

Working on Tetris. Added 3 failing tests with discovered problems.

This commit is contained in:
jespergravgaard 2018-12-02 21:31:03 +01:00
parent 04d777ec6c
commit 44e2075896
44 changed files with 10410 additions and 5796 deletions

View File

@ -1,2 +1,3 @@
lda {z1}
cmp #0
beq {la1}

View File

@ -49,11 +49,22 @@ public class TestPrograms {
compileAndCompare("examples/tetris/tetris");
}
//@Test
//public void testTetrisNullPointer() throws IOException, URISyntaxException {
// compileAndCompare("tetris-npe");
//}
/*
@Test
public void testVarInitProblem() throws IOException, URISyntaxException {
compileAndCompare("var-init-problem");
}
@Test
public void testConstIfProblem() throws IOException, URISyntaxException {
compileAndCompare("const-if-problem");
}
@Test
public void testTetrisNullPointer() throws IOException, URISyntaxException {
compileAndCompare("tetris-npe");
}
*/
@Test
public void testFastMultiply8() throws IOException, URISyntaxException {

View File

@ -0,0 +1,15 @@
// Problem when constant if() contains call to (unused) function
byte* SCREEN = $400;
void main() {
if(1==1) {
SCREEN[0] = 'a';
} else {
doit();
}
}
void doit() {
SCREEN[1] = 'b';
}

View File

@ -5,18 +5,33 @@ import "keyboard"
byte* SCREEN = $400;
byte*[20] screen_lines;
// The size of the playfield
const byte PLAYFIELD_LINES = 22;
const byte PLAYFIELD_COLS = 10;
// Playfield 20 lines x 10 blocks. 0 is empty non-zero is color.
byte[20*10] playfield;
// The playfield. 0 is empty non-zero is color.
// The playfield is layed out line by line, meaning the first 10 bytes are line 1, the next 10 line 2 and so forth,
byte[PLAYFIELD_LINES*PLAYFIELD_COLS] playfield;
// Pointers to the screen address for rendering each playfield line
byte*[PLAYFIELD_LINES+3] screen_lines;
// The current moving piece
// Pointers to the playfield address for each playfield line
byte*[PLAYFIELD_LINES] playfield_lines;
// The current moving piece. Points to the start of the piece definition.
byte* current_piece = 0;
// The curent piece orientation - each piece have 4 orientations (00/$10/$20/$30). The orientation chooses one of the 4 sub-graphics of the piece.
// The curent piece orientation - each piece have 4 orientations (00/$10/$20/$30).
// The orientation chooses one of the 4 sub-graphics of the piece.
byte current_piece_orientation = 0;
// Pointer to the current piece in the current orientation. Updated each time current_piece_orientation is updated.
byte* current_piece_gfx = 0;
// The color of the current piece
byte current_piece_color = 0;
// Position of top left corner of current moving piece on the playfield
byte current_xpos = 3;
byte current_ypos = 0;
@ -31,87 +46,189 @@ const byte current_movedown_rate_fast = 5;
byte current_movedown_counter = 0;
void main() {
asm { sei }
init();
spawn_current();
render_playfield();
render_current();
while(true) {
// Wait for a frame to pass
while(*RASTER!=$ff) {}
while(*RASTER!=$fe) {}
(*BORDERCOL)++;
// Scan keyboard events
keyboard_event_scan();
byte render = 0;
byte key_event = keyboard_event_get();
// Handle moving down current piece
++current_movedown_counter;
byte movedown = 0;
if(key_event==KEY_SPACE) {
movedown++;
}
if(keyboard_event_pressed(KEY_SPACE)!=0) {
if(current_movedown_counter>=current_movedown_rate_fast) {
movedown++;
}
}
if(current_movedown_counter>=current_movedown_rate) {
movedown++;
}
if(movedown!=0) {
current_movedown();
current_movedown_counter = 0;
render++;
}
// Handle other keyboard events
if((key_event&$80)==0) {
// New keyboard event
if(key_event==KEY_COMMA) {
current_xpos--;
render++;
}
if(key_event==KEY_DOT) {
current_xpos++;
render++;
}
if(key_event==KEY_Z) {
current_piece_orientation = (current_piece_orientation-$10)&$3f;
render++;
}
if(key_event==KEY_X) {
current_piece_orientation = (current_piece_orientation+$10)&$3f;
render++;
}
}
byte render = 0;
render += play_movedown(key_event);
render += play_moveother(key_event);
if(render!=0) {
(*BORDERCOL)++;
render_playfield();
render_current();
(*BORDERCOL)--;
}
(*BORDERCOL)--;
}
}
void init() {
// Move down the current piece
// Return non-zero if a render is needed
byte play_movedown(byte key_event) {
// Handle moving down current piece
++current_movedown_counter;
byte movedown = 0;
// As soon as space is pressed move down once
if(key_event==KEY_SPACE) {
movedown++;
}
// While space is held down move down faster
if(keyboard_event_pressed(KEY_SPACE)!=0) {
if(current_movedown_counter>=current_movedown_rate_fast) {
movedown++;
}
}
// Move down slowly otherwise
if(current_movedown_counter>=current_movedown_rate) {
movedown++;
}
// Attempt movedown
if(movedown!=0) {
if(collision(current_ypos+1, current_xpos)==COLLISION_NONE) {
// Move current piece down
current_ypos++;
} else {
// Lock current piece
lock_current();
// Spawn a new piece
spawn_current();
}
current_movedown_counter = 0;
return 1;
}
return 0;
}
// Initialize a current piece
// No collision
const byte COLLISION_NONE = 0;
// Playfield piece collision (cell on top of other cell on the playfield)
const byte COLLISION_PLAYFIELD = 1;
// Bottom collision (cell below bottom of the playfield)
const byte COLLISION_BOTTOM = 2;
// Left side collision (cell beyond the left side of the playfield)
const byte COLLISION_LEFT = 4;
// Right side collision (cell beyond the right side of the playfield)
const byte COLLISION_RIGHT = 8;
// Test if there is a collision between the current piece moved to (x, y) and anything on the playfield or the playfield boundaries
// Returns information about the type of the collision detected
byte collision(byte ypos, byte xpos) {
byte i = 0;
for(byte l:0..3) {
byte line = ypos + l;
byte* playfield_line = playfield_lines[line<<1];
for(byte c:0..3) {
if(current_piece_gfx[i++]!=0) {
if(line>=PLAYFIELD_LINES) {
// Below the playfield bottom
return COLLISION_BOTTOM;
}
byte col = xpos+c;
if((col&$80)!=0) {
// Beyond left side of the playfield
return COLLISION_LEFT;
}
if(col>=PLAYFIELD_COLS) {
// Beyond left side of the playfield
return COLLISION_RIGHT;
}
if(playfield_line[col]!=0) {
// Collision with a playfield cell
return COLLISION_PLAYFIELD;
}
}
}
}
return COLLISION_NONE;
}
// Lock the current piece onto the playfield
void lock_current() {
byte i = 0;
for(byte l:0..3) {
byte line = current_ypos + l;
byte* playfield_line = playfield_lines[line<<1];
for(byte c:0..3) {
byte cell = current_piece_gfx[i++];
if(cell!=0) {
byte col = current_xpos + c;
playfield_line[col] = current_piece_color;
}
}
}
}
// Spawn a new piece
void spawn_current() {
current_piece = piece_t;
current_piece_orientation = 0;
current_piece_gfx = current_piece + current_piece_orientation;
current_piece_color = GREEN;
current_xpos = 3;
current_ypos = 0;
}
// Move left/right or rotate the current piece
// Return non-zero if a render is needed
byte play_moveother(byte key_event) {
byte render = 0;
// Handle other keyboard events
if((key_event&$80)==0) {
// New keyboard event
if(key_event==KEY_COMMA) {
if(collision(current_ypos,current_xpos-1)==COLLISION_NONE) {
current_xpos--;
render++;
}
} else if(key_event==KEY_DOT) {
if(collision(current_ypos,current_xpos+1)==COLLISION_NONE) {
current_xpos++;
render++;
}
} else if(key_event==KEY_Z) {
current_piece_orientation = (current_piece_orientation-$10)&$3f;
current_piece_gfx = current_piece + current_piece_orientation;
render++;
} else if(key_event==KEY_X) {
current_piece_orientation = (current_piece_orientation+$10)&$3f;
current_piece_gfx = current_piece + current_piece_orientation;
render++;
}
}
return render;
}
// Initialize the screen and data tables
void init() {
// Clear the screen
fill(SCREEN,1000,$a0);
fill(COLS,1000,BLACK);
// Initialize the screen lines pointers;
// Initialize the screen line pointers;
byte* li = COLS + 40 + 15;
for(byte i:0..19) {
for(byte i:0..PLAYFIELD_LINES+2) {
screen_lines[i<<1] = li;
li +=40;
li += 40;
}
// Initialize the playfield line pointers;
byte* pli = playfield;
for(byte j:0..PLAYFIELD_LINES-1) {
playfield_lines[j<<1] = pli;
pli += 10;
}
// Prepare the playfield frame
byte* line = COLS + 14;
for(byte l:0..21) {
for(byte c:0..11) {
for(byte l:0..PLAYFIELD_LINES+1) {
for(byte c:0..PLAYFIELD_COLS+1) {
*(line+c) = DARK_GREY;
}
line +=40;
@ -122,9 +239,9 @@ void init() {
// Render the static playfield on the screen
void render_playfield() {
byte i = 0;
for(byte l:0..19) {
for(byte l:0..PLAYFIELD_LINES-1) {
byte* line = screen_lines[l<<1];
for(byte c:0..9) {
for(byte c:0..PLAYFIELD_COLS-1) {
*(line+c) = playfield[i++];
}
}
@ -134,27 +251,23 @@ void render_playfield() {
// Render the current moving piece at position (current_xpos, current_ypos)
void render_current() {
byte i = 0;
byte* current_piece_gfx = current_piece + current_piece_orientation;
for(byte l:0..3) {
byte* screen_line = screen_lines[(current_ypos+l)<<1];
for(byte c:0..3) {
byte current_cell = current_piece_gfx[i++];
if(current_cell!=0) {
byte xpos = current_xpos+c;
if(xpos<10) {
screen_line[xpos] = current_cell;
byte line = current_ypos + l;
if(line<PLAYFIELD_LINES) {
byte* screen_line = screen_lines[line<<1];
for(byte c:0..3) {
byte current_cell = current_piece_gfx[i++];
if(current_cell!=0) {
byte xpos = current_xpos+c;
if(xpos<PLAYFIELD_COLS) {
screen_line[xpos] = current_piece_color;
}
}
}
}
}
}
// Move the current piece down one position
void current_movedown() {
current_ypos++;
}
// The T-piece
align($40) byte[4*4*4] piece_t = {
@ -322,4 +435,3 @@ align($40) byte[4*4*4] piece_i = {
0, 1, 0, 0
};

View File

@ -0,0 +1,9 @@
// Variables without initialization causes problems when compiling
byte* screen;
void main() {
screen = $400;
*screen = 'a';
}

View File

@ -655,6 +655,7 @@ bool_complex: {
b9:
//SEG38 [19] if((byte~) bool_complex::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@4 -- vbuz1_eq_0_then_la1
lda _5
cmp #0
beq b4
jmp b2
//SEG39 bool_complex::@2
@ -688,6 +689,7 @@ bool_complex: {
b8:
//SEG49 [25] if((byte~) bool_complex::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@2 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b2
jmp b7
}
@ -721,6 +723,7 @@ bool_not: {
b7:
//SEG59 [30] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4
jmp b2
//SEG60 bool_not::@2
@ -781,6 +784,7 @@ bool_or: {
b7:
//SEG78 [40] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b2
jmp b4
//SEG79 bool_or::@4
@ -861,6 +865,7 @@ bool_and: {
b7:
//SEG104 [54] if((byte~) bool_and::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_and::@2 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b2
jmp b4
//SEG105 bool_and::@2
@ -922,9 +927,9 @@ Uplift Scope [bool_not] 27.5: zp ZP_BYTE:3 [ bool_not::i#2 bool_not::i#1 ] 11: z
Uplift Scope [main]
Uplift Scope []
Uplifting [bool_complex] best 3238 combination reg byte y [ bool_complex::i#2 bool_complex::i#1 ] reg byte x [ bool_complex::$1 ] reg byte a [ bool_complex::$5 ]
Uplifting [bool_and] best 3008 combination reg byte x [ bool_and::i#2 bool_and::i#1 ] reg byte a [ bool_and::$1 ]
Uplifting [bool_or] best 2778 combination reg byte x [ bool_or::i#2 bool_or::i#1 ] reg byte a [ bool_or::$1 ]
Uplifting [bool_complex] best 3298 combination reg byte y [ bool_complex::i#2 bool_complex::i#1 ] reg byte x [ bool_complex::$1 ] reg byte a [ bool_complex::$5 ]
Uplifting [bool_and] best 3048 combination reg byte x [ bool_and::i#2 bool_and::i#1 ] reg byte a [ bool_and::$1 ]
Uplifting [bool_or] best 2798 combination reg byte x [ bool_or::i#2 bool_or::i#1 ] reg byte a [ bool_or::$1 ]
Uplifting [bool_not] best 2548 combination reg byte x [ bool_not::i#2 bool_not::i#1 ] reg byte a [ bool_not::$1 ]
Uplifting [main] best 2548 combination
Uplifting [] best 2548 combination

View File

@ -800,6 +800,7 @@ bool_not: {
b7:
//SEG60 [31] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4
jmp b2
//SEG61 bool_not::@2
@ -860,6 +861,7 @@ bool_or: {
b7:
//SEG79 [41] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b2
jmp b4
//SEG80 bool_or::@4
@ -940,6 +942,7 @@ bool_and: {
b7:
//SEG105 [55] if((byte~) bool_and::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_and::@2 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b2
jmp b4
//SEG106 bool_and::@2
@ -1013,9 +1016,9 @@ Uplift Scope [bool_not] 27.5: zp ZP_BYTE:3 [ bool_not::i#2 bool_not::i#1 ] 11: z
Uplift Scope [main]
Uplift Scope []
Uplifting [bool_complex] best 3523 combination reg byte x [ bool_complex::i#2 bool_complex::i#1 ] reg byte a [ bool_complex::$1 ] zp ZP_BOOL:8 [ bool_complex::o2#0 ] zp ZP_BOOL:6 [ bool_complex::o1#0 ]
Uplifting [bool_and] best 3293 combination reg byte x [ bool_and::i#2 bool_and::i#1 ] reg byte a [ bool_and::$1 ]
Uplifting [bool_or] best 3063 combination reg byte x [ bool_or::i#2 bool_or::i#1 ] reg byte a [ bool_or::$1 ]
Uplifting [bool_complex] best 3583 combination reg byte x [ bool_complex::i#2 bool_complex::i#1 ] reg byte a [ bool_complex::$1 ] zp ZP_BOOL:8 [ bool_complex::o2#0 ] zp ZP_BOOL:6 [ bool_complex::o1#0 ]
Uplifting [bool_and] best 3333 combination reg byte x [ bool_and::i#2 bool_and::i#1 ] reg byte a [ bool_and::$1 ]
Uplifting [bool_or] best 3083 combination reg byte x [ bool_or::i#2 bool_or::i#1 ] reg byte a [ bool_or::$1 ]
Uplifting [bool_not] best 2833 combination reg byte x [ bool_not::i#2 bool_not::i#1 ] reg byte a [ bool_not::$1 ]
Uplifting [main] best 2833 combination
Uplifting [] best 2833 combination

View File

@ -1643,6 +1643,7 @@ gfx_init_plane_charset8: {
sta _7
//SEG110 [58] if((byte~) gfx_init_plane_charset8::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 -- vbuz1_eq_0_then_la1
lda _7
cmp #0
beq b4_from_b3
jmp b5
//SEG111 gfx_init_plane_charset8::@5

View File

@ -472,6 +472,7 @@ gfx_mode: {
}
keyboard_event_get: {
lda keyboard_events_size
cmp #0
beq b1
dec keyboard_events_size
ldy keyboard_events_size

View File

@ -13873,6 +13873,7 @@ keyboard_event_get: {
.label return_4 = $119
//SEG253 [154] if((byte) keyboard_events_size#100==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1
lda keyboard_events_size
cmp #0
beq breturn_from_keyboard_event_get
jmp b3
//SEG254 keyboard_event_get::@3
@ -13996,6 +13997,7 @@ keyboard_event_scan: {
sta _14
//SEG297 [174] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1
lda _14
cmp #0
beq b9_from_b26
//SEG298 [175] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21]
b21_from_b26:
@ -14034,6 +14036,7 @@ keyboard_event_scan: {
sta _18
//SEG311 [180] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1
lda _18
cmp #0
beq b10_from_b27
jmp b22
//SEG312 keyboard_event_scan::@22
@ -14067,6 +14070,7 @@ keyboard_event_scan: {
sta _22
//SEG323 [186] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1
lda _22
cmp #0
beq b11_from_b28
jmp b23
//SEG324 keyboard_event_scan::@23
@ -14100,6 +14104,7 @@ keyboard_event_scan: {
sta _26
//SEG335 [192] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1
lda _26
cmp #0
beq breturn_from_b29
jmp b24
//SEG336 keyboard_event_scan::@24
@ -14145,6 +14150,7 @@ keyboard_event_scan: {
sta _4
//SEG353 [199] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1
lda _4
cmp #0
beq b5_from_b4
jmp b15
//SEG354 keyboard_event_scan::@15
@ -14163,6 +14169,7 @@ keyboard_event_scan: {
sta event_type
//SEG358 [202] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1
lda event_type
cmp #0
beq b7
jmp b17
//SEG359 keyboard_event_scan::@17
@ -14275,6 +14282,7 @@ get_vic_screen: {
.label return_11 = $e7
//SEG387 [223] if((byte) get_vic_screen::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto get_vic_screen::@return -- vbuz1_eq_0_then_la1
lda idx
cmp #0
beq breturn_from_get_vic_screen
jmp b10
//SEG388 get_vic_screen::@10
@ -14363,6 +14371,7 @@ get_vic_charset: {
.label return_4 = $de
//SEG411 [231] if((byte) get_vic_charset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto get_vic_charset::@return -- vbuz1_eq_0_then_la1
lda idx
cmp #0
beq breturn_from_get_vic_charset
jmp b4
//SEG412 get_vic_charset::@4
@ -14407,6 +14416,7 @@ get_plane: {
.label return_17 = $bb
//SEG423 [237] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto get_plane::@return -- vbuz1_eq_0_then_la1
lda idx
cmp #0
beq breturn_from_get_plane
jmp b28
//SEG424 get_plane::@28
@ -14892,6 +14902,7 @@ form_mode: {
sta _36
//SEG563 [297] if((byte~) form_mode::$36==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_mode::@8 -- vbuz1_eq_0_then_la1
lda _36
cmp #0
beq b8
jmp breturn
//SEG564 form_mode::@return
@ -14941,6 +14952,7 @@ render_preset_name: {
.label name = $23
//SEG581 [307] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_preset_name::@22 -- vbuz1_eq_0_then_la1
lda idx
cmp #0
beq b22_from_render_preset_name
jmp b23
//SEG582 render_preset_name::@23
@ -15290,6 +15302,7 @@ apply_preset: {
.label preset = $2b
//SEG675 [346] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto apply_preset::@22 -- vbuz1_eq_0_then_la1
lda idx
cmp #0
beq b22_from_apply_preset
jmp b24
//SEG676 apply_preset::@24
@ -15600,6 +15613,7 @@ form_control: {
sta _12
//SEG764 [384] if((byte~) form_control::$12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 -- vbuz1_eq_0_then_la1
lda _12
cmp #0
beq b5
jmp b19
//SEG765 form_control::@19
@ -15677,6 +15691,7 @@ form_control: {
sta _22
//SEG792 [396] if((byte~) form_control::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 -- vbuz1_eq_0_then_la1
lda _22
cmp #0
beq b10
jmp b25
//SEG793 form_control::@25
@ -16616,6 +16631,7 @@ gfx_init_plane_horisontal: {
sta _5
//SEG1104 [547] if((byte~) gfx_init_plane_horisontal::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_horisontal::@3 -- vbuz1_eq_0_then_la1
lda _5
cmp #0
beq b3
jmp b5
//SEG1105 gfx_init_plane_horisontal::@5
@ -16785,6 +16801,7 @@ gfx_init_plane_charset8: {
sta _5
//SEG1168 [569] if((byte~) gfx_init_plane_charset8::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 -- vbuz1_eq_0_then_la1
lda _5
cmp #0
beq b4_from_b3
jmp b5
//SEG1169 gfx_init_plane_charset8::@5
@ -19457,364 +19474,364 @@ Uplift Scope [gfx_init_plane_vertical2]
Uplift Scope [gfx_init_plane_blank]
Uplift Scope [gfx_init_plane_full]
Uplifting [keyboard_event_scan] best 15329289 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] zp ZP_BYTE:256 [ keyboard_event_scan::event_type#0 ] zp ZP_BYTE:257 [ keyboard_event_scan::$11 ] zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:247 [ keyboard_event_scan::$14 ] zp ZP_BYTE:249 [ keyboard_event_scan::$18 ] zp ZP_BYTE:251 [ keyboard_event_scan::$22 ] zp ZP_BYTE:253 [ keyboard_event_scan::$26 ]
Uplifting [keyboard_event_scan] best 15533513 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] zp ZP_BYTE:256 [ keyboard_event_scan::event_type#0 ] zp ZP_BYTE:257 [ keyboard_event_scan::$11 ] zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:247 [ keyboard_event_scan::$14 ] zp ZP_BYTE:249 [ keyboard_event_scan::$18 ] zp ZP_BYTE:251 [ keyboard_event_scan::$22 ] zp ZP_BYTE:253 [ keyboard_event_scan::$26 ]
Limited combination testing to 10 combinations of 5308416 possible.
Uplifting [] best 15329221 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:52 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#77 print_char_cursor#78 print_char_cursor#38 print_char_cursor#1 ] zp ZP_WORD:54 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] reg byte x [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 ] zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ]
Uplifting [] best 15533445 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:52 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#77 print_char_cursor#78 print_char_cursor#38 print_char_cursor#1 ] zp ZP_WORD:54 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] reg byte x [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 ] zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ]
Limited combination testing to 10 combinations of 16 possible.
Uplifting [keyboard_matrix_read] best 15239220 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::rowid#0 ] zp ZP_BYTE:262 [ keyboard_matrix_read::return#0 ]
Uplifting [keyboard_matrix_read] best 15443444 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::rowid#0 ] zp ZP_BYTE:262 [ keyboard_matrix_read::return#0 ]
Limited combination testing to 10 combinations of 64 possible.
Uplifting [gfx_init_plane_charset8] best 15226220 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$5 ] zp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp ZP_WORD:85 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp ZP_WORD:81 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ]
Uplifting [gfx_init_plane_charset8] best 15428444 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$5 ] zp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp ZP_WORD:85 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp ZP_WORD:81 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ]
Limited combination testing to 10 combinations of 512 possible.
Uplifting [print_str_at] best 15226220 combination zp ZP_WORD:37 [ print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] zp ZP_WORD:39 [ print_str_at::at#2 print_str_at::at#0 ]
Uplifting [form_field_ptr] best 15226216 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp ZP_WORD:266 [ form_field_ptr::return#2 ] zp ZP_WORD:274 [ form_field_ptr::return#0 ] reg byte a [ form_field_ptr::y#0 ] zp ZP_BYTE:273 [ form_field_ptr::x#0 ] zp ZP_WORD:276 [ form_field_ptr::return#3 ] zp ZP_WORD:271 [ form_field_ptr::$2 ]
Uplifting [print_str_at] best 15428444 combination zp ZP_WORD:37 [ print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] zp ZP_WORD:39 [ print_str_at::at#2 print_str_at::at#0 ]
Uplifting [form_field_ptr] best 15428440 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp ZP_WORD:266 [ form_field_ptr::return#2 ] zp ZP_WORD:274 [ form_field_ptr::return#0 ] reg byte a [ form_field_ptr::y#0 ] zp ZP_BYTE:273 [ form_field_ptr::x#0 ] zp ZP_WORD:276 [ form_field_ptr::return#3 ] zp ZP_WORD:271 [ form_field_ptr::$2 ]
Limited combination testing to 10 combinations of 48 possible.
Uplifting [form_render_values] best 15226216 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:268 [ form_render_values::field#0 ]
Uplifting [apply_preset] best 15213885 combination reg byte y [ apply_preset::i#2 apply_preset::i#1 ] zp ZP_WORD:43 [ apply_preset::preset#13 ] reg byte a [ apply_preset::idx#0 ]
Uplifting [form_render_values] best 15428440 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:268 [ form_render_values::field#0 ]
Uplifting [apply_preset] best 15416107 combination reg byte y [ apply_preset::i#2 apply_preset::i#1 ] zp ZP_WORD:43 [ apply_preset::preset#13 ] reg byte a [ apply_preset::idx#0 ]
Limited combination testing to 10 combinations of 12 possible.
Uplifting [print_str_lines] best 15201885 combination zp ZP_WORD:50 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ]
Uplifting [form_mode] best 15196685 combination reg byte a [ form_mode::$36 ] reg byte y [ form_mode::i#2 form_mode::i#1 ] zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
Uplifting [print_str_lines] best 15404107 combination zp ZP_WORD:50 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ]
Uplifting [form_mode] best 15396907 combination reg byte a [ form_mode::$36 ] reg byte y [ form_mode::i#2 form_mode::i#1 ] zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
Limited combination testing to 10 combinations of 24 possible.
Uplifting [form_control] best 15190685 combination reg byte a [ form_control::return#0 ] zp ZP_BYTE:46 [ form_control::return#2 ] zp ZP_BYTE:280 [ form_control::$5 ] zp ZP_BYTE:283 [ form_control::$11 ] zp ZP_BYTE:284 [ form_control::$12 ] zp ZP_BYTE:285 [ form_control::$22 ] zp ZP_BYTE:286 [ form_control::$6 ] zp ZP_BYTE:282 [ form_control::key_event#0 ] zp ZP_WORD:278 [ form_control::field#0 ]
Uplifting [form_control] best 15390907 combination reg byte a [ form_control::return#0 ] zp ZP_BYTE:46 [ form_control::return#2 ] zp ZP_BYTE:280 [ form_control::$5 ] zp ZP_BYTE:283 [ form_control::$11 ] zp ZP_BYTE:284 [ form_control::$12 ] zp ZP_BYTE:285 [ form_control::$22 ] zp ZP_BYTE:286 [ form_control::$6 ] zp ZP_BYTE:282 [ form_control::key_event#0 ] zp ZP_WORD:278 [ form_control::field#0 ]
Limited combination testing to 10 combinations of 65536 possible.
Uplifting [bitmap_plot] best 15188276 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:325 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:329 [ bitmap_plot::$1 ] zp ZP_WORD:323 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:327 [ bitmap_plot::$0 ]
Uplifting [bitmap_plot] best 15388498 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:325 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:329 [ bitmap_plot::$1 ] zp ZP_WORD:323 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:327 [ bitmap_plot::$0 ]
Limited combination testing to 10 combinations of 36 possible.
Uplifting [gfx_init_plane_8bppchunky] best 15187046 combination reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] zp ZP_WORD:94 [ gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] zp ZP_WORD:309 [ gfx_init_plane_8bppchunky::$6 ] reg byte a [ gfx_init_plane_8bppchunky::c#0 ] zp ZP_WORD:91 [ gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 ] zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ]
Uplifting [gfx_init_plane_8bppchunky] best 15387268 combination reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] zp ZP_WORD:94 [ gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] zp ZP_WORD:309 [ gfx_init_plane_8bppchunky::$6 ] reg byte a [ gfx_init_plane_8bppchunky::c#0 ] zp ZP_WORD:91 [ gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 ] zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ]
Limited combination testing to 10 combinations of 16 possible.
Uplifting [gfx_init_screen2] best 15185846 combination reg byte a [ gfx_init_screen2::$0 ] reg byte a [ gfx_init_screen2::$3 ] zp ZP_BYTE:349 [ gfx_init_screen2::$4 ] zp ZP_BYTE:147 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] zp ZP_BYTE:346 [ gfx_init_screen2::col#0 ] zp ZP_WORD:148 [ gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ] zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ]
Uplifting [gfx_init_screen2] best 15386068 combination reg byte a [ gfx_init_screen2::$0 ] reg byte a [ gfx_init_screen2::$3 ] zp ZP_BYTE:349 [ gfx_init_screen2::$4 ] zp ZP_BYTE:147 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] zp ZP_BYTE:346 [ gfx_init_screen2::col#0 ] zp ZP_WORD:148 [ gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ] zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ]
Limited combination testing to 10 combinations of 2304 possible.
Uplifting [bitmap_line_xdyi] best 15185246 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
Uplifting [bitmap_line_xdyi] best 15385468 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [bitmap_line_xdyd] best 15184646 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
Uplifting [bitmap_line_xdyd] best 15384868 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [bitmap_line_ydxi] best 15183640 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ]
Uplifting [bitmap_line_ydxi] best 15383862 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [bitmap_line_ydxd] best 15182634 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
Uplifting [bitmap_line_ydxd] best 15382856 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [gfx_init_screen0] best 15181434 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] zp ZP_BYTE:355 [ gfx_init_screen0::$3 ] zp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp ZP_WORD:156 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp ZP_BYTE:353 [ gfx_init_screen0::$1 ] zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ]
Uplifting [gfx_init_screen0] best 15381656 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] zp ZP_BYTE:355 [ gfx_init_screen0::$3 ] zp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp ZP_WORD:156 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp ZP_BYTE:353 [ gfx_init_screen0::$1 ] zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ]
Limited combination testing to 10 combinations of 768 possible.
Uplifting [gfx_init_screen3] best 15180234 combination reg byte a [ gfx_init_screen3::$0 ] reg byte a [ gfx_init_screen3::$2 ] zp ZP_BYTE:344 [ gfx_init_screen3::$3 ] zp ZP_BYTE:143 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] zp ZP_WORD:144 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ] zp ZP_BYTE:342 [ gfx_init_screen3::$1 ] zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ]
Uplifting [gfx_init_screen3] best 15380456 combination reg byte a [ gfx_init_screen3::$0 ] reg byte a [ gfx_init_screen3::$2 ] zp ZP_BYTE:344 [ gfx_init_screen3::$3 ] zp ZP_BYTE:143 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] zp ZP_WORD:144 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ] zp ZP_BYTE:342 [ gfx_init_screen3::$1 ] zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ]
Limited combination testing to 10 combinations of 768 possible.
Uplifting [gfx_init_plane_horisontal] best 15178934 combination zp ZP_WORD:77 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 ] reg byte a [ gfx_init_plane_horisontal::$5 ] reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ]
Uplifting [gfx_init_plane_horisontal] best 15378956 combination zp ZP_WORD:77 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 ] reg byte a [ gfx_init_plane_horisontal::$5 ] reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ]
Limited combination testing to 10 combinations of 16 possible.
Uplifting [gfx_init_screen1] best 15177334 combination reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] reg byte a [ gfx_init_screen1::$0 ] zp ZP_BYTE:351 [ gfx_init_screen1::$1 ] zp ZP_WORD:152 [ gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 ] zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ]
Uplifting [gfx_init_screen1] best 15377356 combination reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] reg byte a [ gfx_init_screen1::$0 ] zp ZP_BYTE:351 [ gfx_init_screen1::$1 ] zp ZP_WORD:152 [ gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 ] zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ]
Limited combination testing to 10 combinations of 64 possible.
Uplifting [form_set_screen] best 15175234 combination reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] zp ZP_BYTE:288 [ form_set_screen::$1 ] zp ZP_WORD:47 [ form_set_screen::line#2 form_set_screen::line#1 ]
Uplifting [form_set_screen] best 15375256 combination reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] zp ZP_BYTE:288 [ form_set_screen::$1 ] zp ZP_WORD:47 [ form_set_screen::line#2 form_set_screen::line#1 ]
Limited combination testing to 10 combinations of 48 possible.
Uplifting [gfx_init_plane_horisontal2] best 15174234 combination reg byte a [ gfx_init_plane_horisontal2::$5 ] reg byte a [ gfx_init_plane_horisontal2::row#0 ] zp ZP_BYTE:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] zp ZP_WORD:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 ] zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ]
Uplifting [gfx_init_plane_horisontal2] best 15374256 combination reg byte a [ gfx_init_plane_horisontal2::$5 ] reg byte a [ gfx_init_plane_horisontal2::row#0 ] zp ZP_BYTE:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] zp ZP_WORD:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 ] zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ]
Limited combination testing to 10 combinations of 64 possible.
Uplifting [gfx_init_charset] best 15173334 combination zp ZP_WORD:135 [ gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] zp ZP_WORD:133 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 ] zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ]
Uplifting [gfx_init_plane_fill] best 15172428 combination zp ZP_WORD:64 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] zp ZP_DWORD:292 [ gfx_init_plane_fill::$0 ] zp ZP_WORD:296 [ gfx_init_plane_fill::$1 ] reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ] zp ZP_WORD:299 [ gfx_init_plane_fill::$4 ] zp ZP_WORD:301 [ gfx_init_plane_fill::$5 ] zp ZP_WORD:303 [ gfx_init_plane_fill::$6 ] zp ZP_DWORD:58 [ gfx_init_plane_fill::plane_addr#3 ]
Uplifting [gfx_init_charset] best 15373356 combination zp ZP_WORD:135 [ gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] zp ZP_WORD:133 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 ] zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ]
Uplifting [gfx_init_plane_fill] best 15372450 combination zp ZP_WORD:64 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] zp ZP_DWORD:292 [ gfx_init_plane_fill::$0 ] zp ZP_WORD:296 [ gfx_init_plane_fill::$1 ] reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ] zp ZP_WORD:299 [ gfx_init_plane_fill::$4 ] zp ZP_WORD:301 [ gfx_init_plane_fill::$5 ] zp ZP_WORD:303 [ gfx_init_plane_fill::$6 ] zp ZP_DWORD:58 [ gfx_init_plane_fill::plane_addr#3 ]
Limited combination testing to 10 combinations of 32 possible.
Uplifting [bitmap_clear] best 15171528 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:333 [ bitmap_clear::$3 ]
Uplifting [gfx_init_screen4] best 15170628 combination zp ZP_WORD:139 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 ] reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ] zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ]
Uplifting [gfx_init_plane_vertical] best 15169728 combination zp ZP_WORD:73 [ gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 ] reg byte x [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ]
Uplifting [print_cls] best 15169728 combination zp ZP_WORD:56 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] zp ZP_WORD:290 [ print_cls::$0 ]
Uplifting [dtvSetCpuBankSegment1] best 15169589 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ]
Uplifting [keyboard_event_get] best 15168680 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] zp ZP_BYTE:281 [ keyboard_event_get::return#4 ]
Uplifting [bitmap_clear] best 15371550 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:333 [ bitmap_clear::$3 ]
Uplifting [gfx_init_screen4] best 15370650 combination zp ZP_WORD:139 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 ] reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ] zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ]
Uplifting [gfx_init_plane_vertical] best 15369750 combination zp ZP_WORD:73 [ gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 ] reg byte x [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ]
Uplifting [print_cls] best 15369750 combination zp ZP_WORD:56 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] zp ZP_WORD:290 [ print_cls::$0 ]
Uplifting [dtvSetCpuBankSegment1] best 15369611 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ]
Uplifting [keyboard_event_get] best 15368702 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] zp ZP_BYTE:281 [ keyboard_event_get::return#4 ]
Limited combination testing to 10 combinations of 64 possible.
Uplifting [bitmap_init] best 15168440 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:335 [ bitmap_init::$0 ] zp ZP_BYTE:337 [ bitmap_init::$7 ] zp ZP_BYTE:338 [ bitmap_init::$8 ] zp ZP_BYTE:339 [ bitmap_init::$9 ] zp ZP_BYTE:340 [ bitmap_init::$10 ] zp ZP_BYTE:336 [ bitmap_init::$6 ]
Uplifting [bitmap_init] best 15368462 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:335 [ bitmap_init::$0 ] zp ZP_BYTE:337 [ bitmap_init::$7 ] zp ZP_BYTE:338 [ bitmap_init::$8 ] zp ZP_BYTE:339 [ bitmap_init::$9 ] zp ZP_BYTE:340 [ bitmap_init::$10 ] zp ZP_BYTE:336 [ bitmap_init::$6 ]
Limited combination testing to 10 combinations of 138240 possible.
Uplifting [render_preset_name] best 15168106 combination reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] zp ZP_WORD:35 [ render_preset_name::name#12 ]
Uplifting [keyboard_event_pressed] best 15168094 combination reg byte a [ keyboard_event_pressed::return#0 ] reg byte a [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:250 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:252 [ keyboard_event_pressed::return#3 ] zp ZP_BYTE:258 [ keyboard_event_pressed::$0 ] zp ZP_BYTE:260 [ keyboard_event_pressed::$1 ] zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:261 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ]
Uplifting [render_preset_name] best 15368126 combination reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] zp ZP_WORD:35 [ render_preset_name::name#12 ]
Uplifting [keyboard_event_pressed] best 15368114 combination reg byte a [ keyboard_event_pressed::return#0 ] reg byte a [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:250 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:252 [ keyboard_event_pressed::return#3 ] zp ZP_BYTE:258 [ keyboard_event_pressed::$0 ] zp ZP_BYTE:260 [ keyboard_event_pressed::$1 ] zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:261 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ]
Limited combination testing to 10 combinations of 147456 possible.
Uplifting [gfx_init_vic_bitmap] best 15168094 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ]
Uplifting [get_vic_screen] best 15168075 combination reg byte a [ get_vic_screen::idx#2 get_vic_screen::idx#0 get_vic_screen::idx#1 ] zp ZP_WORD:212 [ get_vic_screen::return#10 ] zp ZP_WORD:231 [ get_vic_screen::return#11 ] zp ZP_WORD:21 [ get_vic_screen::return#5 ]
Uplifting [get_plane] best 15168029 combination reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ] zp ZP_DWORD:160 [ get_plane::return#16 ] zp ZP_DWORD:187 [ get_plane::return#17 ] zp ZP_DWORD:26 [ get_plane::return#14 ]
Uplifting [bitmap_line] best 15167985 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:314 [ bitmap_line::y0#0 ] zp ZP_BYTE:313 [ bitmap_line::x1#0 ] zp ZP_BYTE:312 [ bitmap_line::x0#0 ] zp ZP_BYTE:317 [ bitmap_line::yd#1 ] zp ZP_BYTE:318 [ bitmap_line::yd#0 ] zp ZP_BYTE:320 [ bitmap_line::yd#3 ] zp ZP_BYTE:321 [ bitmap_line::yd#10 ] zp ZP_BYTE:316 [ bitmap_line::xd#1 ] zp ZP_BYTE:319 [ bitmap_line::xd#0 ]
Uplifting [gfx_init_vic_bitmap] best 15368114 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ]
Uplifting [get_vic_screen] best 15368093 combination reg byte a [ get_vic_screen::idx#2 get_vic_screen::idx#0 get_vic_screen::idx#1 ] zp ZP_WORD:212 [ get_vic_screen::return#10 ] zp ZP_WORD:231 [ get_vic_screen::return#11 ] zp ZP_WORD:21 [ get_vic_screen::return#5 ]
Uplifting [get_plane] best 15368045 combination reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ] zp ZP_DWORD:160 [ get_plane::return#16 ] zp ZP_DWORD:187 [ get_plane::return#17 ] zp ZP_DWORD:26 [ get_plane::return#14 ]
Uplifting [bitmap_line] best 15368001 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:314 [ bitmap_line::y0#0 ] zp ZP_BYTE:313 [ bitmap_line::x1#0 ] zp ZP_BYTE:312 [ bitmap_line::x0#0 ] zp ZP_BYTE:317 [ bitmap_line::yd#1 ] zp ZP_BYTE:318 [ bitmap_line::yd#0 ] zp ZP_BYTE:320 [ bitmap_line::yd#3 ] zp ZP_BYTE:321 [ bitmap_line::yd#10 ] zp ZP_BYTE:316 [ bitmap_line::xd#1 ] zp ZP_BYTE:319 [ bitmap_line::xd#0 ]
Limited combination testing to 10 combinations of 186624 possible.
Uplifting [get_vic_charset] best 15167978 combination zp ZP_WORD:222 [ get_vic_charset::return#4 ] reg byte a [ get_vic_charset::idx#0 ] zp ZP_WORD:23 [ get_vic_charset::return#2 ]
Uplifting [print_ln] best 15167978 combination
Uplifting [print_set_screen] best 15167978 combination
Uplifting [keyboard_init] best 15167978 combination
Uplifting [main] best 15167978 combination
Uplifting [gfx_init] best 15167978 combination
Uplifting [gfx_init_plane_vertical2] best 15167978 combination
Uplifting [gfx_init_plane_blank] best 15167978 combination
Uplifting [gfx_init_plane_full] best 15167978 combination
Uplifting [get_vic_charset] best 15367992 combination zp ZP_WORD:222 [ get_vic_charset::return#4 ] reg byte a [ get_vic_charset::idx#0 ] zp ZP_WORD:23 [ get_vic_charset::return#2 ]
Uplifting [print_ln] best 15367992 combination
Uplifting [print_set_screen] best 15367992 combination
Uplifting [keyboard_init] best 15367992 combination
Uplifting [main] best 15367992 combination
Uplifting [gfx_init] best 15367992 combination
Uplifting [gfx_init_plane_vertical2] best 15367992 combination
Uplifting [gfx_init_plane_blank] best 15367992 combination
Uplifting [gfx_init_plane_full] best 15367992 combination
Attempting to uplift remaining variables inzp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ]
Uplifting [] best 15167978 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ]
Uplifting [] best 15367992 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:256 [ keyboard_event_scan::event_type#0 ]
Uplifting [keyboard_event_scan] best 14767978 combination reg byte a [ keyboard_event_scan::event_type#0 ]
Uplifting [keyboard_event_scan] best 14767992 combination reg byte a [ keyboard_event_scan::event_type#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:257 [ keyboard_event_scan::$11 ]
Uplifting [keyboard_event_scan] best 14167978 combination reg byte a [ keyboard_event_scan::$11 ]
Uplifting [keyboard_event_scan] best 14167992 combination reg byte a [ keyboard_event_scan::$11 ]
Attempting to uplift remaining variables inzp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
Uplifting [keyboard_event_scan] best 14167978 combination zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ]
Uplifting [keyboard_event_scan] best 14167978 combination zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ]
Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
Uplifting [keyboard_event_scan] best 14167978 combination zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ]
Uplifting [keyboard_event_scan] best 14167978 combination zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ]
Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:262 [ keyboard_matrix_read::return#0 ]
Uplifting [keyboard_matrix_read] best 14137975 combination reg byte a [ keyboard_matrix_read::return#0 ]
Uplifting [keyboard_matrix_read] best 14137989 combination reg byte a [ keyboard_matrix_read::return#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ]
Uplifting [form_field_ptr] best 14137975 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ]
Uplifting [form_field_ptr] best 14137989 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ]
Uplifting [form_render_values] best 14137975 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ]
Uplifting [form_render_values] best 14137989 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:10 [ gfx_mode::cx#2 gfx_mode::cx#1 ]
Uplifting [gfx_mode] best 14137975 combination zp ZP_BYTE:10 [ gfx_mode::cx#2 gfx_mode::cx#1 ]
Uplifting [gfx_mode] best 14137989 combination zp ZP_BYTE:10 [ gfx_mode::cx#2 gfx_mode::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ]
Uplifting [gfx_init_plane_charset8] best 14128975 combination reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ]
Uplifting [gfx_init_plane_charset8] best 14128989 combination reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ]
Uplifting [gfx_init_plane_charset8] best 14128975 combination zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ]
Uplifting [gfx_init_plane_charset8] best 14128989 combination zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ]
Uplifting [gfx_init_plane_charset8] best 14128975 combination zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ]
Uplifting [gfx_init_plane_charset8] best 14128989 combination zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Uplifting [bitmap_line_xdyi] best 14128975 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Uplifting [bitmap_line_xdyi] best 14128989 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
Uplifting [bitmap_line_ydxi] best 14128975 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
Uplifting [bitmap_line_ydxi] best 14128989 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
Uplifting [bitmap_line_xdyd] best 14128975 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
Uplifting [bitmap_line_xdyd] best 14128989 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
Uplifting [bitmap_line_ydxd] best 14128975 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
Uplifting [bitmap_line_ydxd] best 14128989 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:11 [ gfx_mode::j#2 gfx_mode::j#1 ]
Uplifting [gfx_mode] best 14127775 combination reg byte y [ gfx_mode::j#2 gfx_mode::j#1 ]
Uplifting [gfx_mode] best 14127789 combination reg byte y [ gfx_mode::j#2 gfx_mode::j#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:12 [ gfx_mode::i#2 gfx_mode::i#1 ]
Uplifting [gfx_mode] best 14126575 combination reg byte y [ gfx_mode::i#2 gfx_mode::i#1 ]
Uplifting [gfx_mode] best 14126589 combination reg byte y [ gfx_mode::i#2 gfx_mode::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:46 [ form_control::return#2 ]
Uplifting [form_control] best 14125566 combination reg byte y [ form_control::return#2 ]
Uplifting [form_control] best 14125580 combination reg byte y [ form_control::return#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Uplifting [bitmap_line_xdyi] best 14125566 combination zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Uplifting [bitmap_line_xdyi] best 14125580 combination zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Uplifting [bitmap_line_xdyd] best 14125566 combination zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Uplifting [bitmap_line_xdyd] best 14125580 combination zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ]
Uplifting [] best 14125566 combination zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ]
Uplifting [] best 14125580 combination zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
Uplifting [form_mode] best 14125566 combination zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
Uplifting [form_mode] best 14125580 combination zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:242 [ gfx_mode::keyboard_event#0 ]
Uplifting [gfx_mode] best 14124966 combination reg byte a [ gfx_mode::keyboard_event#0 ]
Uplifting [gfx_mode] best 14124980 combination reg byte a [ gfx_mode::keyboard_event#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:288 [ form_set_screen::$1 ]
Uplifting [form_set_screen] best 14124366 combination reg byte a [ form_set_screen::$1 ]
Uplifting [form_set_screen] best 14124380 combination reg byte a [ form_set_screen::$1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:344 [ gfx_init_screen3::$3 ]
Uplifting [gfx_init_screen3] best 14123766 combination reg byte a [ gfx_init_screen3::$3 ]
Uplifting [gfx_init_screen3] best 14123780 combination reg byte a [ gfx_init_screen3::$3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:349 [ gfx_init_screen2::$4 ]
Uplifting [gfx_init_screen2] best 14123166 combination reg byte a [ gfx_init_screen2::$4 ]
Uplifting [gfx_init_screen2] best 14123180 combination reg byte a [ gfx_init_screen2::$4 ]
Attempting to uplift remaining variables inzp ZP_BYTE:351 [ gfx_init_screen1::$1 ]
Uplifting [gfx_init_screen1] best 14122566 combination reg byte a [ gfx_init_screen1::$1 ]
Uplifting [gfx_init_screen1] best 14122580 combination reg byte a [ gfx_init_screen1::$1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:355 [ gfx_init_screen0::$3 ]
Uplifting [gfx_init_screen0] best 14121966 combination reg byte a [ gfx_init_screen0::$3 ]
Uplifting [gfx_init_screen0] best 14121980 combination reg byte a [ gfx_init_screen0::$3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:143 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ]
Uplifting [gfx_init_screen3] best 14120966 combination reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ]
Uplifting [gfx_init_screen3] best 14120980 combination reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ]
Uplifting [gfx_init_screen0] best 14119966 combination reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ]
Uplifting [gfx_init_screen0] best 14119980 combination reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ]
Uplifting [gfx_init_plane_horisontal2] best 14119066 combination reg byte x [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ]
Uplifting [gfx_init_plane_horisontal2] best 14119080 combination reg byte x [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:147 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ]
Uplifting [gfx_init_screen2] best 14118066 combination reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ]
Uplifting [gfx_init_screen2] best 14118080 combination reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ gfx_mode::cy#4 gfx_mode::cy#1 ]
Uplifting [gfx_mode] best 14118066 combination zp ZP_BYTE:5 [ gfx_mode::cy#4 gfx_mode::cy#1 ]
Uplifting [gfx_mode] best 14118080 combination zp ZP_BYTE:5 [ gfx_mode::cy#4 gfx_mode::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ]
Uplifting [gfx_init_plane_charset8] best 14118066 combination zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ]
Uplifting [gfx_init_plane_charset8] best 14118080 combination zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:346 [ gfx_init_screen2::col#0 ]
Uplifting [gfx_init_screen2] best 14117966 combination reg byte y [ gfx_init_screen2::col#0 ]
Uplifting [gfx_init_screen2] best 14117980 combination reg byte y [ gfx_init_screen2::col#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
Uplifting [bitmap_line_xdyi] best 14117966 combination zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
Uplifting [bitmap_line_xdyi] best 14117980 combination zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ]
Uplifting [bitmap_line_ydxi] best 14117966 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ]
Uplifting [bitmap_line_ydxi] best 14117980 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Uplifting [bitmap_line_xdyd] best 14117966 combination zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Uplifting [bitmap_line_xdyd] best 14117980 combination zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
Uplifting [bitmap_line_ydxd] best 14117966 combination zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
Uplifting [bitmap_line_ydxd] best 14117980 combination zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:342 [ gfx_init_screen3::$1 ]
Uplifting [gfx_init_screen3] best 14117966 combination zp ZP_BYTE:342 [ gfx_init_screen3::$1 ]
Uplifting [gfx_init_screen3] best 14117980 combination zp ZP_BYTE:342 [ gfx_init_screen3::$1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ]
Uplifting [gfx_init_screen2] best 14117966 combination zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ]
Uplifting [gfx_init_screen2] best 14117980 combination zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:353 [ gfx_init_screen0::$1 ]
Uplifting [gfx_init_screen0] best 14117966 combination zp ZP_BYTE:353 [ gfx_init_screen0::$1 ]
Uplifting [gfx_init_screen0] best 14117980 combination zp ZP_BYTE:353 [ gfx_init_screen0::$1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 gfx_mode::dtv_control#3 ]
Uplifting [gfx_mode] best 14117947 combination reg byte y [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 gfx_mode::dtv_control#3 ]
Uplifting [gfx_mode] best 14117961 combination reg byte y [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 gfx_mode::dtv_control#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ]
Uplifting [gfx_init_plane_horisontal2] best 14117947 combination zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ]
Uplifting [gfx_init_plane_horisontal2] best 14117961 combination zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ]
Uplifting [gfx_init_screen1] best 14117947 combination zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ]
Uplifting [gfx_init_screen1] best 14117961 combination zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ]
Uplifting [gfx_init_screen3] best 14117947 combination zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ]
Uplifting [gfx_init_screen3] best 14117961 combination zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ]
Uplifting [gfx_init_screen0] best 14117947 combination zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ]
Uplifting [gfx_init_screen0] best 14117961 combination zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ]
Uplifting [gfx_init_plane_horisontal] best 14117947 combination zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ]
Uplifting [gfx_init_plane_horisontal] best 14117961 combination zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ]
Uplifting [gfx_init_screen2] best 14117947 combination zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ]
Uplifting [gfx_init_screen2] best 14117961 combination zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ]
Uplifting [gfx_init_vic_bitmap] best 14117947 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ]
Uplifting [gfx_init_vic_bitmap] best 14117961 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ]
Uplifting [gfx_init_plane_8bppchunky] best 14117947 combination zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ]
Uplifting [gfx_init_plane_8bppchunky] best 14117961 combination zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ]
Uplifting [bitmap_init] best 14117797 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
Uplifting [bitmap_init] best 14117811 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:335 [ bitmap_init::$0 ]
Uplifting [bitmap_init] best 14117737 combination reg byte a [ bitmap_init::$0 ]
Uplifting [bitmap_init] best 14117751 combination reg byte a [ bitmap_init::$0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:337 [ bitmap_init::$7 ]
Uplifting [bitmap_init] best 14117677 combination reg byte a [ bitmap_init::$7 ]
Uplifting [bitmap_init] best 14117691 combination reg byte a [ bitmap_init::$7 ]
Attempting to uplift remaining variables inzp ZP_BYTE:338 [ bitmap_init::$8 ]
Uplifting [bitmap_init] best 14117617 combination reg byte a [ bitmap_init::$8 ]
Uplifting [bitmap_init] best 14117631 combination reg byte a [ bitmap_init::$8 ]
Attempting to uplift remaining variables inzp ZP_BYTE:339 [ bitmap_init::$9 ]
Uplifting [bitmap_init] best 14117557 combination reg byte a [ bitmap_init::$9 ]
Uplifting [bitmap_init] best 14117571 combination reg byte a [ bitmap_init::$9 ]
Attempting to uplift remaining variables inzp ZP_BYTE:340 [ bitmap_init::$10 ]
Uplifting [bitmap_init] best 14117497 combination reg byte a [ bitmap_init::$10 ]
Uplifting [bitmap_init] best 14117511 combination reg byte a [ bitmap_init::$10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ]
Uplifting [gfx_init_plane_fill] best 14117497 combination zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ]
Uplifting [gfx_init_plane_fill] best 14117511 combination zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ]
Uplifting [gfx_init_plane_vertical] best 14117497 combination zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ]
Uplifting [gfx_init_plane_vertical] best 14117511 combination zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Uplifting [bitmap_clear] best 14117497 combination zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Uplifting [bitmap_clear] best 14117511 combination zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ]
Uplifting [gfx_init_screen4] best 14117497 combination zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ]
Uplifting [gfx_init_screen4] best 14117511 combination zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ]
Uplifting [gfx_init_charset] best 14117497 combination zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ]
Uplifting [gfx_init_charset] best 14117511 combination zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ]
Uplifting [bitmap_line_xdyi] best 14117497 combination zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ]
Uplifting [bitmap_line_xdyi] best 14117511 combination zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ]
Uplifting [bitmap_line_ydxi] best 14117497 combination zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ]
Uplifting [bitmap_line_ydxi] best 14117511 combination zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ]
Uplifting [bitmap_line_xdyd] best 14117497 combination zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ]
Uplifting [bitmap_line_xdyd] best 14117511 combination zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ]
Uplifting [bitmap_line_ydxd] best 14117497 combination zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ]
Uplifting [bitmap_line_ydxd] best 14117511 combination zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ]
Uplifting [gfx_init_plane_charset8] best 14117497 combination zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ]
Uplifting [gfx_init_plane_charset8] best 14117511 combination zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ]
Uplifting [] best 14117497 combination zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ]
Uplifting [] best 14117511 combination zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ]
Uplifting [bitmap_line_xdyi] best 14117497 combination zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ]
Uplifting [bitmap_line_xdyi] best 14117511 combination zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ]
Uplifting [bitmap_line_ydxi] best 14117497 combination zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ]
Uplifting [bitmap_line_ydxi] best 14117511 combination zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ]
Uplifting [bitmap_line_xdyd] best 14117497 combination zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ]
Uplifting [bitmap_line_xdyd] best 14117511 combination zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
Uplifting [bitmap_line_ydxd] best 14117497 combination zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
Uplifting [bitmap_line_ydxd] best 14117511 combination zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ]
Uplifting [gfx_mode] best 14117486 combination reg byte y [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ]
Uplifting [gfx_mode] best 14117500 combination reg byte y [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:336 [ bitmap_init::$6 ]
Uplifting [bitmap_init] best 14117486 combination zp ZP_BYTE:336 [ bitmap_init::$6 ]
Uplifting [bitmap_init] best 14117500 combination zp ZP_BYTE:336 [ bitmap_init::$6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
Uplifting [bitmap_line_xdyi] best 14117486 combination zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
Uplifting [bitmap_line_xdyi] best 14117500 combination zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ]
Uplifting [bitmap_line_ydxi] best 14117486 combination zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ]
Uplifting [bitmap_line_ydxi] best 14117500 combination zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
Uplifting [bitmap_line_xdyd] best 14117486 combination zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
Uplifting [bitmap_line_xdyd] best 14117500 combination zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
Uplifting [bitmap_line_ydxd] best 14117486 combination zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
Uplifting [bitmap_line_ydxd] best 14117500 combination zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ]
Uplifting [gfx_init_plane_fill] best 14117486 combination zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ]
Uplifting [gfx_init_plane_fill] best 14117500 combination zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:158 [ gfx_mode::$29 ]
Uplifting [gfx_mode] best 14117480 combination reg byte a [ gfx_mode::$29 ]
Uplifting [gfx_mode] best 14117494 combination reg byte a [ gfx_mode::$29 ]
Attempting to uplift remaining variables inzp ZP_BYTE:174 [ gfx_mode::$34 ]
Uplifting [gfx_mode] best 14117474 combination reg byte a [ gfx_mode::$34 ]
Uplifting [gfx_mode] best 14117488 combination reg byte a [ gfx_mode::$34 ]
Attempting to uplift remaining variables inzp ZP_BYTE:177 [ gfx_mode::$36 ]
Uplifting [gfx_mode] best 14117468 combination reg byte a [ gfx_mode::$36 ]
Uplifting [gfx_mode] best 14117482 combination reg byte a [ gfx_mode::$36 ]
Attempting to uplift remaining variables inzp ZP_BYTE:180 [ gfx_mode::$38 ]
Uplifting [gfx_mode] best 14117462 combination reg byte a [ gfx_mode::$38 ]
Uplifting [gfx_mode] best 14117476 combination reg byte a [ gfx_mode::$38 ]
Attempting to uplift remaining variables inzp ZP_BYTE:181 [ gfx_mode::$39 ]
Uplifting [gfx_mode] best 14117456 combination reg byte a [ gfx_mode::$39 ]
Uplifting [gfx_mode] best 14117470 combination reg byte a [ gfx_mode::$39 ]
Attempting to uplift remaining variables inzp ZP_BYTE:182 [ gfx_mode::$40 ]
Uplifting [gfx_mode] best 14117450 combination reg byte a [ gfx_mode::$40 ]
Uplifting [gfx_mode] best 14117464 combination reg byte a [ gfx_mode::$40 ]
Attempting to uplift remaining variables inzp ZP_BYTE:183 [ gfx_mode::$41 ]
Uplifting [gfx_mode] best 14117444 combination reg byte a [ gfx_mode::$41 ]
Uplifting [gfx_mode] best 14117458 combination reg byte a [ gfx_mode::$41 ]
Attempting to uplift remaining variables inzp ZP_BYTE:184 [ gfx_mode::$42 ]
Uplifting [gfx_mode] best 14117438 combination reg byte a [ gfx_mode::$42 ]
Uplifting [gfx_mode] best 14117452 combination reg byte a [ gfx_mode::$42 ]
Attempting to uplift remaining variables inzp ZP_BYTE:185 [ gfx_mode::$43 ]
Uplifting [gfx_mode] best 14117432 combination reg byte a [ gfx_mode::$43 ]
Uplifting [gfx_mode] best 14117446 combination reg byte a [ gfx_mode::$43 ]
Attempting to uplift remaining variables inzp ZP_BYTE:201 [ gfx_mode::$48 ]
Uplifting [gfx_mode] best 14117426 combination reg byte a [ gfx_mode::$48 ]
Uplifting [gfx_mode] best 14117440 combination reg byte a [ gfx_mode::$48 ]
Attempting to uplift remaining variables inzp ZP_BYTE:204 [ gfx_mode::$50 ]
Uplifting [gfx_mode] best 14117420 combination reg byte a [ gfx_mode::$50 ]
Uplifting [gfx_mode] best 14117434 combination reg byte a [ gfx_mode::$50 ]
Attempting to uplift remaining variables inzp ZP_BYTE:207 [ gfx_mode::$52 ]
Uplifting [gfx_mode] best 14117414 combination reg byte a [ gfx_mode::$52 ]
Uplifting [gfx_mode] best 14117428 combination reg byte a [ gfx_mode::$52 ]
Attempting to uplift remaining variables inzp ZP_BYTE:208 [ gfx_mode::$53 ]
Uplifting [gfx_mode] best 14117408 combination reg byte a [ gfx_mode::$53 ]
Uplifting [gfx_mode] best 14117422 combination reg byte a [ gfx_mode::$53 ]
Attempting to uplift remaining variables inzp ZP_BYTE:209 [ gfx_mode::$54 ]
Uplifting [gfx_mode] best 14117402 combination reg byte a [ gfx_mode::$54 ]
Uplifting [gfx_mode] best 14117416 combination reg byte a [ gfx_mode::$54 ]
Attempting to uplift remaining variables inzp ZP_BYTE:210 [ gfx_mode::$55 ]
Uplifting [gfx_mode] best 14117396 combination reg byte a [ gfx_mode::$55 ]
Uplifting [gfx_mode] best 14117410 combination reg byte a [ gfx_mode::$55 ]
Attempting to uplift remaining variables inzp ZP_BYTE:211 [ gfx_mode::$56 ]
Uplifting [gfx_mode] best 14117390 combination reg byte a [ gfx_mode::$56 ]
Uplifting [gfx_mode] best 14117404 combination reg byte a [ gfx_mode::$56 ]
Attempting to uplift remaining variables inzp ZP_BYTE:228 [ gfx_mode::$69 ]
Uplifting [gfx_mode] best 14117384 combination reg byte a [ gfx_mode::$69 ]
Uplifting [gfx_mode] best 14117398 combination reg byte a [ gfx_mode::$69 ]
Attempting to uplift remaining variables inzp ZP_BYTE:229 [ gfx_mode::$70 ]
Uplifting [gfx_mode] best 14117378 combination reg byte a [ gfx_mode::$70 ]
Uplifting [gfx_mode] best 14117392 combination reg byte a [ gfx_mode::$70 ]
Attempting to uplift remaining variables inzp ZP_BYTE:230 [ gfx_mode::$71 ]
Uplifting [gfx_mode] best 14117372 combination reg byte a [ gfx_mode::$71 ]
Uplifting [gfx_mode] best 14117386 combination reg byte a [ gfx_mode::$71 ]
Attempting to uplift remaining variables inzp ZP_BYTE:233 [ gfx_mode::$75 ]
Uplifting [gfx_mode] best 14117366 combination reg byte a [ gfx_mode::$75 ]
Uplifting [gfx_mode] best 14117380 combination reg byte a [ gfx_mode::$75 ]
Attempting to uplift remaining variables inzp ZP_BYTE:234 [ gfx_mode::$76 ]
Uplifting [gfx_mode] best 14117360 combination reg byte a [ gfx_mode::$76 ]
Uplifting [gfx_mode] best 14117374 combination reg byte a [ gfx_mode::$76 ]
Attempting to uplift remaining variables inzp ZP_BYTE:235 [ gfx_mode::$77 ]
Uplifting [gfx_mode] best 14117354 combination reg byte a [ gfx_mode::$77 ]
Uplifting [gfx_mode] best 14117368 combination reg byte a [ gfx_mode::$77 ]
Attempting to uplift remaining variables inzp ZP_BYTE:236 [ gfx_mode::$78 ]
Uplifting [gfx_mode] best 14117348 combination reg byte a [ gfx_mode::$78 ]
Uplifting [gfx_mode] best 14117362 combination reg byte a [ gfx_mode::$78 ]
Attempting to uplift remaining variables inzp ZP_BYTE:237 [ gfx_mode::$79 ]
Uplifting [gfx_mode] best 14117342 combination reg byte a [ gfx_mode::$79 ]
Uplifting [gfx_mode] best 14117356 combination reg byte a [ gfx_mode::$79 ]
Attempting to uplift remaining variables inzp ZP_BYTE:238 [ gfx_mode::$80 ]
Uplifting [gfx_mode] best 14117336 combination reg byte a [ gfx_mode::$80 ]
Uplifting [gfx_mode] best 14117350 combination reg byte a [ gfx_mode::$80 ]
Attempting to uplift remaining variables inzp ZP_BYTE:239 [ gfx_mode::$81 ]
Uplifting [gfx_mode] best 14117330 combination reg byte a [ gfx_mode::$81 ]
Uplifting [gfx_mode] best 14117344 combination reg byte a [ gfx_mode::$81 ]
Attempting to uplift remaining variables inzp ZP_BYTE:240 [ gfx_mode::$82 ]
Uplifting [gfx_mode] best 14117324 combination reg byte a [ gfx_mode::$82 ]
Uplifting [gfx_mode] best 14117338 combination reg byte a [ gfx_mode::$82 ]
Attempting to uplift remaining variables inzp ZP_BYTE:247 [ keyboard_event_scan::$14 ]
Uplifting [keyboard_event_scan] best 14117320 combination reg byte a [ keyboard_event_scan::$14 ]
Uplifting [keyboard_event_scan] best 14117332 combination reg byte a [ keyboard_event_scan::$14 ]
Attempting to uplift remaining variables inzp ZP_BYTE:249 [ keyboard_event_scan::$18 ]
Uplifting [keyboard_event_scan] best 14117316 combination reg byte a [ keyboard_event_scan::$18 ]
Uplifting [keyboard_event_scan] best 14117326 combination reg byte a [ keyboard_event_scan::$18 ]
Attempting to uplift remaining variables inzp ZP_BYTE:250 [ keyboard_event_pressed::return#2 ]
Uplifting [keyboard_event_pressed] best 14117310 combination reg byte a [ keyboard_event_pressed::return#2 ]
Uplifting [keyboard_event_pressed] best 14117320 combination reg byte a [ keyboard_event_pressed::return#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:251 [ keyboard_event_scan::$22 ]
Uplifting [keyboard_event_scan] best 14117306 combination reg byte a [ keyboard_event_scan::$22 ]
Uplifting [keyboard_event_scan] best 14117314 combination reg byte a [ keyboard_event_scan::$22 ]
Attempting to uplift remaining variables inzp ZP_BYTE:252 [ keyboard_event_pressed::return#3 ]
Uplifting [keyboard_event_pressed] best 14117300 combination reg byte a [ keyboard_event_pressed::return#3 ]
Uplifting [keyboard_event_pressed] best 14117308 combination reg byte a [ keyboard_event_pressed::return#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:253 [ keyboard_event_scan::$26 ]
Uplifting [keyboard_event_scan] best 14117296 combination reg byte a [ keyboard_event_scan::$26 ]
Uplifting [keyboard_event_scan] best 14117302 combination reg byte a [ keyboard_event_scan::$26 ]
Attempting to uplift remaining variables inzp ZP_BYTE:258 [ keyboard_event_pressed::$0 ]
Uplifting [keyboard_event_pressed] best 14117292 combination reg byte a [ keyboard_event_pressed::$0 ]
Uplifting [keyboard_event_pressed] best 14117298 combination reg byte a [ keyboard_event_pressed::$0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:260 [ keyboard_event_pressed::$1 ]
Uplifting [keyboard_event_pressed] best 14117288 combination reg byte a [ keyboard_event_pressed::$1 ]
Uplifting [keyboard_event_pressed] best 14117294 combination reg byte a [ keyboard_event_pressed::$1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:273 [ form_field_ptr::x#0 ]
Uplifting [form_field_ptr] best 14117282 combination reg byte a [ form_field_ptr::x#0 ]
Uplifting [form_field_ptr] best 14117288 combination reg byte a [ form_field_ptr::x#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:280 [ form_control::$5 ]
Uplifting [form_control] best 14117276 combination reg byte a [ form_control::$5 ]
Uplifting [form_control] best 14117282 combination reg byte a [ form_control::$5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:281 [ keyboard_event_get::return#4 ]
Uplifting [keyboard_event_get] best 14117270 combination reg byte a [ keyboard_event_get::return#4 ]
Uplifting [keyboard_event_get] best 14117276 combination reg byte a [ keyboard_event_get::return#4 ]
Attempting to uplift remaining variables inzp ZP_BYTE:283 [ form_control::$11 ]
Uplifting [form_control] best 14117264 combination reg byte a [ form_control::$11 ]
Uplifting [form_control] best 14117270 combination reg byte a [ form_control::$11 ]
Attempting to uplift remaining variables inzp ZP_BYTE:284 [ form_control::$12 ]
Uplifting [form_control] best 14117260 combination reg byte a [ form_control::$12 ]
Uplifting [form_control] best 14117264 combination reg byte a [ form_control::$12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:285 [ form_control::$22 ]
Uplifting [form_control] best 14117256 combination reg byte a [ form_control::$22 ]
Uplifting [form_control] best 14117258 combination reg byte a [ form_control::$22 ]
Attempting to uplift remaining variables inzp ZP_BYTE:286 [ form_control::$6 ]
Uplifting [form_control] best 14117250 combination reg byte a [ form_control::$6 ]
Uplifting [form_control] best 14117252 combination reg byte a [ form_control::$6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:329 [ bitmap_plot::$1 ]
Uplifting [bitmap_plot] best 14117244 combination reg byte a [ bitmap_plot::$1 ]
Uplifting [bitmap_plot] best 14117246 combination reg byte a [ bitmap_plot::$1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:282 [ form_control::key_event#0 ]
Uplifting [form_control] best 14117232 combination reg byte a [ form_control::key_event#0 ]
Uplifting [form_control] best 14117234 combination reg byte a [ form_control::key_event#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:4 [ gfx_mode::vic_control2#2 ]
Uplifting [gfx_mode] best 14117223 combination reg byte a [ gfx_mode::vic_control2#2 ]
Uplifting [gfx_mode] best 14117225 combination reg byte a [ gfx_mode::vic_control2#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ]
Uplifting [keyboard_event_pressed] best 14117223 combination zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ]
Uplifting [keyboard_event_pressed] best 14117225 combination zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:314 [ bitmap_line::y0#0 ]
Uplifting [bitmap_line] best 14117223 combination zp ZP_BYTE:314 [ bitmap_line::y0#0 ]
Uplifting [bitmap_line] best 14117225 combination zp ZP_BYTE:314 [ bitmap_line::y0#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:261 [ keyboard_event_pressed::return#10 ]
Uplifting [keyboard_event_pressed] best 14117208 combination reg byte a [ keyboard_event_pressed::return#10 ]
Uplifting [keyboard_event_pressed] best 14117210 combination reg byte a [ keyboard_event_pressed::return#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ]
Uplifting [keyboard_event_pressed] best 14117208 combination zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ]
Uplifting [keyboard_event_pressed] best 14117210 combination zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ]
Attempting to uplift remaining variables inzp ZP_BYTE:313 [ bitmap_line::x1#0 ]
Uplifting [bitmap_line] best 14117208 combination zp ZP_BYTE:313 [ bitmap_line::x1#0 ]
Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:313 [ bitmap_line::x1#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:312 [ bitmap_line::x0#0 ]
Uplifting [bitmap_line] best 14117208 combination zp ZP_BYTE:312 [ bitmap_line::x0#0 ]
Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:312 [ bitmap_line::x0#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:317 [ bitmap_line::yd#1 ]
Uplifting [bitmap_line] best 14117208 combination zp ZP_BYTE:317 [ bitmap_line::yd#1 ]
Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:317 [ bitmap_line::yd#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:318 [ bitmap_line::yd#0 ]
Uplifting [bitmap_line] best 14117208 combination zp ZP_BYTE:318 [ bitmap_line::yd#0 ]
Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:318 [ bitmap_line::yd#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:320 [ bitmap_line::yd#3 ]
Uplifting [bitmap_line] best 14117208 combination zp ZP_BYTE:320 [ bitmap_line::yd#3 ]
Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:320 [ bitmap_line::yd#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:321 [ bitmap_line::yd#10 ]
Uplifting [bitmap_line] best 14117208 combination zp ZP_BYTE:321 [ bitmap_line::yd#10 ]
Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:321 [ bitmap_line::yd#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:159 [ gfx_mode::plane_a_offs#0 ]
Uplifting [gfx_mode] best 14117206 combination reg byte y [ gfx_mode::plane_a_offs#0 ]
Uplifting [gfx_mode] best 14117208 combination reg byte y [ gfx_mode::plane_a_offs#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:186 [ gfx_mode::plane_b_offs#0 ]
Uplifting [gfx_mode] best 14117204 combination reg byte y [ gfx_mode::plane_b_offs#0 ]
Uplifting [gfx_mode] best 14117206 combination reg byte y [ gfx_mode::plane_b_offs#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:316 [ bitmap_line::xd#1 ]
Uplifting [bitmap_line] best 14117204 combination zp ZP_BYTE:316 [ bitmap_line::xd#1 ]
Uplifting [bitmap_line] best 14117206 combination zp ZP_BYTE:316 [ bitmap_line::xd#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:319 [ bitmap_line::xd#0 ]
Uplifting [bitmap_line] best 14117204 combination zp ZP_BYTE:319 [ bitmap_line::xd#0 ]
Uplifting [bitmap_line] best 14117206 combination zp ZP_BYTE:319 [ bitmap_line::xd#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:220 [ gfx_mode::$65 ]
Uplifting [gfx_mode] best 14117204 combination zp ZP_BYTE:220 [ gfx_mode::$65 ]
Uplifting [gfx_mode] best 14117206 combination zp ZP_BYTE:220 [ gfx_mode::$65 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ gfx_mode::vic_colors#2 gfx_mode::vic_colors#3 gfx_mode::vic_colors#1 gfx_mode::vic_colors#0 ] ] with [ zp ZP_WORD:231 [ get_vic_screen::return#11 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ get_vic_screen::return#5 ] ] with [ zp ZP_WORD:212 [ get_vic_screen::return#10 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ get_vic_charset::return#2 ] ] with [ zp ZP_WORD:222 [ get_vic_charset::return#4 ] ] - score: 1
@ -20809,6 +20826,7 @@ gfx_mode: {
keyboard_event_get: {
//SEG253 [154] if((byte) keyboard_events_size#100==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1
lda keyboard_events_size
cmp #0
beq breturn_from_keyboard_event_get
jmp b3
//SEG254 keyboard_event_get::@3
@ -26150,18 +26168,18 @@ Removing instruction b37:
Succesful ASM optimization Pass5UnusedLabelElimination
Removing unreachable instruction jmp b7
Succesful ASM optimization Pass5UnreachableCodeElimination
Fixing long branch [686] beq b5 to bne
Fixing long branch [690] beq b6 to bne
Fixing long branch [694] beq b7 to bne
Fixing long branch [698] beq b8 to bne
Fixing long branch [684] beq b4 to bne
Fixing long branch [704] beq b9 to bne
Fixing long branch [708] beq b10 to bne
Fixing long branch [712] beq b11 to bne
Fixing long branch [716] beq b12 to bne
Fixing long branch [682] beq b3 to bne
Fixing long branch [722] beq b13 to bne
Fixing long branch [1246] bmi b2 to bpl
Fixing long branch [687] beq b5 to bne
Fixing long branch [691] beq b6 to bne
Fixing long branch [695] beq b7 to bne
Fixing long branch [699] beq b8 to bne
Fixing long branch [685] beq b4 to bne
Fixing long branch [705] beq b9 to bne
Fixing long branch [709] beq b10 to bne
Fixing long branch [713] beq b11 to bne
Fixing long branch [717] beq b12 to bne
Fixing long branch [683] beq b3 to bne
Fixing long branch [723] beq b13 to bne
Fixing long branch [1247] bmi b2 to bpl
FINAL SYMBOL TABLE
(label) @67
@ -27690,7 +27708,7 @@ reg byte a [ gfx_init_screen0::$3 ]
FINAL ASSEMBLER
Score: 11370475
Score: 11370477
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -28432,6 +28450,7 @@ gfx_mode: {
keyboard_event_get: {
//SEG253 [154] if((byte) keyboard_events_size#100==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1
lda keyboard_events_size
cmp #0
beq b1
//SEG254 keyboard_event_get::@3
//SEG255 [155] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#100 -- vbuz1=_dec_vbuz1

View File

@ -11955,6 +11955,7 @@ menu: {
sta _29
//SEG63 [38] if((byte~) menu::$29==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@6 -- vbuz1_eq_0_then_la1
lda _29
cmp #0
beq b6_from_b50
//SEG64 [39] phi from menu::@50 to menu::@22 [phi:menu::@50->menu::@22]
b22_from_b50:
@ -11991,6 +11992,7 @@ menu: {
sta _33
//SEG77 [46] if((byte~) menu::$33==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@7 -- vbuz1_eq_0_then_la1
lda _33
cmp #0
beq b7_from_b51
//SEG78 [47] phi from menu::@51 to menu::@24 [phi:menu::@51->menu::@24]
b24_from_b51:
@ -12023,6 +12025,7 @@ menu: {
sta _37
//SEG89 [53] if((byte~) menu::$37==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@8 -- vbuz1_eq_0_then_la1
lda _37
cmp #0
beq b8_from_b53
//SEG90 [54] phi from menu::@53 to menu::@26 [phi:menu::@53->menu::@26]
b26_from_b53:
@ -12055,6 +12058,7 @@ menu: {
sta _41
//SEG101 [60] if((byte~) menu::$41==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@9 -- vbuz1_eq_0_then_la1
lda _41
cmp #0
beq b9_from_b55
//SEG102 [61] phi from menu::@55 to menu::@28 [phi:menu::@55->menu::@28]
b28_from_b55:
@ -12087,6 +12091,7 @@ menu: {
sta _45
//SEG113 [67] if((byte~) menu::$45==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@10 -- vbuz1_eq_0_then_la1
lda _45
cmp #0
beq b10_from_b57
//SEG114 [68] phi from menu::@57 to menu::@30 [phi:menu::@57->menu::@30]
b30_from_b57:
@ -12119,6 +12124,7 @@ menu: {
sta _49
//SEG125 [74] if((byte~) menu::$49==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@11 -- vbuz1_eq_0_then_la1
lda _49
cmp #0
beq b11_from_b59
//SEG126 [75] phi from menu::@59 to menu::@32 [phi:menu::@59->menu::@32]
b32_from_b59:
@ -12151,6 +12157,7 @@ menu: {
sta _53
//SEG137 [81] if((byte~) menu::$53==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@12 -- vbuz1_eq_0_then_la1
lda _53
cmp #0
beq b12_from_b61
//SEG138 [82] phi from menu::@61 to menu::@34 [phi:menu::@61->menu::@34]
b34_from_b61:
@ -12183,6 +12190,7 @@ menu: {
sta _57
//SEG149 [88] if((byte~) menu::$57==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@13 -- vbuz1_eq_0_then_la1
lda _57
cmp #0
beq b13_from_b63
//SEG150 [89] phi from menu::@63 to menu::@36 [phi:menu::@63->menu::@36]
b36_from_b63:
@ -12215,6 +12223,7 @@ menu: {
sta _61
//SEG161 [95] if((byte~) menu::$61==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@14 -- vbuz1_eq_0_then_la1
lda _61
cmp #0
beq b14_from_b65
//SEG162 [96] phi from menu::@65 to menu::@38 [phi:menu::@65->menu::@38]
b38_from_b65:
@ -12247,6 +12256,7 @@ menu: {
sta _65
//SEG173 [102] if((byte~) menu::$65==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@15 -- vbuz1_eq_0_then_la1
lda _65
cmp #0
beq b15_from_b67
//SEG174 [103] phi from menu::@67 to menu::@40 [phi:menu::@67->menu::@40]
b40_from_b67:
@ -12279,6 +12289,7 @@ menu: {
sta _69
//SEG185 [109] if((byte~) menu::$69==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@16 -- vbuz1_eq_0_then_la1
lda _69
cmp #0
beq b16_from_b69
//SEG186 [110] phi from menu::@69 to menu::@42 [phi:menu::@69->menu::@42]
b42_from_b69:
@ -12311,6 +12322,7 @@ menu: {
sta _73
//SEG197 [116] if((byte~) menu::$73==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@4 -- vbuz1_eq_0_then_la1
lda _73
cmp #0
beq b4_from_b71
//SEG198 [117] phi from menu::@71 to menu::@44 [phi:menu::@71->menu::@44]
b44_from_b71:
@ -12596,6 +12608,7 @@ mode_ctrl: {
sta _1
//SEG294 [162] if((byte~) mode_ctrl::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@7 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b7
jmp breturn
//SEG295 mode_ctrl::@return
@ -12625,6 +12638,7 @@ mode_ctrl: {
sta _4
//SEG305 [168] if((byte~) mode_ctrl::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@8 -- vbuz1_eq_0_then_la1
lda _4
cmp #0
beq b8_from_b33
jmp b23
//SEG306 mode_ctrl::@23
@ -12658,6 +12672,7 @@ mode_ctrl: {
sta _8
//SEG317 [174] if((byte~) mode_ctrl::$8==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@9 -- vbuz1_eq_0_then_la1
lda _8
cmp #0
beq b9_from_b34
jmp b24
//SEG318 mode_ctrl::@24
@ -12691,6 +12706,7 @@ mode_ctrl: {
sta _12
//SEG329 [180] if((byte~) mode_ctrl::$12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@10 -- vbuz1_eq_0_then_la1
lda _12
cmp #0
beq b10_from_b35
jmp b25
//SEG330 mode_ctrl::@25
@ -12724,6 +12740,7 @@ mode_ctrl: {
sta _16
//SEG341 [186] if((byte~) mode_ctrl::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@11 -- vbuz1_eq_0_then_la1
lda _16
cmp #0
beq b11_from_b36
jmp b26
//SEG342 mode_ctrl::@26
@ -12757,6 +12774,7 @@ mode_ctrl: {
sta _20
//SEG353 [192] if((byte~) mode_ctrl::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@12 -- vbuz1_eq_0_then_la1
lda _20
cmp #0
beq b12_from_b37
jmp b27
//SEG354 mode_ctrl::@27
@ -12790,6 +12808,7 @@ mode_ctrl: {
sta _24
//SEG365 [198] if((byte~) mode_ctrl::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@13 -- vbuz1_eq_0_then_la1
lda _24
cmp #0
beq b13_from_b38
jmp b28
//SEG366 mode_ctrl::@28
@ -12823,6 +12842,7 @@ mode_ctrl: {
sta _28
//SEG377 [204] if((byte~) mode_ctrl::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@46 -- vbuz1_eq_0_then_la1
lda _28
cmp #0
beq b46_from_b39
//SEG378 [205] phi from mode_ctrl::@39 to mode_ctrl::@14 [phi:mode_ctrl::@39->mode_ctrl::@14]
b14_from_b39:
@ -13208,6 +13228,7 @@ mode_8bpppixelcell: {
sta _19
//SEG499 [266] if((byte~) mode_8bpppixelcell::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@7 -- vbuz1_eq_0_then_la1
lda _19
cmp #0
beq b7_from_b6
jmp b11
//SEG500 mode_8bpppixelcell::@11
@ -13803,6 +13824,7 @@ mode_twoplanebitmap: {
sta _21
//SEG698 [374] if((byte~) mode_twoplanebitmap::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@6 -- vbuz1_eq_0_then_la1
lda _21
cmp #0
beq b6
jmp b13
//SEG699 mode_twoplanebitmap::@13
@ -17801,320 +17823,320 @@ Uplift Scope [print_ln]
Uplift Scope [print_set_screen]
Uplift Scope [main]
Uplifting [mode_8bpppixelcell] best 3612302 combination reg byte a [ mode_8bpppixelcell::c#2 mode_8bpppixelcell::c#3 ] reg byte a [ mode_8bpppixelcell::$19 ] zp ZP_BYTE:29 [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] zp ZP_WORD:26 [ mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::gfxb#7 mode_8bpppixelcell::gfxb#1 ] zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] zp ZP_BYTE:211 [ mode_8bpppixelcell::$13 ] zp ZP_BYTE:213 [ mode_8bpppixelcell::$15 ] zp ZP_BYTE:214 [ mode_8bpppixelcell::$16 ] zp ZP_BYTE:18 [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] zp ZP_WORD:22 [ mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 ] zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] zp ZP_WORD:19 [ mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::gfxa#1 ] zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] zp ZP_BYTE:16 [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] zp ZP_BYTE:21 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ]
Uplifting [mode_8bpppixelcell] best 3632702 combination reg byte a [ mode_8bpppixelcell::c#2 mode_8bpppixelcell::c#3 ] reg byte a [ mode_8bpppixelcell::$19 ] zp ZP_BYTE:29 [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] zp ZP_WORD:26 [ mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::gfxb#7 mode_8bpppixelcell::gfxb#1 ] zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] zp ZP_BYTE:211 [ mode_8bpppixelcell::$13 ] zp ZP_BYTE:213 [ mode_8bpppixelcell::$15 ] zp ZP_BYTE:214 [ mode_8bpppixelcell::$16 ] zp ZP_BYTE:18 [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] zp ZP_WORD:22 [ mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 ] zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] zp ZP_WORD:19 [ mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::gfxa#1 ] zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] zp ZP_BYTE:16 [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] zp ZP_BYTE:21 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ]
Limited combination testing to 10 combinations of 1572864 possible.
Uplifting [mode_ctrl] best 3586402 combination reg byte x [ mode_ctrl::ctrl#14 mode_ctrl::ctrl#22 mode_ctrl::ctrl#6 mode_ctrl::ctrl#13 mode_ctrl::ctrl#5 mode_ctrl::ctrl#12 mode_ctrl::ctrl#4 mode_ctrl::ctrl#11 mode_ctrl::ctrl#3 mode_ctrl::ctrl#10 mode_ctrl::ctrl#2 mode_ctrl::ctrl#17 mode_ctrl::ctrl#1 mode_ctrl::ctrl#0 ] reg byte a [ mode_ctrl::$1 ] zp ZP_BYTE:191 [ mode_ctrl::$4 ] zp ZP_BYTE:193 [ mode_ctrl::$8 ] zp ZP_BYTE:195 [ mode_ctrl::$12 ] zp ZP_BYTE:197 [ mode_ctrl::$16 ] zp ZP_BYTE:199 [ mode_ctrl::$20 ] zp ZP_BYTE:201 [ mode_ctrl::$24 ] zp ZP_BYTE:203 [ mode_ctrl::$28 ]
Uplifting [mode_ctrl] best 3604802 combination reg byte x [ mode_ctrl::ctrl#14 mode_ctrl::ctrl#22 mode_ctrl::ctrl#6 mode_ctrl::ctrl#13 mode_ctrl::ctrl#5 mode_ctrl::ctrl#12 mode_ctrl::ctrl#4 mode_ctrl::ctrl#11 mode_ctrl::ctrl#3 mode_ctrl::ctrl#10 mode_ctrl::ctrl#2 mode_ctrl::ctrl#17 mode_ctrl::ctrl#1 mode_ctrl::ctrl#0 ] reg byte a [ mode_ctrl::$1 ] zp ZP_BYTE:191 [ mode_ctrl::$4 ] zp ZP_BYTE:193 [ mode_ctrl::$8 ] zp ZP_BYTE:195 [ mode_ctrl::$12 ] zp ZP_BYTE:197 [ mode_ctrl::$16 ] zp ZP_BYTE:199 [ mode_ctrl::$20 ] zp ZP_BYTE:201 [ mode_ctrl::$24 ] zp ZP_BYTE:203 [ mode_ctrl::$28 ]
Limited combination testing to 10 combinations of 196608 possible.
Uplifting [mode_twoplanebitmap] best 3571402 combination zp ZP_WORD:50 [ mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 ] zp ZP_WORD:54 [ mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 ] reg byte x [ mode_twoplanebitmap::bx#2 mode_twoplanebitmap::bx#1 ] reg byte a [ mode_twoplanebitmap::$15 ] zp ZP_BYTE:222 [ mode_twoplanebitmap::$17 ] zp ZP_BYTE:223 [ mode_twoplanebitmap::$18 ] zp ZP_BYTE:224 [ mode_twoplanebitmap::$21 ] zp ZP_BYTE:46 [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] zp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] zp ZP_WORD:47 [ mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 ] zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] zp ZP_BYTE:44 [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ]
Uplifting [mode_twoplanebitmap] best 3589802 combination zp ZP_WORD:50 [ mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 ] zp ZP_WORD:54 [ mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 ] reg byte x [ mode_twoplanebitmap::bx#2 mode_twoplanebitmap::bx#1 ] reg byte a [ mode_twoplanebitmap::$15 ] zp ZP_BYTE:222 [ mode_twoplanebitmap::$17 ] zp ZP_BYTE:223 [ mode_twoplanebitmap::$18 ] zp ZP_BYTE:224 [ mode_twoplanebitmap::$21 ] zp ZP_BYTE:46 [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] zp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] zp ZP_WORD:47 [ mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 ] zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] zp ZP_BYTE:44 [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ]
Limited combination testing to 10 combinations of 196608 possible.
Uplifting [mode_sixsfred2] best 3556402 combination zp ZP_WORD:67 [ mode_sixsfred2::gfxb#2 mode_sixsfred2::gfxb#3 mode_sixsfred2::gfxb#1 ] reg byte x [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] reg byte a [ mode_sixsfred2::$14 ] zp ZP_BYTE:227 [ mode_sixsfred2::$16 ] zp ZP_BYTE:228 [ mode_sixsfred2::$17 ] zp ZP_BYTE:229 [ mode_sixsfred2::$20 ] zp ZP_BYTE:230 [ mode_sixsfred2::row#0 ] zp ZP_BYTE:59 [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] zp ZP_BYTE:65 [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] zp ZP_WORD:63 [ mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 ] zp ZP_WORD:60 [ mode_sixsfred2::col#2 mode_sixsfred2::col#3 mode_sixsfred2::col#1 ] zp ZP_BYTE:226 [ mode_sixsfred2::$15 ] zp ZP_BYTE:57 [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ]
Uplifting [mode_sixsfred2] best 3574802 combination zp ZP_WORD:67 [ mode_sixsfred2::gfxb#2 mode_sixsfred2::gfxb#3 mode_sixsfred2::gfxb#1 ] reg byte x [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] reg byte a [ mode_sixsfred2::$14 ] zp ZP_BYTE:227 [ mode_sixsfred2::$16 ] zp ZP_BYTE:228 [ mode_sixsfred2::$17 ] zp ZP_BYTE:229 [ mode_sixsfred2::$20 ] zp ZP_BYTE:230 [ mode_sixsfred2::row#0 ] zp ZP_BYTE:59 [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] zp ZP_BYTE:65 [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] zp ZP_WORD:63 [ mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 ] zp ZP_WORD:60 [ mode_sixsfred2::col#2 mode_sixsfred2::col#3 mode_sixsfred2::col#1 ] zp ZP_BYTE:226 [ mode_sixsfred2::$15 ] zp ZP_BYTE:57 [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ]
Limited combination testing to 10 combinations of 786432 possible.
Uplifting [mode_sixsfred] best 3531402 combination zp ZP_WORD:41 [ mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 ] reg byte x [ mode_sixsfred::bx#2 mode_sixsfred::bx#1 ] reg byte x [ mode_sixsfred::cx#2 mode_sixsfred::cx#1 ] reg byte a [ mode_sixsfred::$16 ] zp ZP_BYTE:217 [ mode_sixsfred::$17 ] zp ZP_BYTE:218 [ mode_sixsfred::$20 ] zp ZP_BYTE:219 [ mode_sixsfred::row#0 ] zp ZP_BYTE:39 [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] zp ZP_WORD:34 [ mode_sixsfred::col#2 mode_sixsfred::col#3 mode_sixsfred::col#1 ] zp ZP_WORD:37 [ mode_sixsfred::gfxa#2 mode_sixsfred::gfxa#3 mode_sixsfred::gfxa#1 ] zp ZP_BYTE:31 [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ]
Uplifting [mode_sixsfred] best 3549802 combination zp ZP_WORD:41 [ mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 ] reg byte x [ mode_sixsfred::bx#2 mode_sixsfred::bx#1 ] reg byte x [ mode_sixsfred::cx#2 mode_sixsfred::cx#1 ] reg byte a [ mode_sixsfred::$16 ] zp ZP_BYTE:217 [ mode_sixsfred::$17 ] zp ZP_BYTE:218 [ mode_sixsfred::$20 ] zp ZP_BYTE:219 [ mode_sixsfred::row#0 ] zp ZP_BYTE:39 [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] zp ZP_WORD:34 [ mode_sixsfred::col#2 mode_sixsfred::col#3 mode_sixsfred::col#1 ] zp ZP_WORD:37 [ mode_sixsfred::gfxa#2 mode_sixsfred::gfxa#3 mode_sixsfred::gfxa#1 ] zp ZP_BYTE:31 [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ]
Limited combination testing to 10 combinations of 65536 possible.
Uplifting [mode_stdchar] best 3519402 combination reg byte a [ mode_stdchar::$24 ] reg byte a [ mode_stdchar::$25 ] zp ZP_BYTE:291 [ mode_stdchar::$26 ] zp ZP_BYTE:293 [ mode_stdchar::$28 ] zp ZP_BYTE:294 [ mode_stdchar::$29 ] zp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] zp ZP_WORD:149 [ mode_stdchar::col#2 mode_stdchar::col#3 mode_stdchar::col#1 ] zp ZP_BYTE:292 [ mode_stdchar::$27 ] zp ZP_WORD:151 [ mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 ] zp ZP_BYTE:146 [ mode_stdchar::i#2 mode_stdchar::i#1 ] zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ]
Uplifting [mode_stdchar] best 3537802 combination reg byte a [ mode_stdchar::$24 ] reg byte a [ mode_stdchar::$25 ] zp ZP_BYTE:291 [ mode_stdchar::$26 ] zp ZP_BYTE:293 [ mode_stdchar::$28 ] zp ZP_BYTE:294 [ mode_stdchar::$29 ] zp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] zp ZP_WORD:149 [ mode_stdchar::col#2 mode_stdchar::col#3 mode_stdchar::col#1 ] zp ZP_BYTE:292 [ mode_stdchar::$27 ] zp ZP_WORD:151 [ mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 ] zp ZP_BYTE:146 [ mode_stdchar::i#2 mode_stdchar::i#1 ] zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ]
Limited combination testing to 10 combinations of 36864 possible.
Uplifting [mode_ecmchar] best 3507402 combination reg byte a [ mode_ecmchar::$25 ] reg byte a [ mode_ecmchar::$26 ] zp ZP_BYTE:285 [ mode_ecmchar::$27 ] zp ZP_BYTE:287 [ mode_ecmchar::$29 ] zp ZP_BYTE:288 [ mode_ecmchar::$30 ] zp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] zp ZP_WORD:142 [ mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 ] zp ZP_BYTE:286 [ mode_ecmchar::$28 ] zp ZP_WORD:144 [ mode_ecmchar::ch#2 mode_ecmchar::ch#3 mode_ecmchar::ch#1 ] zp ZP_BYTE:139 [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ]
Uplifting [mode_ecmchar] best 3525802 combination reg byte a [ mode_ecmchar::$25 ] reg byte a [ mode_ecmchar::$26 ] zp ZP_BYTE:285 [ mode_ecmchar::$27 ] zp ZP_BYTE:287 [ mode_ecmchar::$29 ] zp ZP_BYTE:288 [ mode_ecmchar::$30 ] zp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] zp ZP_WORD:142 [ mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 ] zp ZP_BYTE:286 [ mode_ecmchar::$28 ] zp ZP_WORD:144 [ mode_ecmchar::ch#2 mode_ecmchar::ch#3 mode_ecmchar::ch#1 ] zp ZP_BYTE:139 [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ]
Limited combination testing to 10 combinations of 36864 possible.
Uplifting [mode_mcchar] best 3495402 combination reg byte a [ mode_mcchar::$25 ] reg byte a [ mode_mcchar::$26 ] zp ZP_BYTE:279 [ mode_mcchar::$27 ] zp ZP_BYTE:281 [ mode_mcchar::$29 ] zp ZP_BYTE:282 [ mode_mcchar::$30 ] zp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] zp ZP_WORD:135 [ mode_mcchar::col#2 mode_mcchar::col#3 mode_mcchar::col#1 ] zp ZP_BYTE:280 [ mode_mcchar::$28 ] zp ZP_WORD:137 [ mode_mcchar::ch#2 mode_mcchar::ch#3 mode_mcchar::ch#1 ] zp ZP_BYTE:132 [ mode_mcchar::i#2 mode_mcchar::i#1 ] zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ]
Uplifting [mode_mcchar] best 3513802 combination reg byte a [ mode_mcchar::$25 ] reg byte a [ mode_mcchar::$26 ] zp ZP_BYTE:279 [ mode_mcchar::$27 ] zp ZP_BYTE:281 [ mode_mcchar::$29 ] zp ZP_BYTE:282 [ mode_mcchar::$30 ] zp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] zp ZP_WORD:135 [ mode_mcchar::col#2 mode_mcchar::col#3 mode_mcchar::col#1 ] zp ZP_BYTE:280 [ mode_mcchar::$28 ] zp ZP_WORD:137 [ mode_mcchar::ch#2 mode_mcchar::ch#3 mode_mcchar::ch#1 ] zp ZP_BYTE:132 [ mode_mcchar::i#2 mode_mcchar::i#1 ] zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ]
Limited combination testing to 10 combinations of 36864 possible.
Uplifting [bitmap_plot] best 3471393 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:261 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:265 [ bitmap_plot::$1 ] zp ZP_WORD:259 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:263 [ bitmap_plot::$0 ]
Uplifting [bitmap_plot] best 3489793 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:261 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:265 [ bitmap_plot::$1 ] zp ZP_WORD:259 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:263 [ bitmap_plot::$0 ]
Limited combination testing to 10 combinations of 36 possible.
Uplifting [mode_8bppchunkybmm] best 3459093 combination reg byte x [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] zp ZP_WORD:10 [ mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 ] zp ZP_WORD:185 [ mode_8bppchunkybmm::$23 ] reg byte a [ mode_8bppchunkybmm::c#0 ] zp ZP_WORD:7 [ mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::x#1 ] zp ZP_BYTE:5 [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ]
Uplifting [mode_8bppchunkybmm] best 3477493 combination reg byte x [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] zp ZP_WORD:10 [ mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 ] zp ZP_WORD:185 [ mode_8bppchunkybmm::$23 ] reg byte a [ mode_8bppchunkybmm::c#0 ] zp ZP_WORD:7 [ mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::x#1 ] zp ZP_BYTE:5 [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ]
Limited combination testing to 10 combinations of 64 possible.
Uplifting [mode_stdbitmap] best 3447093 combination reg byte a [ mode_stdbitmap::$19 ] reg byte a [ mode_stdbitmap::$22 ] zp ZP_BYTE:247 [ mode_stdbitmap::$23 ] zp ZP_BYTE:93 [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] zp ZP_BYTE:244 [ mode_stdbitmap::col#0 ] zp ZP_WORD:94 [ mode_stdbitmap::ch#2 mode_stdbitmap::ch#3 mode_stdbitmap::ch#1 ] zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] zp ZP_BYTE:91 [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ]
Uplifting [mode_stdbitmap] best 3465493 combination reg byte a [ mode_stdbitmap::$19 ] reg byte a [ mode_stdbitmap::$22 ] zp ZP_BYTE:247 [ mode_stdbitmap::$23 ] zp ZP_BYTE:93 [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] zp ZP_BYTE:244 [ mode_stdbitmap::col#0 ] zp ZP_WORD:94 [ mode_stdbitmap::ch#2 mode_stdbitmap::ch#3 mode_stdbitmap::ch#1 ] zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] zp ZP_BYTE:91 [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ]
Limited combination testing to 10 combinations of 13824 possible.
Uplifting [bitmap_line_xdyi] best 3441093 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
Uplifting [bitmap_line_xdyi] best 3459493 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [bitmap_line_xdyd] best 3435093 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
Uplifting [bitmap_line_xdyd] best 3453493 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [bitmap_line_ydxi] best 3425087 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ]
Uplifting [bitmap_line_ydxi] best 3443487 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [bitmap_line_ydxd] best 3415081 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
Uplifting [bitmap_line_ydxd] best 3433481 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
Limited combination testing to 10 combinations of 256 possible.
Uplifting [mode_hicolstdchar] best 3403081 combination reg byte a [ mode_hicolstdchar::$24 ] reg byte a [ mode_hicolstdchar::$26 ] zp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] zp ZP_WORD:87 [ mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 ] zp ZP_WORD:89 [ mode_hicolstdchar::ch#2 mode_hicolstdchar::ch#3 mode_hicolstdchar::ch#1 ] zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] zp ZP_BYTE:242 [ mode_hicolstdchar::v#0 ] zp ZP_BYTE:84 [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ]
Uplifting [mode_hicolstdchar] best 3421481 combination reg byte a [ mode_hicolstdchar::$24 ] reg byte a [ mode_hicolstdchar::$26 ] zp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] zp ZP_WORD:87 [ mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 ] zp ZP_WORD:89 [ mode_hicolstdchar::ch#2 mode_hicolstdchar::ch#3 mode_hicolstdchar::ch#1 ] zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] zp ZP_BYTE:242 [ mode_hicolstdchar::v#0 ] zp ZP_BYTE:84 [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ]
Limited combination testing to 10 combinations of 2304 possible.
Uplifting [mode_hicolecmchar] best 3391081 combination reg byte a [ mode_hicolecmchar::$25 ] reg byte a [ mode_hicolecmchar::$27 ] zp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] zp ZP_WORD:80 [ mode_hicolecmchar::col#2 mode_hicolecmchar::col#3 mode_hicolecmchar::col#1 ] zp ZP_WORD:82 [ mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 ] zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] zp ZP_BYTE:238 [ mode_hicolecmchar::v#0 ] zp ZP_BYTE:77 [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ]
Uplifting [mode_hicolecmchar] best 3409481 combination reg byte a [ mode_hicolecmchar::$25 ] reg byte a [ mode_hicolecmchar::$27 ] zp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] zp ZP_WORD:80 [ mode_hicolecmchar::col#2 mode_hicolecmchar::col#3 mode_hicolecmchar::col#1 ] zp ZP_WORD:82 [ mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 ] zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] zp ZP_BYTE:238 [ mode_hicolecmchar::v#0 ] zp ZP_BYTE:77 [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ]
Limited combination testing to 10 combinations of 2304 possible.
Uplifting [mode_hicolmcchar] best 3379081 combination reg byte a [ mode_hicolmcchar::$25 ] reg byte a [ mode_hicolmcchar::$27 ] zp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] zp ZP_WORD:73 [ mode_hicolmcchar::col#2 mode_hicolmcchar::col#3 mode_hicolmcchar::col#1 ] zp ZP_WORD:75 [ mode_hicolmcchar::ch#2 mode_hicolmcchar::ch#3 mode_hicolmcchar::ch#1 ] zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] zp ZP_BYTE:234 [ mode_hicolmcchar::v#0 ] zp ZP_BYTE:70 [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ]
Uplifting [mode_hicolmcchar] best 3397481 combination reg byte a [ mode_hicolmcchar::$25 ] reg byte a [ mode_hicolmcchar::$27 ] zp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] zp ZP_WORD:73 [ mode_hicolmcchar::col#2 mode_hicolmcchar::col#3 mode_hicolmcchar::col#1 ] zp ZP_WORD:75 [ mode_hicolmcchar::ch#2 mode_hicolmcchar::ch#3 mode_hicolmcchar::ch#1 ] zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] zp ZP_BYTE:234 [ mode_hicolmcchar::v#0 ] zp ZP_BYTE:70 [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ]
Limited combination testing to 10 combinations of 2304 possible.
Uplifting [] best 3379081 combination zp ZP_WORD:155 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#101 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:157 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] zp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ]
Uplifting [bitmap_clear] best 3370081 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:269 [ bitmap_clear::$3 ]
Uplifting [menu] best 3368481 combination reg byte x [ menu::i#2 menu::i#1 ] zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] reg byte a [ menu::$29 ] zp ZP_BYTE:164 [ menu::$33 ] zp ZP_BYTE:166 [ menu::$37 ] zp ZP_BYTE:168 [ menu::$41 ] zp ZP_BYTE:170 [ menu::$45 ] zp ZP_BYTE:172 [ menu::$49 ] zp ZP_BYTE:174 [ menu::$53 ] zp ZP_BYTE:176 [ menu::$57 ] zp ZP_BYTE:178 [ menu::$61 ] zp ZP_BYTE:180 [ menu::$65 ] zp ZP_BYTE:182 [ menu::$69 ] zp ZP_BYTE:184 [ menu::$73 ]
Uplifting [] best 3397481 combination zp ZP_WORD:155 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#101 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:157 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] zp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ]
Uplifting [bitmap_clear] best 3388481 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:269 [ bitmap_clear::$3 ]
Uplifting [menu] best 3386681 combination reg byte x [ menu::i#2 menu::i#1 ] zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] reg byte a [ menu::$29 ] zp ZP_BYTE:164 [ menu::$33 ] zp ZP_BYTE:166 [ menu::$37 ] zp ZP_BYTE:168 [ menu::$41 ] zp ZP_BYTE:170 [ menu::$45 ] zp ZP_BYTE:172 [ menu::$49 ] zp ZP_BYTE:174 [ menu::$53 ] zp ZP_BYTE:176 [ menu::$57 ] zp ZP_BYTE:178 [ menu::$61 ] zp ZP_BYTE:180 [ menu::$65 ] zp ZP_BYTE:182 [ menu::$69 ] zp ZP_BYTE:184 [ menu::$73 ]
Limited combination testing to 10 combinations of 50331648 possible.
Uplifting [dtvSetCpuBankSegment1] best 3367472 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ]
Uplifting [print_str_lines] best 3355472 combination zp ZP_WORD:153 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ]
Uplifting [bitmap_init] best 3353072 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:271 [ bitmap_init::$0 ] zp ZP_BYTE:273 [ bitmap_init::$7 ] zp ZP_BYTE:274 [ bitmap_init::$8 ] zp ZP_BYTE:275 [ bitmap_init::$9 ] zp ZP_BYTE:276 [ bitmap_init::$10 ] zp ZP_BYTE:272 [ bitmap_init::$6 ]
Uplifting [dtvSetCpuBankSegment1] best 3385672 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ]
Uplifting [print_str_lines] best 3373672 combination zp ZP_WORD:153 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ]
Uplifting [bitmap_init] best 3371272 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:271 [ bitmap_init::$0 ] zp ZP_BYTE:273 [ bitmap_init::$7 ] zp ZP_BYTE:274 [ bitmap_init::$8 ] zp ZP_BYTE:275 [ bitmap_init::$9 ] zp ZP_BYTE:276 [ bitmap_init::$10 ] zp ZP_BYTE:272 [ bitmap_init::$6 ]
Limited combination testing to 10 combinations of 138240 possible.
Uplifting [print_cls] best 3353072 combination zp ZP_WORD:159 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [bitmap_line] best 3352758 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:250 [ bitmap_line::y0#0 ] zp ZP_BYTE:249 [ bitmap_line::x1#0 ] zp ZP_BYTE:248 [ bitmap_line::x0#0 ] zp ZP_BYTE:253 [ bitmap_line::yd#1 ] zp ZP_BYTE:254 [ bitmap_line::yd#0 ] zp ZP_BYTE:256 [ bitmap_line::yd#3 ] zp ZP_BYTE:257 [ bitmap_line::yd#10 ] zp ZP_BYTE:252 [ bitmap_line::xd#1 ] zp ZP_BYTE:255 [ bitmap_line::xd#0 ]
Uplifting [print_cls] best 3371272 combination zp ZP_WORD:159 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [bitmap_line] best 3370958 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:250 [ bitmap_line::y0#0 ] zp ZP_BYTE:249 [ bitmap_line::x1#0 ] zp ZP_BYTE:248 [ bitmap_line::x0#0 ] zp ZP_BYTE:253 [ bitmap_line::yd#1 ] zp ZP_BYTE:254 [ bitmap_line::yd#0 ] zp ZP_BYTE:256 [ bitmap_line::yd#3 ] zp ZP_BYTE:257 [ bitmap_line::yd#10 ] zp ZP_BYTE:252 [ bitmap_line::xd#1 ] zp ZP_BYTE:255 [ bitmap_line::xd#0 ]
Limited combination testing to 10 combinations of 186624 possible.
Uplifting [keyboard_matrix_read] best 3352746 combination reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] zp ZP_BYTE:210 [ keyboard_matrix_read::return#0 ]
Uplifting [keyboard_matrix_read] best 3370946 combination reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] zp ZP_BYTE:210 [ keyboard_matrix_read::return#0 ]
Limited combination testing to 10 combinations of 64 possible.
Uplifting [print_ln] best 3352746 combination
Uplifting [print_set_screen] best 3352746 combination
Uplifting [main] best 3352746 combination
Uplifting [print_ln] best 3370946 combination
Uplifting [print_set_screen] best 3370946 combination
Uplifting [main] best 3370946 combination
Attempting to uplift remaining variables inzp ZP_BYTE:29 [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ]
Uplifting [mode_8bpppixelcell] best 3262746 combination reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ]
Uplifting [mode_8bpppixelcell] best 3280946 combination reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ]
Uplifting [mode_8bpppixelcell] best 3262746 combination zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ]
Uplifting [mode_8bpppixelcell] best 3280946 combination zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ]
Uplifting [mode_8bpppixelcell] best 3262746 combination zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ]
Uplifting [mode_8bpppixelcell] best 3280946 combination zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Uplifting [bitmap_line_xdyi] best 3262746 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Uplifting [bitmap_line_xdyi] best 3280946 combination zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
Uplifting [bitmap_line_ydxi] best 3262746 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
Uplifting [bitmap_line_ydxi] best 3280946 combination zp ZP_BYTE:110 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
Uplifting [bitmap_line_xdyd] best 3262746 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
Uplifting [bitmap_line_xdyd] best 3280946 combination zp ZP_BYTE:116 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
Uplifting [bitmap_line_ydxd] best 3262746 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
Uplifting [bitmap_line_ydxd] best 3280946 combination zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Uplifting [bitmap_line_xdyi] best 3262746 combination zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Uplifting [bitmap_line_xdyi] best 3280946 combination zp ZP_BYTE:101 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Uplifting [bitmap_line_xdyd] best 3262746 combination zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Uplifting [bitmap_line_xdyd] best 3280946 combination zp ZP_BYTE:115 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:188 [ keyboard_key_pressed::return#14 ]
Uplifting [keyboard_key_pressed] best 3256746 combination reg byte a [ keyboard_key_pressed::return#14 ]
Uplifting [keyboard_key_pressed] best 3274946 combination reg byte a [ keyboard_key_pressed::return#14 ]
Attempting to uplift remaining variables inzp ZP_BYTE:190 [ keyboard_key_pressed::return#15 ]
Uplifting [keyboard_key_pressed] best 3250746 combination reg byte a [ keyboard_key_pressed::return#15 ]
Uplifting [keyboard_key_pressed] best 3268946 combination reg byte a [ keyboard_key_pressed::return#15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:191 [ mode_ctrl::$4 ]
Uplifting [mode_ctrl] best 3246746 combination reg byte a [ mode_ctrl::$4 ]
Uplifting [mode_ctrl] best 3262946 combination reg byte a [ mode_ctrl::$4 ]
Attempting to uplift remaining variables inzp ZP_BYTE:192 [ keyboard_key_pressed::return#16 ]
Uplifting [keyboard_key_pressed] best 3240746 combination reg byte a [ keyboard_key_pressed::return#16 ]
Uplifting [keyboard_key_pressed] best 3256946 combination reg byte a [ keyboard_key_pressed::return#16 ]
Attempting to uplift remaining variables inzp ZP_BYTE:193 [ mode_ctrl::$8 ]
Uplifting [mode_ctrl] best 3236746 combination reg byte a [ mode_ctrl::$8 ]
Uplifting [mode_ctrl] best 3250946 combination reg byte a [ mode_ctrl::$8 ]
Attempting to uplift remaining variables inzp ZP_BYTE:194 [ keyboard_key_pressed::return#17 ]
Uplifting [keyboard_key_pressed] best 3230746 combination reg byte a [ keyboard_key_pressed::return#17 ]
Uplifting [keyboard_key_pressed] best 3244946 combination reg byte a [ keyboard_key_pressed::return#17 ]
Attempting to uplift remaining variables inzp ZP_BYTE:195 [ mode_ctrl::$12 ]
Uplifting [mode_ctrl] best 3226746 combination reg byte a [ mode_ctrl::$12 ]
Uplifting [mode_ctrl] best 3238946 combination reg byte a [ mode_ctrl::$12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:196 [ keyboard_key_pressed::return#18 ]
Uplifting [keyboard_key_pressed] best 3220746 combination reg byte a [ keyboard_key_pressed::return#18 ]
Uplifting [keyboard_key_pressed] best 3232946 combination reg byte a [ keyboard_key_pressed::return#18 ]
Attempting to uplift remaining variables inzp ZP_BYTE:197 [ mode_ctrl::$16 ]
Uplifting [mode_ctrl] best 3216746 combination reg byte a [ mode_ctrl::$16 ]
Uplifting [mode_ctrl] best 3226946 combination reg byte a [ mode_ctrl::$16 ]
Attempting to uplift remaining variables inzp ZP_BYTE:198 [ keyboard_key_pressed::return#19 ]
Uplifting [keyboard_key_pressed] best 3210746 combination reg byte a [ keyboard_key_pressed::return#19 ]
Uplifting [keyboard_key_pressed] best 3220946 combination reg byte a [ keyboard_key_pressed::return#19 ]
Attempting to uplift remaining variables inzp ZP_BYTE:199 [ mode_ctrl::$20 ]
Uplifting [mode_ctrl] best 3206746 combination reg byte a [ mode_ctrl::$20 ]
Uplifting [mode_ctrl] best 3214946 combination reg byte a [ mode_ctrl::$20 ]
Attempting to uplift remaining variables inzp ZP_BYTE:200 [ keyboard_key_pressed::return#20 ]
Uplifting [keyboard_key_pressed] best 3200746 combination reg byte a [ keyboard_key_pressed::return#20 ]
Uplifting [keyboard_key_pressed] best 3208946 combination reg byte a [ keyboard_key_pressed::return#20 ]
Attempting to uplift remaining variables inzp ZP_BYTE:201 [ mode_ctrl::$24 ]
Uplifting [mode_ctrl] best 3196746 combination reg byte a [ mode_ctrl::$24 ]
Uplifting [mode_ctrl] best 3202946 combination reg byte a [ mode_ctrl::$24 ]
Attempting to uplift remaining variables inzp ZP_BYTE:202 [ keyboard_key_pressed::return#21 ]
Uplifting [keyboard_key_pressed] best 3190746 combination reg byte a [ keyboard_key_pressed::return#21 ]
Uplifting [keyboard_key_pressed] best 3196946 combination reg byte a [ keyboard_key_pressed::return#21 ]
Attempting to uplift remaining variables inzp ZP_BYTE:203 [ mode_ctrl::$28 ]
Uplifting [mode_ctrl] best 3186746 combination reg byte a [ mode_ctrl::$28 ]
Uplifting [mode_ctrl] best 3190946 combination reg byte a [ mode_ctrl::$28 ]
Attempting to uplift remaining variables inzp ZP_BYTE:211 [ mode_8bpppixelcell::$13 ]
Uplifting [mode_8bpppixelcell] best 3180746 combination reg byte a [ mode_8bpppixelcell::$13 ]
Uplifting [mode_8bpppixelcell] best 3184946 combination reg byte a [ mode_8bpppixelcell::$13 ]
Attempting to uplift remaining variables inzp ZP_BYTE:213 [ mode_8bpppixelcell::$15 ]
Uplifting [mode_8bpppixelcell] best 3174746 combination reg byte a [ mode_8bpppixelcell::$15 ]
Uplifting [mode_8bpppixelcell] best 3178946 combination reg byte a [ mode_8bpppixelcell::$15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:214 [ mode_8bpppixelcell::$16 ]
Uplifting [mode_8bpppixelcell] best 3168746 combination reg byte a [ mode_8bpppixelcell::$16 ]
Uplifting [mode_8bpppixelcell] best 3172946 combination reg byte a [ mode_8bpppixelcell::$16 ]
Attempting to uplift remaining variables inzp ZP_BYTE:217 [ mode_sixsfred::$17 ]
Uplifting [mode_sixsfred] best 3162746 combination reg byte a [ mode_sixsfred::$17 ]
Uplifting [mode_sixsfred] best 3166946 combination reg byte a [ mode_sixsfred::$17 ]
Attempting to uplift remaining variables inzp ZP_BYTE:218 [ mode_sixsfred::$20 ]
Uplifting [mode_sixsfred] best 3156746 combination reg byte a [ mode_sixsfred::$20 ]
Uplifting [mode_sixsfred] best 3160946 combination reg byte a [ mode_sixsfred::$20 ]
Attempting to uplift remaining variables inzp ZP_BYTE:219 [ mode_sixsfred::row#0 ]
Uplifting [mode_sixsfred] best 3152746 combination reg byte a [ mode_sixsfred::row#0 ]
Uplifting [mode_sixsfred] best 3156946 combination reg byte a [ mode_sixsfred::row#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:222 [ mode_twoplanebitmap::$17 ]
Uplifting [mode_twoplanebitmap] best 3146746 combination reg byte a [ mode_twoplanebitmap::$17 ]
Uplifting [mode_twoplanebitmap] best 3150946 combination reg byte a [ mode_twoplanebitmap::$17 ]
Attempting to uplift remaining variables inzp ZP_BYTE:223 [ mode_twoplanebitmap::$18 ]
Uplifting [mode_twoplanebitmap] best 3140746 combination reg byte a [ mode_twoplanebitmap::$18 ]
Uplifting [mode_twoplanebitmap] best 3144946 combination reg byte a [ mode_twoplanebitmap::$18 ]
Attempting to uplift remaining variables inzp ZP_BYTE:224 [ mode_twoplanebitmap::$21 ]
Uplifting [mode_twoplanebitmap] best 3136746 combination reg byte a [ mode_twoplanebitmap::$21 ]
Uplifting [mode_twoplanebitmap] best 3138946 combination reg byte a [ mode_twoplanebitmap::$21 ]
Attempting to uplift remaining variables inzp ZP_BYTE:227 [ mode_sixsfred2::$16 ]
Uplifting [mode_sixsfred2] best 3130746 combination reg byte a [ mode_sixsfred2::$16 ]
Uplifting [mode_sixsfred2] best 3132946 combination reg byte a [ mode_sixsfred2::$16 ]
Attempting to uplift remaining variables inzp ZP_BYTE:228 [ mode_sixsfred2::$17 ]
Uplifting [mode_sixsfred2] best 3124746 combination reg byte a [ mode_sixsfred2::$17 ]
Uplifting [mode_sixsfred2] best 3126946 combination reg byte a [ mode_sixsfred2::$17 ]
Attempting to uplift remaining variables inzp ZP_BYTE:229 [ mode_sixsfred2::$20 ]
Uplifting [mode_sixsfred2] best 3118746 combination reg byte a [ mode_sixsfred2::$20 ]
Uplifting [mode_sixsfred2] best 3120946 combination reg byte a [ mode_sixsfred2::$20 ]
Attempting to uplift remaining variables inzp ZP_BYTE:230 [ mode_sixsfred2::row#0 ]
Uplifting [mode_sixsfred2] best 3114746 combination reg byte a [ mode_sixsfred2::row#0 ]
Uplifting [mode_sixsfred2] best 3116946 combination reg byte a [ mode_sixsfred2::row#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:247 [ mode_stdbitmap::$23 ]
Uplifting [mode_stdbitmap] best 3108746 combination reg byte a [ mode_stdbitmap::$23 ]
Uplifting [mode_stdbitmap] best 3110946 combination reg byte a [ mode_stdbitmap::$23 ]
Attempting to uplift remaining variables inzp ZP_BYTE:279 [ mode_mcchar::$27 ]
Uplifting [mode_mcchar] best 3102746 combination reg byte a [ mode_mcchar::$27 ]
Uplifting [mode_mcchar] best 3104946 combination reg byte a [ mode_mcchar::$27 ]
Attempting to uplift remaining variables inzp ZP_BYTE:281 [ mode_mcchar::$29 ]
Uplifting [mode_mcchar] best 3096746 combination reg byte a [ mode_mcchar::$29 ]
Uplifting [mode_mcchar] best 3098946 combination reg byte a [ mode_mcchar::$29 ]
Attempting to uplift remaining variables inzp ZP_BYTE:282 [ mode_mcchar::$30 ]
Uplifting [mode_mcchar] best 3090746 combination reg byte a [ mode_mcchar::$30 ]
Uplifting [mode_mcchar] best 3092946 combination reg byte a [ mode_mcchar::$30 ]
Attempting to uplift remaining variables inzp ZP_BYTE:285 [ mode_ecmchar::$27 ]
Uplifting [mode_ecmchar] best 3084746 combination reg byte a [ mode_ecmchar::$27 ]
Uplifting [mode_ecmchar] best 3086946 combination reg byte a [ mode_ecmchar::$27 ]
Attempting to uplift remaining variables inzp ZP_BYTE:287 [ mode_ecmchar::$29 ]
Uplifting [mode_ecmchar] best 3078746 combination reg byte a [ mode_ecmchar::$29 ]
Uplifting [mode_ecmchar] best 3080946 combination reg byte a [ mode_ecmchar::$29 ]
Attempting to uplift remaining variables inzp ZP_BYTE:288 [ mode_ecmchar::$30 ]
Uplifting [mode_ecmchar] best 3072746 combination reg byte a [ mode_ecmchar::$30 ]
Uplifting [mode_ecmchar] best 3074946 combination reg byte a [ mode_ecmchar::$30 ]
Attempting to uplift remaining variables inzp ZP_BYTE:291 [ mode_stdchar::$26 ]
Uplifting [mode_stdchar] best 3066746 combination reg byte a [ mode_stdchar::$26 ]
Uplifting [mode_stdchar] best 3068946 combination reg byte a [ mode_stdchar::$26 ]
Attempting to uplift remaining variables inzp ZP_BYTE:293 [ mode_stdchar::$28 ]
Uplifting [mode_stdchar] best 3060746 combination reg byte a [ mode_stdchar::$28 ]
Uplifting [mode_stdchar] best 3062946 combination reg byte a [ mode_stdchar::$28 ]
Attempting to uplift remaining variables inzp ZP_BYTE:294 [ mode_stdchar::$29 ]
Uplifting [mode_stdchar] best 3054746 combination reg byte a [ mode_stdchar::$29 ]
Uplifting [mode_stdchar] best 3056946 combination reg byte a [ mode_stdchar::$29 ]
Attempting to uplift remaining variables inzp ZP_BYTE:18 [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ]
Uplifting [mode_8bpppixelcell] best 3044746 combination reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ]
Uplifting [mode_8bpppixelcell] best 3046946 combination reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:46 [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ]
Uplifting [mode_twoplanebitmap] best 3034746 combination reg byte x [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ]
Uplifting [mode_twoplanebitmap] best 3036946 combination reg byte x [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:59 [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ]
Uplifting [mode_sixsfred2] best 3024746 combination reg byte x [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ]
Uplifting [mode_sixsfred2] best 3026946 combination reg byte x [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:39 [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ]
Uplifting [mode_sixsfred] best 3015746 combination reg byte x [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ]
Uplifting [mode_sixsfred] best 3017946 combination reg byte x [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:65 [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ]
Uplifting [mode_sixsfred2] best 3006746 combination reg byte x [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ]
Uplifting [mode_sixsfred2] best 3008946 combination reg byte x [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:93 [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ]
Uplifting [mode_stdbitmap] best 2996746 combination reg byte x [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ]
Uplifting [mode_stdbitmap] best 2998946 combination reg byte x [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ]
Uplifting [mode_mcchar] best 2985746 combination reg byte x [ mode_mcchar::cx#2 mode_mcchar::cx#1 ]
Uplifting [mode_mcchar] best 2987946 combination reg byte x [ mode_mcchar::cx#2 mode_mcchar::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ]
Uplifting [mode_ecmchar] best 2974746 combination reg byte x [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ]
Uplifting [mode_ecmchar] best 2976946 combination reg byte x [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ]
Uplifting [mode_stdchar] best 2963746 combination reg byte x [ mode_stdchar::cx#2 mode_stdchar::cx#1 ]
Uplifting [mode_stdchar] best 2965946 combination reg byte x [ mode_stdchar::cx#2 mode_stdchar::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ]
Uplifting [mode_hicolmcchar] best 2953746 combination reg byte x [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ]
Uplifting [mode_hicolmcchar] best 2955946 combination reg byte x [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ]
Uplifting [mode_hicolecmchar] best 2943746 combination reg byte x [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ]
Uplifting [mode_hicolecmchar] best 2945946 combination reg byte x [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ]
Uplifting [mode_hicolstdchar] best 2933746 combination reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ]
Uplifting [mode_hicolstdchar] best 2935946 combination reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ]
Uplifting [mode_twoplanebitmap] best 2924746 combination reg byte x [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ]
Uplifting [mode_twoplanebitmap] best 2926946 combination reg byte x [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ]
Uplifting [mode_8bpppixelcell] best 2924746 combination zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ]
Uplifting [mode_8bpppixelcell] best 2926946 combination zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:244 [ mode_stdbitmap::col#0 ]
Uplifting [mode_stdbitmap] best 2923746 combination reg byte y [ mode_stdbitmap::col#0 ]
Uplifting [mode_stdbitmap] best 2925946 combination reg byte y [ mode_stdbitmap::col#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
Uplifting [bitmap_line_xdyi] best 2923746 combination zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
Uplifting [bitmap_line_xdyi] best 2925946 combination zp ZP_BYTE:100 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ]
Uplifting [bitmap_line_ydxi] best 2923746 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ]
Uplifting [bitmap_line_ydxi] best 2925946 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Uplifting [bitmap_line_xdyd] best 2923746 combination zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Uplifting [bitmap_line_xdyd] best 2925946 combination zp ZP_BYTE:114 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
Uplifting [bitmap_line_ydxd] best 2923746 combination zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
Uplifting [bitmap_line_ydxd] best 2925946 combination zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ]
Uplifting [mode_8bpppixelcell] best 2923746 combination zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ]
Uplifting [mode_8bpppixelcell] best 2925946 combination zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ]
Attempting to uplift remaining variables inzp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ]
Uplifting [mode_twoplanebitmap] best 2923746 combination zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ]
Uplifting [mode_twoplanebitmap] best 2925946 combination zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ]
Attempting to uplift remaining variables inzp ZP_BYTE:226 [ mode_sixsfred2::$15 ]
Uplifting [mode_sixsfred2] best 2923746 combination zp ZP_BYTE:226 [ mode_sixsfred2::$15 ]
Uplifting [mode_sixsfred2] best 2925946 combination zp ZP_BYTE:226 [ mode_sixsfred2::$15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:232 [ mode_hicolmcchar::$26 ]
Uplifting [mode_hicolmcchar] best 2923746 combination zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ]
Uplifting [mode_hicolmcchar] best 2925946 combination zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ]
Attempting to uplift remaining variables inzp ZP_BYTE:234 [ mode_hicolmcchar::v#0 ]
Uplifting [mode_hicolmcchar] best 2914746 combination reg byte a [ mode_hicolmcchar::v#0 ]
Uplifting [mode_hicolmcchar] best 2916946 combination reg byte a [ mode_hicolmcchar::v#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:236 [ mode_hicolecmchar::$26 ]
Uplifting [mode_hicolecmchar] best 2914746 combination zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ]
Uplifting [mode_hicolecmchar] best 2916946 combination zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ]
Attempting to uplift remaining variables inzp ZP_BYTE:238 [ mode_hicolecmchar::v#0 ]
Uplifting [mode_hicolecmchar] best 2905746 combination reg byte a [ mode_hicolecmchar::v#0 ]
Uplifting [mode_hicolecmchar] best 2907946 combination reg byte a [ mode_hicolecmchar::v#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:240 [ mode_hicolstdchar::$25 ]
Uplifting [mode_hicolstdchar] best 2905746 combination zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ]
Uplifting [mode_hicolstdchar] best 2907946 combination zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ]
Attempting to uplift remaining variables inzp ZP_BYTE:242 [ mode_hicolstdchar::v#0 ]
Uplifting [mode_hicolstdchar] best 2896746 combination reg byte a [ mode_hicolstdchar::v#0 ]
Uplifting [mode_hicolstdchar] best 2898946 combination reg byte a [ mode_hicolstdchar::v#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ]
Uplifting [mode_stdbitmap] best 2896746 combination zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ]
Uplifting [mode_stdbitmap] best 2898946 combination zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:280 [ mode_mcchar::$28 ]
Uplifting [mode_mcchar] best 2896746 combination zp ZP_BYTE:280 [ mode_mcchar::$28 ]
Uplifting [mode_mcchar] best 2898946 combination zp ZP_BYTE:280 [ mode_mcchar::$28 ]
Attempting to uplift remaining variables inzp ZP_BYTE:286 [ mode_ecmchar::$28 ]
Uplifting [mode_ecmchar] best 2896746 combination zp ZP_BYTE:286 [ mode_ecmchar::$28 ]
Uplifting [mode_ecmchar] best 2898946 combination zp ZP_BYTE:286 [ mode_ecmchar::$28 ]
Attempting to uplift remaining variables inzp ZP_BYTE:292 [ mode_stdchar::$27 ]
Uplifting [mode_stdchar] best 2896746 combination zp ZP_BYTE:292 [ mode_stdchar::$27 ]
Uplifting [mode_stdchar] best 2898946 combination zp ZP_BYTE:292 [ mode_stdchar::$27 ]
Attempting to uplift remaining variables inzp ZP_BYTE:209 [ keyboard_key_pressed::return#0 ]
Uplifting [keyboard_key_pressed] best 2869143 combination reg byte a [ keyboard_key_pressed::return#0 ]
Uplifting [keyboard_key_pressed] best 2871343 combination reg byte a [ keyboard_key_pressed::return#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ]
Uplifting [mode_8bppchunkybmm] best 2867943 combination reg byte x [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ]
Uplifting [mode_8bppchunkybmm] best 2870143 combination reg byte x [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:16 [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ]
Uplifting [mode_8bpppixelcell] best 2866743 combination reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ]
Uplifting [mode_8bpppixelcell] best 2868943 combination reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:31 [ mode_sixsfred::i#2 mode_sixsfred::i#1 ]
Uplifting [mode_sixsfred] best 2865543 combination reg byte x [ mode_sixsfred::i#2 mode_sixsfred::i#1 ]
Uplifting [mode_sixsfred] best 2867743 combination reg byte x [ mode_sixsfred::i#2 mode_sixsfred::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:44 [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ]
Uplifting [mode_twoplanebitmap] best 2864343 combination reg byte x [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ]
Uplifting [mode_twoplanebitmap] best 2866543 combination reg byte x [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:57 [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ]
Uplifting [mode_sixsfred2] best 2863143 combination reg byte x [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ]
Uplifting [mode_sixsfred2] best 2865343 combination reg byte x [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:70 [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ]
Uplifting [mode_hicolmcchar] best 2861943 combination reg byte x [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ]
Uplifting [mode_hicolmcchar] best 2864143 combination reg byte x [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:77 [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ]
Uplifting [mode_hicolecmchar] best 2860743 combination reg byte x [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ]
Uplifting [mode_hicolecmchar] best 2862943 combination reg byte x [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:84 [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ]
Uplifting [mode_hicolstdchar] best 2859543 combination reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ]
Uplifting [mode_hicolstdchar] best 2861743 combination reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:91 [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ]
Uplifting [mode_stdbitmap] best 2858343 combination reg byte x [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ]
Uplifting [mode_stdbitmap] best 2860543 combination reg byte x [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:132 [ mode_mcchar::i#2 mode_mcchar::i#1 ]
Uplifting [mode_mcchar] best 2857143 combination reg byte x [ mode_mcchar::i#2 mode_mcchar::i#1 ]
Uplifting [mode_mcchar] best 2859343 combination reg byte x [ mode_mcchar::i#2 mode_mcchar::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:139 [ mode_ecmchar::i#2 mode_ecmchar::i#1 ]
Uplifting [mode_ecmchar] best 2855943 combination reg byte x [ mode_ecmchar::i#2 mode_ecmchar::i#1 ]
Uplifting [mode_ecmchar] best 2858143 combination reg byte x [ mode_ecmchar::i#2 mode_ecmchar::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:146 [ mode_stdchar::i#2 mode_stdchar::i#1 ]
Uplifting [mode_stdchar] best 2854743 combination reg byte x [ mode_stdchar::i#2 mode_stdchar::i#1 ]
Uplifting [mode_stdchar] best 2856943 combination reg byte x [ mode_stdchar::i#2 mode_stdchar::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ]
Uplifting [mode_mcchar] best 2854743 combination zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ]
Uplifting [mode_mcchar] best 2856943 combination zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ]
Uplifting [mode_ecmchar] best 2854743 combination zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ]
Uplifting [mode_ecmchar] best 2856943 combination zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ]
Uplifting [mode_stdchar] best 2854743 combination zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ]
Uplifting [mode_stdchar] best 2856943 combination zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ]
Uplifting [mode_sixsfred] best 2854743 combination zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ]
Uplifting [mode_sixsfred] best 2856943 combination zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ]
Uplifting [mode_sixsfred] best 2854743 combination zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ]
Uplifting [mode_sixsfred] best 2856943 combination zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ]
Uplifting [mode_sixsfred2] best 2854743 combination zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ]
Uplifting [mode_sixsfred2] best 2856943 combination zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ]
Uplifting [mode_8bpppixelcell] best 2854743 combination zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ]
Uplifting [mode_8bpppixelcell] best 2856943 combination zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ]
Uplifting [mode_twoplanebitmap] best 2854743 combination zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ]
Uplifting [mode_twoplanebitmap] best 2856943 combination zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ]
Uplifting [mode_sixsfred2] best 2854743 combination zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ]
Uplifting [mode_sixsfred2] best 2856943 combination zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ]
Uplifting [mode_twoplanebitmap] best 2854743 combination zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ]
Uplifting [mode_twoplanebitmap] best 2856943 combination zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ]
Uplifting [mode_stdbitmap] best 2854743 combination zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ]
Uplifting [mode_stdbitmap] best 2856943 combination zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ]
Uplifting [mode_stdbitmap] best 2854743 combination zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ]
Uplifting [mode_stdbitmap] best 2856943 combination zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ]
Uplifting [mode_hicolmcchar] best 2854743 combination zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ]
Uplifting [mode_hicolmcchar] best 2856943 combination zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ]
Uplifting [mode_hicolecmchar] best 2854743 combination zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ]
Uplifting [mode_hicolecmchar] best 2856943 combination zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ]
Uplifting [mode_hicolstdchar] best 2854743 combination zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ]
Uplifting [mode_hicolstdchar] best 2856943 combination zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ]
Uplifting [mode_8bppchunkybmm] best 2854743 combination zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ]
Uplifting [mode_8bppchunkybmm] best 2856943 combination zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ]
Uplifting [bitmap_init] best 2853243 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
Uplifting [bitmap_init] best 2855443 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:161 [ keyboard_key_pressed::return#2 ]
Uplifting [keyboard_key_pressed] best 2852643 combination reg byte a [ keyboard_key_pressed::return#2 ]
Uplifting [keyboard_key_pressed] best 2854843 combination reg byte a [ keyboard_key_pressed::return#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:163 [ keyboard_key_pressed::return#24 ]
Uplifting [keyboard_key_pressed] best 2852043 combination reg byte a [ keyboard_key_pressed::return#24 ]
Uplifting [keyboard_key_pressed] best 2854243 combination reg byte a [ keyboard_key_pressed::return#24 ]
Attempting to uplift remaining variables inzp ZP_BYTE:164 [ menu::$33 ]
Uplifting [menu] best 2851643 combination reg byte a [ menu::$33 ]
Uplifting [menu] best 2853643 combination reg byte a [ menu::$33 ]
Attempting to uplift remaining variables inzp ZP_BYTE:165 [ keyboard_key_pressed::return#25 ]
Uplifting [keyboard_key_pressed] best 2851043 combination reg byte a [ keyboard_key_pressed::return#25 ]
Uplifting [keyboard_key_pressed] best 2853043 combination reg byte a [ keyboard_key_pressed::return#25 ]
Attempting to uplift remaining variables inzp ZP_BYTE:166 [ menu::$37 ]
Uplifting [menu] best 2850643 combination reg byte a [ menu::$37 ]
Uplifting [menu] best 2852443 combination reg byte a [ menu::$37 ]
Attempting to uplift remaining variables inzp ZP_BYTE:167 [ keyboard_key_pressed::return#26 ]
Uplifting [keyboard_key_pressed] best 2850043 combination reg byte a [ keyboard_key_pressed::return#26 ]
Uplifting [keyboard_key_pressed] best 2851843 combination reg byte a [ keyboard_key_pressed::return#26 ]
Attempting to uplift remaining variables inzp ZP_BYTE:168 [ menu::$41 ]
Uplifting [menu] best 2849643 combination reg byte a [ menu::$41 ]
Uplifting [menu] best 2851243 combination reg byte a [ menu::$41 ]
Attempting to uplift remaining variables inzp ZP_BYTE:169 [ keyboard_key_pressed::return#27 ]
Uplifting [keyboard_key_pressed] best 2849043 combination reg byte a [ keyboard_key_pressed::return#27 ]
Uplifting [keyboard_key_pressed] best 2850643 combination reg byte a [ keyboard_key_pressed::return#27 ]
Attempting to uplift remaining variables inzp ZP_BYTE:170 [ menu::$45 ]
Uplifting [menu] best 2848643 combination reg byte a [ menu::$45 ]
Uplifting [menu] best 2850043 combination reg byte a [ menu::$45 ]
Attempting to uplift remaining variables inzp ZP_BYTE:171 [ keyboard_key_pressed::return#28 ]
Uplifting [keyboard_key_pressed] best 2848043 combination reg byte a [ keyboard_key_pressed::return#28 ]
Uplifting [keyboard_key_pressed] best 2849443 combination reg byte a [ keyboard_key_pressed::return#28 ]
Attempting to uplift remaining variables inzp ZP_BYTE:172 [ menu::$49 ]
Uplifting [menu] best 2847643 combination reg byte a [ menu::$49 ]
Uplifting [menu] best 2848843 combination reg byte a [ menu::$49 ]
Attempting to uplift remaining variables inzp ZP_BYTE:173 [ keyboard_key_pressed::return#29 ]
Uplifting [keyboard_key_pressed] best 2847043 combination reg byte a [ keyboard_key_pressed::return#29 ]
Uplifting [keyboard_key_pressed] best 2848243 combination reg byte a [ keyboard_key_pressed::return#29 ]
Attempting to uplift remaining variables inzp ZP_BYTE:174 [ menu::$53 ]
Uplifting [menu] best 2846643 combination reg byte a [ menu::$53 ]
Uplifting [menu] best 2847643 combination reg byte a [ menu::$53 ]
Attempting to uplift remaining variables inzp ZP_BYTE:175 [ keyboard_key_pressed::return#30 ]
Uplifting [keyboard_key_pressed] best 2846043 combination reg byte a [ keyboard_key_pressed::return#30 ]
Uplifting [keyboard_key_pressed] best 2847043 combination reg byte a [ keyboard_key_pressed::return#30 ]
Attempting to uplift remaining variables inzp ZP_BYTE:176 [ menu::$57 ]
Uplifting [menu] best 2845643 combination reg byte a [ menu::$57 ]
Uplifting [menu] best 2846443 combination reg byte a [ menu::$57 ]
Attempting to uplift remaining variables inzp ZP_BYTE:177 [ keyboard_key_pressed::return#10 ]
Uplifting [keyboard_key_pressed] best 2845043 combination reg byte a [ keyboard_key_pressed::return#10 ]
Uplifting [keyboard_key_pressed] best 2845843 combination reg byte a [ keyboard_key_pressed::return#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:178 [ menu::$61 ]
Uplifting [menu] best 2844643 combination reg byte a [ menu::$61 ]
Uplifting [menu] best 2845243 combination reg byte a [ menu::$61 ]
Attempting to uplift remaining variables inzp ZP_BYTE:179 [ keyboard_key_pressed::return#11 ]
Uplifting [keyboard_key_pressed] best 2844043 combination reg byte a [ keyboard_key_pressed::return#11 ]
Uplifting [keyboard_key_pressed] best 2844643 combination reg byte a [ keyboard_key_pressed::return#11 ]
Attempting to uplift remaining variables inzp ZP_BYTE:180 [ menu::$65 ]
Uplifting [menu] best 2843643 combination reg byte a [ menu::$65 ]
Uplifting [menu] best 2844043 combination reg byte a [ menu::$65 ]
Attempting to uplift remaining variables inzp ZP_BYTE:181 [ keyboard_key_pressed::return#12 ]
Uplifting [keyboard_key_pressed] best 2843043 combination reg byte a [ keyboard_key_pressed::return#12 ]
Uplifting [keyboard_key_pressed] best 2843443 combination reg byte a [ keyboard_key_pressed::return#12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:182 [ menu::$69 ]
Uplifting [menu] best 2842643 combination reg byte a [ menu::$69 ]
Uplifting [menu] best 2842843 combination reg byte a [ menu::$69 ]
Attempting to uplift remaining variables inzp ZP_BYTE:183 [ keyboard_key_pressed::return#13 ]
Uplifting [keyboard_key_pressed] best 2842043 combination reg byte a [ keyboard_key_pressed::return#13 ]
Uplifting [keyboard_key_pressed] best 2842243 combination reg byte a [ keyboard_key_pressed::return#13 ]
Attempting to uplift remaining variables inzp ZP_BYTE:184 [ menu::$73 ]
Uplifting [menu] best 2841643 combination reg byte a [ menu::$73 ]
Attempting to uplift remaining variables inzp ZP_BYTE:271 [ bitmap_init::$0 ]

View File

@ -449,6 +449,7 @@ main: {
sta _1
//SEG29 [10] if((byte~) main::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@3 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b3_from_b2
//SEG30 [11] phi from main::@2 to main::@4 [phi:main::@2->main::@4]
b4_from_b2:

View File

@ -2396,6 +2396,7 @@ main: {
sta _15
//SEG65 [26] if((byte~) main::$15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@41 -- vbuz1_eq_0_then_la1
lda _15
cmp #0
beq b41_from_b30
//SEG66 [27] phi from main::@30 to main::@4 [phi:main::@30->main::@4]
b4_from_b30:
@ -2423,6 +2424,7 @@ main: {
sta _18
//SEG75 [31] if((byte~) main::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@42 -- vbuz1_eq_0_then_la1
lda _18
cmp #0
beq b42_from_b31
//SEG76 [32] phi from main::@31 to main::@5 [phi:main::@31->main::@5]
b5_from_b31:
@ -2450,6 +2452,7 @@ main: {
sta _21
//SEG85 [36] if((byte~) main::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@43 -- vbuz1_eq_0_then_la1
lda _21
cmp #0
beq b43_from_b32
//SEG86 [37] phi from main::@32 to main::@6 [phi:main::@32->main::@6]
b6_from_b32:
@ -2477,6 +2480,7 @@ main: {
sta _24
//SEG95 [41] if((byte~) main::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@44 -- vbuz1_eq_0_then_la1
lda _24
cmp #0
beq b44_from_b33
//SEG96 [42] phi from main::@33 to main::@7 [phi:main::@33->main::@7]
b7_from_b33:
@ -2588,6 +2592,7 @@ main: {
b11:
//SEG137 [60] if((byte) main::pressed#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 -- vbuz1_eq_0_then_la1
lda pressed
cmp #0
beq b12
jmp b22
//SEG138 main::@22
@ -2705,6 +2710,7 @@ plot_chargen: {
sta chargen+1
//SEG173 [76] if((byte) plot_chargen::shift#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@1 -- vbuz1_eq_0_then_la1
lda shift
cmp #0
beq b1_from_plot_chargen
jmp b5
//SEG174 plot_chargen::@5
@ -2795,6 +2801,7 @@ plot_chargen: {
sta _10
//SEG205 [89] if((byte~) plot_chargen::$10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@4 -- vbuz1_eq_0_then_la1
lda _10
cmp #0
beq b4_from_b3
//SEG206 [90] phi from plot_chargen::@3 to plot_chargen::@6 [phi:plot_chargen::@3->plot_chargen::@6]
b6_from_b3:
@ -2903,6 +2910,7 @@ mul8u: {
sta _1
//SEG238 [108] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG239 mul8u::@7
@ -3189,43 +3197,43 @@ Uplift Scope [print_str_at] 35.5: zp ZP_WORD:26 [ print_str_at::str#5 print_str_
Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:56 [ keyboard_matrix_read::rowid#0 ] 4: zp ZP_BYTE:57 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:60 [ keyboard_matrix_read::return#0 ]
Uplift Scope []
Uplifting [plot_chargen] best 815327 combination reg byte a [ plot_chargen::$10 ] reg byte x [ plot_chargen::x#2 plot_chargen::x#1 ] zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] zp ZP_WORD:16 [ plot_chargen::sc#3 plot_chargen::sc#7 plot_chargen::sc#2 plot_chargen::sc#0 plot_chargen::sc#1 ] reg byte a [ plot_chargen::c#2 ] zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ] zp ZP_BYTE:10 [ plot_chargen::shift#2 plot_chargen::shift#1 ] zp ZP_BYTE:9 [ plot_chargen::ch#2 plot_chargen::ch#1 ] zp ZP_BYTE:11 [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ] zp ZP_WORD:12 [ plot_chargen::chargen#5 plot_chargen::chargen#0 plot_chargen::chargen#1 ] zp ZP_WORD:44 [ plot_chargen::$0 ] zp ZP_WORD:46 [ plot_chargen::$1 ] zp ZP_WORD:50 [ plot_chargen::$8 ]
Uplifting [plot_chargen] best 817609 combination reg byte a [ plot_chargen::$10 ] reg byte x [ plot_chargen::x#2 plot_chargen::x#1 ] zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] zp ZP_WORD:16 [ plot_chargen::sc#3 plot_chargen::sc#7 plot_chargen::sc#2 plot_chargen::sc#0 plot_chargen::sc#1 ] reg byte a [ plot_chargen::c#2 ] zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ] zp ZP_BYTE:10 [ plot_chargen::shift#2 plot_chargen::shift#1 ] zp ZP_BYTE:9 [ plot_chargen::ch#2 plot_chargen::ch#1 ] zp ZP_BYTE:11 [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ] zp ZP_WORD:12 [ plot_chargen::chargen#5 plot_chargen::chargen#0 plot_chargen::chargen#1 ] zp ZP_WORD:44 [ plot_chargen::$0 ] zp ZP_WORD:46 [ plot_chargen::$1 ] zp ZP_WORD:50 [ plot_chargen::$8 ]
Limited combination testing to 100 combinations of 4608 possible.
Uplifting [mul8u] best 810324 combination zp ZP_WORD:21 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:23 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] zp ZP_WORD:48 [ mul8u::return#2 ]
Uplifting [main] best 808724 combination reg byte a [ main::pressed#2 main::pressed#1 ] zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] reg byte a [ main::key#0 ] zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_BYTE:4 [ main::i#2 main::i#1 ] zp ZP_BYTE:31 [ main::$15 ] zp ZP_BYTE:33 [ main::$18 ] zp ZP_BYTE:35 [ main::$21 ] zp ZP_BYTE:37 [ main::$24 ] zp ZP_BYTE:39 [ main::$27 ] zp ZP_BYTE:6 [ main::shift#10 ]
Uplifting [mul8u] best 810606 combination zp ZP_WORD:21 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:23 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] zp ZP_WORD:48 [ mul8u::return#2 ]
Uplifting [main] best 808806 combination reg byte a [ main::pressed#2 main::pressed#1 ] zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] reg byte a [ main::key#0 ] zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_BYTE:4 [ main::i#2 main::i#1 ] zp ZP_BYTE:31 [ main::$15 ] zp ZP_BYTE:33 [ main::$18 ] zp ZP_BYTE:35 [ main::$21 ] zp ZP_BYTE:37 [ main::$24 ] zp ZP_BYTE:39 [ main::$27 ] zp ZP_BYTE:6 [ main::shift#10 ]
Limited combination testing to 100 combinations of 262144 possible.
Uplifting [keyboard_key_pressed] best 807887 combination reg byte x [ keyboard_key_pressed::key#6 keyboard_key_pressed::key#5 ] reg byte a [ keyboard_key_pressed::return#14 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:34 [ keyboard_key_pressed::return#11 ] zp ZP_BYTE:36 [ keyboard_key_pressed::return#12 ] zp ZP_BYTE:38 [ keyboard_key_pressed::return#13 ] zp ZP_BYTE:59 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:55 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:58 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:54 [ keyboard_key_pressed::colidx#0 ]
Uplifting [keyboard_key_pressed] best 807969 combination reg byte x [ keyboard_key_pressed::key#6 keyboard_key_pressed::key#5 ] reg byte a [ keyboard_key_pressed::return#14 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:34 [ keyboard_key_pressed::return#11 ] zp ZP_BYTE:36 [ keyboard_key_pressed::return#12 ] zp ZP_BYTE:38 [ keyboard_key_pressed::return#13 ] zp ZP_BYTE:59 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:55 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:58 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:54 [ keyboard_key_pressed::colidx#0 ]
Limited combination testing to 100 combinations of 2359296 possible.
Uplifting [keyboard_get_keycode] best 806681 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte x [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ]
Uplifting [print_str_at] best 806681 combination zp ZP_WORD:26 [ print_str_at::str#5 print_str_at::str#7 print_str_at::str#4 ] zp ZP_WORD:28 [ print_str_at::at#5 print_str_at::at#7 print_str_at::at#4 ]
Uplifting [keyboard_matrix_read] best 806663 combination reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ]
Uplifting [] best 806663 combination
Uplifting [keyboard_get_keycode] best 806763 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte x [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ]
Uplifting [print_str_at] best 806763 combination zp ZP_WORD:26 [ print_str_at::str#5 print_str_at::str#7 print_str_at::str#4 ] zp ZP_WORD:28 [ print_str_at::at#5 print_str_at::at#7 print_str_at::at#4 ]
Uplifting [keyboard_matrix_read] best 806745 combination reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ]
Uplifting [] best 806745 combination
Attempting to uplift remaining variables inzp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ]
Uplifting [plot_chargen] best 806663 combination zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ]
Uplifting [plot_chargen] best 806745 combination zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ]
Uplifting [plot_chargen] best 806663 combination zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ]
Uplifting [plot_chargen] best 806745 combination zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:10 [ plot_chargen::shift#2 plot_chargen::shift#1 ]
Uplifting [plot_chargen] best 806359 combination reg byte x [ plot_chargen::shift#2 plot_chargen::shift#1 ]
Uplifting [plot_chargen] best 806439 combination reg byte x [ plot_chargen::shift#2 plot_chargen::shift#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:7 [ main::ch#2 main::ch#1 ]
Uplifting [main] best 806359 combination zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ]
Uplifting [main] best 806439 combination zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:9 [ plot_chargen::ch#2 plot_chargen::ch#1 ]
Uplifting [plot_chargen] best 806053 combination reg byte a [ plot_chargen::ch#2 plot_chargen::ch#1 ]
Uplifting [plot_chargen] best 806133 combination reg byte a [ plot_chargen::ch#2 plot_chargen::ch#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:11 [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ]
Uplifting [plot_chargen] best 805724 combination reg byte y [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ]
Uplifting [plot_chargen] best 805804 combination reg byte y [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ]
Uplifting [main] best 805724 combination zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ]
Uplifting [main] best 805804 combination zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:4 [ main::i#2 main::i#1 ]
Uplifting [main] best 805724 combination zp ZP_BYTE:4 [ main::i#2 main::i#1 ]
Uplifting [main] best 805804 combination zp ZP_BYTE:4 [ main::i#2 main::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:31 [ main::$15 ]
Uplifting [main] best 805684 combination reg byte a [ main::$15 ]
Uplifting [main] best 805744 combination reg byte a [ main::$15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:33 [ main::$18 ]
Uplifting [main] best 805644 combination reg byte a [ main::$18 ]
Uplifting [main] best 805684 combination reg byte a [ main::$18 ]
Attempting to uplift remaining variables inzp ZP_BYTE:34 [ keyboard_key_pressed::return#11 ]
Uplifting [keyboard_key_pressed] best 805584 combination reg byte a [ keyboard_key_pressed::return#11 ]
Uplifting [keyboard_key_pressed] best 805624 combination reg byte a [ keyboard_key_pressed::return#11 ]
Attempting to uplift remaining variables inzp ZP_BYTE:35 [ main::$21 ]
Uplifting [main] best 805544 combination reg byte a [ main::$21 ]
Uplifting [main] best 805564 combination reg byte a [ main::$21 ]
Attempting to uplift remaining variables inzp ZP_BYTE:36 [ keyboard_key_pressed::return#12 ]
Uplifting [keyboard_key_pressed] best 805484 combination reg byte a [ keyboard_key_pressed::return#12 ]
Uplifting [keyboard_key_pressed] best 805504 combination reg byte a [ keyboard_key_pressed::return#12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:37 [ main::$24 ]
Uplifting [main] best 805444 combination reg byte a [ main::$24 ]
Attempting to uplift remaining variables inzp ZP_BYTE:38 [ keyboard_key_pressed::return#13 ]

View File

@ -2220,6 +2220,7 @@ anim: {
sta _18
//SEG88 [48] if((byte~) anim::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 -- vbuz1_eq_0_then_la1
lda _18
cmp #0
beq b8_from_b24
jmp b14
//SEG89 anim::@14

View File

@ -1813,6 +1813,7 @@ scroll_bit: {
sta _9
//SEG87 [35] if((byte~) scroll_bit::$9==(byte/signed byte/word/signed word/dword/signed dword) 0) goto scroll_bit::@3 -- vbuz1_eq_0_then_la1
lda _9
cmp #0
beq b3_from_b2
//SEG88 [36] phi from scroll_bit::@2 to scroll_bit::@5 [phi:scroll_bit::@2->scroll_bit::@5]
b5_from_b2:

View File

@ -561,6 +561,7 @@ sin16s: {
adc x5_128+1
sta usinx+1
lda isUpper
cmp #0
beq b3
sec
lda sinx

View File

@ -4656,6 +4656,7 @@ mul16u: {
sta _1
//SEG249 [135] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG250 mul16u::@7
@ -5016,6 +5017,7 @@ sin16s: {
sta usinx_1+1
//SEG332 [175] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG333 sin16s::@6
@ -5252,6 +5254,7 @@ divr16u: {
sta _2
//SEG390 [204] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG391 divr16u::@4
@ -5729,61 +5732,61 @@ Uplift Scope [main] 38.5: zp ZP_BYTE:2 [ main::ch#2 main::ch#1 ]
Uplift Scope [] 26.71: zp ZP_WORD:3 [ xsin_idx#11 xsin_idx#19 xsin_idx#3 ] 0.8: zp ZP_WORD:177 [ rem16u#1 ]
Uplift Scope [div32u16u] 4: zp ZP_DWORD:80 [ div32u16u::return#2 ] 4: zp ZP_WORD:169 [ div32u16u::quotient_lo#0 ] 1.33: zp ZP_DWORD:171 [ div32u16u::return#0 ] 0.8: zp ZP_WORD:165 [ div32u16u::quotient_hi#0 ]
Uplifting [mul16u] best 76100 combination zp ZP_DWORD:25 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:29 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:23 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:21 [ mul16u::b#2 mul16u::b#1 ] zp ZP_DWORD:104 [ mul16u::return#2 ] zp ZP_DWORD:149 [ mul16u::return#3 ]
Uplifting [divr16u] best 75910 combination zp ZP_WORD:45 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:49 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:47 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:163 [ divr16u::return#2 ] zp ZP_WORD:167 [ divr16u::return#3 ]
Uplifting [sin16s_gen2] best 75910 combination zp ZP_DWORD:96 [ sin16s_gen2::$5 ] zp ZP_WORD:102 [ sin16s_gen2::$8 ] zp ZP_WORD:15 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp ZP_WORD:100 [ sin16s_gen2::$6 ] zp ZP_DWORD:9 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp ZP_WORD:13 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp ZP_DWORD:84 [ sin16s_gen2::step#0 ]
Uplifting [sin16s] best 75910 combination zp ZP_DWORD:34 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:88 [ sin16s::return#0 ] zp ZP_WORD:38 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:117 [ sin16s::$6 ] zp ZP_WORD:125 [ sin16s::x2#0 ] zp ZP_WORD:133 [ sin16s::x3_6#0 ] zp ZP_WORD:139 [ sin16s::x4#0 ] zp ZP_WORD:143 [ sin16s::x5#0 ] zp ZP_WORD:145 [ sin16s::x5_128#0 ] zp ZP_WORD:129 [ sin16s::x3#0 ] zp ZP_WORD:147 [ sin16s::usinx#1 ] zp ZP_WORD:121 [ sin16s::x1#0 ] zp ZP_WORD:135 [ sin16s::usinx#0 ] zp ZP_BYTE:33 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 75894 combination zp ZP_WORD:40 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:42 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:123 [ mulu16_sel::return#0 ] zp ZP_WORD:127 [ mulu16_sel::return#1 ] zp ZP_WORD:131 [ mulu16_sel::return#2 ] zp ZP_WORD:137 [ mulu16_sel::return#10 ] zp ZP_WORD:141 [ mulu16_sel::return#11 ] zp ZP_DWORD:153 [ mulu16_sel::$0 ] zp ZP_DWORD:157 [ mulu16_sel::$1 ] zp ZP_WORD:161 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [mul16s] best 75894 combination zp ZP_DWORD:92 [ mul16s::return#2 ] zp ZP_DWORD:17 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 ] zp ZP_DWORD:112 [ mul16s::return#0 ] zp ZP_WORD:108 [ mul16s::$6 ] zp ZP_WORD:110 [ mul16s::$16 ] zp ZP_WORD:90 [ mul16s::a#0 ]
Uplifting [loop] best 75894 combination zp ZP_WORD:55 [ loop::$1 ] zp ZP_WORD:57 [ loop::xpos#0 ]
Uplifting [fill] best 75878 combination zp ZP_WORD:53 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:179 [ fill::end#0 ] reg byte x [ fill::val#3 ]
Uplifting [main] best 75758 combination reg byte x [ main::ch#2 main::ch#1 ]
Uplifting [] best 75758 combination zp ZP_WORD:3 [ xsin_idx#11 xsin_idx#19 xsin_idx#3 ] zp ZP_WORD:177 [ rem16u#1 ]
Uplifting [div32u16u] best 75758 combination zp ZP_DWORD:80 [ div32u16u::return#2 ] zp ZP_WORD:169 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:171 [ div32u16u::return#0 ] zp ZP_WORD:165 [ div32u16u::quotient_hi#0 ]
Uplifting [mul16u] best 76122 combination zp ZP_DWORD:25 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:29 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:23 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:21 [ mul16u::b#2 mul16u::b#1 ] zp ZP_DWORD:104 [ mul16u::return#2 ] zp ZP_DWORD:149 [ mul16u::return#3 ]
Uplifting [divr16u] best 75912 combination zp ZP_WORD:45 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:49 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:47 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:163 [ divr16u::return#2 ] zp ZP_WORD:167 [ divr16u::return#3 ]
Uplifting [sin16s_gen2] best 75912 combination zp ZP_DWORD:96 [ sin16s_gen2::$5 ] zp ZP_WORD:102 [ sin16s_gen2::$8 ] zp ZP_WORD:15 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp ZP_WORD:100 [ sin16s_gen2::$6 ] zp ZP_DWORD:9 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp ZP_WORD:13 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp ZP_DWORD:84 [ sin16s_gen2::step#0 ]
Uplifting [sin16s] best 75912 combination zp ZP_DWORD:34 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:88 [ sin16s::return#0 ] zp ZP_WORD:38 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:117 [ sin16s::$6 ] zp ZP_WORD:125 [ sin16s::x2#0 ] zp ZP_WORD:133 [ sin16s::x3_6#0 ] zp ZP_WORD:139 [ sin16s::x4#0 ] zp ZP_WORD:143 [ sin16s::x5#0 ] zp ZP_WORD:145 [ sin16s::x5_128#0 ] zp ZP_WORD:129 [ sin16s::x3#0 ] zp ZP_WORD:147 [ sin16s::usinx#1 ] zp ZP_WORD:121 [ sin16s::x1#0 ] zp ZP_WORD:135 [ sin16s::usinx#0 ] zp ZP_BYTE:33 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 75896 combination zp ZP_WORD:40 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:42 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:123 [ mulu16_sel::return#0 ] zp ZP_WORD:127 [ mulu16_sel::return#1 ] zp ZP_WORD:131 [ mulu16_sel::return#2 ] zp ZP_WORD:137 [ mulu16_sel::return#10 ] zp ZP_WORD:141 [ mulu16_sel::return#11 ] zp ZP_DWORD:153 [ mulu16_sel::$0 ] zp ZP_DWORD:157 [ mulu16_sel::$1 ] zp ZP_WORD:161 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [mul16s] best 75896 combination zp ZP_DWORD:92 [ mul16s::return#2 ] zp ZP_DWORD:17 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 ] zp ZP_DWORD:112 [ mul16s::return#0 ] zp ZP_WORD:108 [ mul16s::$6 ] zp ZP_WORD:110 [ mul16s::$16 ] zp ZP_WORD:90 [ mul16s::a#0 ]
Uplifting [loop] best 75896 combination zp ZP_WORD:55 [ loop::$1 ] zp ZP_WORD:57 [ loop::xpos#0 ]
Uplifting [fill] best 75880 combination zp ZP_WORD:53 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:179 [ fill::end#0 ] reg byte x [ fill::val#3 ]
Uplifting [main] best 75760 combination reg byte x [ main::ch#2 main::ch#1 ]
Uplifting [] best 75760 combination zp ZP_WORD:3 [ xsin_idx#11 xsin_idx#19 xsin_idx#3 ] zp ZP_WORD:177 [ rem16u#1 ]
Uplifting [div32u16u] best 75760 combination zp ZP_DWORD:80 [ div32u16u::return#2 ] zp ZP_WORD:169 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:171 [ div32u16u::return#0 ] zp ZP_WORD:165 [ div32u16u::quotient_hi#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ render_logo::screen_idx#19 render_logo::screen_idx#3 render_logo::screen_idx#17 render_logo::screen_idx#2 ]
Uplifting [render_logo] best 70658 combination reg byte x [ render_logo::screen_idx#19 render_logo::screen_idx#3 render_logo::screen_idx#17 render_logo::screen_idx#2 ]
Uplifting [render_logo] best 70660 combination reg byte x [ render_logo::screen_idx#19 render_logo::screen_idx#3 render_logo::screen_idx#17 render_logo::screen_idx#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:8 [ render_logo::screen_idx#14 render_logo::screen_idx#20 render_logo::screen_idx#4 render_logo::screen_idx#5 ]
Uplifting [render_logo] best 65858 combination reg byte x [ render_logo::screen_idx#14 render_logo::screen_idx#20 render_logo::screen_idx#4 render_logo::screen_idx#5 ]
Uplifting [render_logo] best 65860 combination reg byte x [ render_logo::screen_idx#14 render_logo::screen_idx#20 render_logo::screen_idx#4 render_logo::screen_idx#5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:7 [ render_logo::logo_idx#10 render_logo::logo_idx#13 render_logo::logo_idx#3 ]
Uplifting [render_logo] best 64655 combination reg byte y [ render_logo::logo_idx#10 render_logo::logo_idx#13 render_logo::logo_idx#3 ]
Uplifting [render_logo] best 64657 combination reg byte y [ render_logo::logo_idx#10 render_logo::logo_idx#13 render_logo::logo_idx#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:6 [ render_logo::logo_idx#11 render_logo::logo_idx#2 ]
Uplifting [render_logo] best 63455 combination reg byte y [ render_logo::logo_idx#11 render_logo::logo_idx#2 ]
Uplifting [render_logo] best 63457 combination reg byte y [ render_logo::logo_idx#11 render_logo::logo_idx#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:67 [ render_logo::$15 ]
Uplifting [render_logo] best 62855 combination reg byte a [ render_logo::$15 ]
Uplifting [render_logo] best 62857 combination reg byte a [ render_logo::$15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:68 [ render_logo::$34 ]
Uplifting [render_logo] best 62255 combination reg byte a [ render_logo::$34 ]
Uplifting [render_logo] best 62257 combination reg byte a [ render_logo::$34 ]
Attempting to uplift remaining variables inzp ZP_BYTE:69 [ render_logo::$38 ]
Uplifting [render_logo] best 61655 combination reg byte a [ render_logo::$38 ]
Uplifting [render_logo] best 61657 combination reg byte a [ render_logo::$38 ]
Attempting to uplift remaining variables inzp ZP_BYTE:70 [ render_logo::$42 ]
Uplifting [render_logo] best 61055 combination reg byte a [ render_logo::$42 ]
Uplifting [render_logo] best 61057 combination reg byte a [ render_logo::$42 ]
Attempting to uplift remaining variables inzp ZP_BYTE:71 [ render_logo::$46 ]
Uplifting [render_logo] best 60455 combination reg byte a [ render_logo::$46 ]
Uplifting [render_logo] best 60457 combination reg byte a [ render_logo::$46 ]
Attempting to uplift remaining variables inzp ZP_BYTE:72 [ render_logo::$50 ]
Uplifting [render_logo] best 59855 combination reg byte a [ render_logo::$50 ]
Uplifting [render_logo] best 59857 combination reg byte a [ render_logo::$50 ]
Attempting to uplift remaining variables inzp ZP_BYTE:74 [ render_logo::$23 ]
Uplifting [render_logo] best 59255 combination reg byte a [ render_logo::$23 ]
Uplifting [render_logo] best 59257 combination reg byte a [ render_logo::$23 ]
Attempting to uplift remaining variables inzp ZP_BYTE:75 [ render_logo::$80 ]
Uplifting [render_logo] best 58655 combination reg byte a [ render_logo::$80 ]
Uplifting [render_logo] best 58657 combination reg byte a [ render_logo::$80 ]
Attempting to uplift remaining variables inzp ZP_BYTE:76 [ render_logo::$84 ]
Uplifting [render_logo] best 58055 combination reg byte a [ render_logo::$84 ]
Uplifting [render_logo] best 58057 combination reg byte a [ render_logo::$84 ]
Attempting to uplift remaining variables inzp ZP_BYTE:77 [ render_logo::$88 ]
Uplifting [render_logo] best 57455 combination reg byte a [ render_logo::$88 ]
Uplifting [render_logo] best 57457 combination reg byte a [ render_logo::$88 ]
Attempting to uplift remaining variables inzp ZP_BYTE:78 [ render_logo::$92 ]
Uplifting [render_logo] best 56855 combination reg byte a [ render_logo::$92 ]
Uplifting [render_logo] best 56857 combination reg byte a [ render_logo::$92 ]
Attempting to uplift remaining variables inzp ZP_BYTE:79 [ render_logo::$96 ]
Uplifting [render_logo] best 56255 combination reg byte a [ render_logo::$96 ]
Uplifting [render_logo] best 56257 combination reg byte a [ render_logo::$96 ]
Attempting to uplift remaining variables inzp ZP_BYTE:61 [ render_logo::$0 ]
Uplifting [render_logo] best 56249 combination reg byte a [ render_logo::$0 ]
Uplifting [render_logo] best 56251 combination reg byte a [ render_logo::$0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:62 [ render_logo::$1 ]
Uplifting [render_logo] best 56243 combination reg byte a [ render_logo::$1 ]
Uplifting [render_logo] best 56245 combination reg byte a [ render_logo::$1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:63 [ render_logo::$2 ]
Uplifting [render_logo] best 56237 combination reg byte a [ render_logo::$2 ]
Uplifting [render_logo] best 56239 combination reg byte a [ render_logo::$2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:73 [ render_logo::$17 ]
Uplifting [render_logo] best 56233 combination reg byte a [ render_logo::$17 ]
Uplifting [render_logo] best 56235 combination reg byte a [ render_logo::$17 ]
Attempting to uplift remaining variables inzp ZP_BYTE:66 [ render_logo::x_char#0 ]
Uplifting [render_logo] best 56233 combination zp ZP_BYTE:66 [ render_logo::x_char#0 ]
Uplifting [render_logo] best 56235 combination zp ZP_BYTE:66 [ render_logo::x_char#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:33 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 56233 combination zp ZP_BYTE:33 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 56235 combination zp ZP_BYTE:33 [ sin16s::isUpper#2 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:38 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp ZP_WORD:147 [ sin16s::usinx#1 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:40 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] ] with [ zp ZP_WORD:129 [ sin16s::x3#0 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:45 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:177 [ rem16u#1 ] ] - score: 2
@ -6949,6 +6952,7 @@ sin16s: {
sta usinx+1
//SEG332 [175] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG333 sin16s::@6
@ -7930,7 +7934,7 @@ reg byte a [ divr16u::$2 ]
FINAL ASSEMBLER
Score: 41393
Score: 41395
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -8848,6 +8852,7 @@ sin16s: {
sta usinx+1
//SEG332 [175] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b3
//SEG333 sin16s::@6
//SEG334 [176] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 -- vwsz1=_neg_vwsz1

View File

@ -556,6 +556,7 @@ sin16s: {
adc x5_128+1
sta usinx+1
lda isUpper
cmp #0
beq b3
sec
lda sinx

View File

@ -4134,6 +4134,7 @@ mul16u: {
sta _1
//SEG192 [107] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG193 mul16u::@7
@ -4494,6 +4495,7 @@ sin16s: {
sta usinx_1+1
//SEG275 [147] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG276 sin16s::@6
@ -4730,6 +4732,7 @@ divr16u: {
sta _2
//SEG333 [176] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG334 divr16u::@4
@ -5403,34 +5406,34 @@ Uplift Scope [div32u16u] 4: zp ZP_DWORD:89 [ div32u16u::return#2 ] 4: zp ZP_WORD
Uplift Scope [] 0.8: zp ZP_WORD:186 [ rem16u#1 ]
Uplift Scope [main]
Uplifting [mul16u] best 36747 combination zp ZP_DWORD:27 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:31 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:25 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:23 [ mul16u::b#2 mul16u::b#1 ] zp ZP_DWORD:113 [ mul16u::return#2 ] zp ZP_DWORD:158 [ mul16u::return#3 ]
Uplifting [wrap_y] best 36564 combination zp ZP_WORD:9 [ wrap_y::y#6 wrap_y::y#4 wrap_y::y#9 wrap_y::y#0 wrap_y::y#1 wrap_y::y#2 wrap_y::y#3 ] reg byte a [ wrap_y::return#0 ] reg byte a [ wrap_y::return#1 ] reg byte a [ wrap_y::return#2 ]
Uplifting [bitmap_clear] best 35664 combination zp ZP_WORD:55 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:188 [ bitmap_clear::$3 ]
Uplifting [divr16u] best 35474 combination zp ZP_WORD:47 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:51 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:49 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:172 [ divr16u::return#2 ] zp ZP_WORD:176 [ divr16u::return#3 ]
Uplifting [bitmap_init] best 35034 combination zp ZP_WORD:61 [ 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::y#2 bitmap_init::y#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte a [ bitmap_init::$4 ] zp ZP_BYTE:192 [ bitmap_init::$5 ] zp ZP_BYTE:193 [ bitmap_init::$6 ] zp ZP_BYTE:194 [ bitmap_init::$7 ] zp ZP_BYTE:190 [ bitmap_init::$3 ]
Uplifting [mul16u] best 36769 combination zp ZP_DWORD:27 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:31 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:25 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:23 [ mul16u::b#2 mul16u::b#1 ] zp ZP_DWORD:113 [ mul16u::return#2 ] zp ZP_DWORD:158 [ mul16u::return#3 ]
Uplifting [wrap_y] best 36586 combination zp ZP_WORD:9 [ wrap_y::y#6 wrap_y::y#4 wrap_y::y#9 wrap_y::y#0 wrap_y::y#1 wrap_y::y#2 wrap_y::y#3 ] reg byte a [ wrap_y::return#0 ] reg byte a [ wrap_y::return#1 ] reg byte a [ wrap_y::return#2 ]
Uplifting [bitmap_clear] best 35686 combination zp ZP_WORD:55 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:188 [ bitmap_clear::$3 ]
Uplifting [divr16u] best 35476 combination zp ZP_WORD:47 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:51 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:49 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:172 [ divr16u::return#2 ] zp ZP_WORD:176 [ divr16u::return#3 ]
Uplifting [bitmap_init] best 35036 combination zp ZP_WORD:61 [ 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::y#2 bitmap_init::y#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte a [ bitmap_init::$4 ] zp ZP_BYTE:192 [ bitmap_init::$5 ] zp ZP_BYTE:193 [ bitmap_init::$6 ] zp ZP_BYTE:194 [ bitmap_init::$7 ] zp ZP_BYTE:190 [ bitmap_init::$3 ]
Limited combination testing to 100 combinations of 61440 possible.
Uplifting [render_sine] best 34954 combination zp ZP_WORD:65 [ render_sine::$0 ] zp ZP_WORD:67 [ render_sine::$1 ] zp ZP_WORD:69 [ render_sine::sin_val#0 ] zp ZP_WORD:73 [ render_sine::$4 ] zp ZP_WORD:75 [ render_sine::$5 ] zp ZP_WORD:77 [ render_sine::sin2_val#0 ] zp ZP_WORD:4 [ render_sine::xpos#3 render_sine::xpos#8 render_sine::xpos#1 ] zp ZP_WORD:2 [ render_sine::sin_idx#2 render_sine::sin_idx#1 ] reg byte x [ render_sine::ypos#0 ] reg byte x [ render_sine::ypos2#0 ]
Uplifting [bitmap_plot] best 34887 combination reg byte x [ bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 ] zp ZP_WORD:7 [ bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 ] zp ZP_WORD:83 [ bitmap_plot::$1 ] reg byte a [ bitmap_plot::$2 ] zp ZP_WORD:85 [ bitmap_plot::plotter#1 ] zp ZP_WORD:81 [ bitmap_plot::$3 ]
Uplifting [sin16s_gen2] best 34887 combination zp ZP_DWORD:105 [ sin16s_gen2::$5 ] zp ZP_WORD:111 [ sin16s_gen2::$8 ] zp ZP_WORD:17 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp ZP_WORD:109 [ sin16s_gen2::$6 ] zp ZP_DWORD:11 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp ZP_WORD:15 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp ZP_DWORD:93 [ sin16s_gen2::step#0 ]
Uplifting [sin16s] best 34887 combination zp ZP_DWORD:36 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:97 [ sin16s::return#0 ] zp ZP_WORD:40 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:126 [ sin16s::$6 ] zp ZP_WORD:134 [ sin16s::x2#0 ] zp ZP_WORD:142 [ sin16s::x3_6#0 ] zp ZP_WORD:148 [ sin16s::x4#0 ] zp ZP_WORD:152 [ sin16s::x5#0 ] zp ZP_WORD:154 [ sin16s::x5_128#0 ] zp ZP_WORD:138 [ sin16s::x3#0 ] zp ZP_WORD:156 [ sin16s::usinx#1 ] zp ZP_WORD:130 [ sin16s::x1#0 ] zp ZP_WORD:144 [ sin16s::usinx#0 ] zp ZP_BYTE:35 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 34871 combination zp ZP_WORD:42 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:44 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:132 [ mulu16_sel::return#0 ] zp ZP_WORD:136 [ mulu16_sel::return#1 ] zp ZP_WORD:140 [ mulu16_sel::return#2 ] zp ZP_WORD:146 [ mulu16_sel::return#10 ] zp ZP_WORD:150 [ mulu16_sel::return#11 ] zp ZP_DWORD:162 [ mulu16_sel::$0 ] zp ZP_DWORD:166 [ mulu16_sel::$1 ] zp ZP_WORD:170 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [mul16s] best 34871 combination zp ZP_DWORD:101 [ mul16s::return#2 ] zp ZP_DWORD:19 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 ] zp ZP_DWORD:121 [ mul16s::return#0 ] zp ZP_WORD:117 [ mul16s::$6 ] zp ZP_WORD:119 [ mul16s::$16 ] zp ZP_WORD:99 [ mul16s::a#0 ]
Uplifting [fill] best 34871 combination zp ZP_WORD:63 [ fill::addr#2 fill::addr#1 ]
Uplifting [div32u16u] best 34871 combination zp ZP_DWORD:89 [ div32u16u::return#2 ] zp ZP_WORD:178 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:180 [ div32u16u::return#0 ] zp ZP_WORD:174 [ div32u16u::quotient_hi#0 ]
Uplifting [] best 34871 combination zp ZP_WORD:186 [ rem16u#1 ]
Uplifting [main] best 34871 combination
Uplifting [render_sine] best 34956 combination zp ZP_WORD:65 [ render_sine::$0 ] zp ZP_WORD:67 [ render_sine::$1 ] zp ZP_WORD:69 [ render_sine::sin_val#0 ] zp ZP_WORD:73 [ render_sine::$4 ] zp ZP_WORD:75 [ render_sine::$5 ] zp ZP_WORD:77 [ render_sine::sin2_val#0 ] zp ZP_WORD:4 [ render_sine::xpos#3 render_sine::xpos#8 render_sine::xpos#1 ] zp ZP_WORD:2 [ render_sine::sin_idx#2 render_sine::sin_idx#1 ] reg byte x [ render_sine::ypos#0 ] reg byte x [ render_sine::ypos2#0 ]
Uplifting [bitmap_plot] best 34889 combination reg byte x [ bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 ] zp ZP_WORD:7 [ bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 ] zp ZP_WORD:83 [ bitmap_plot::$1 ] reg byte a [ bitmap_plot::$2 ] zp ZP_WORD:85 [ bitmap_plot::plotter#1 ] zp ZP_WORD:81 [ bitmap_plot::$3 ]
Uplifting [sin16s_gen2] best 34889 combination zp ZP_DWORD:105 [ sin16s_gen2::$5 ] zp ZP_WORD:111 [ sin16s_gen2::$8 ] zp ZP_WORD:17 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp ZP_WORD:109 [ sin16s_gen2::$6 ] zp ZP_DWORD:11 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp ZP_WORD:15 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp ZP_DWORD:93 [ sin16s_gen2::step#0 ]
Uplifting [sin16s] best 34889 combination zp ZP_DWORD:36 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:97 [ sin16s::return#0 ] zp ZP_WORD:40 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:126 [ sin16s::$6 ] zp ZP_WORD:134 [ sin16s::x2#0 ] zp ZP_WORD:142 [ sin16s::x3_6#0 ] zp ZP_WORD:148 [ sin16s::x4#0 ] zp ZP_WORD:152 [ sin16s::x5#0 ] zp ZP_WORD:154 [ sin16s::x5_128#0 ] zp ZP_WORD:138 [ sin16s::x3#0 ] zp ZP_WORD:156 [ sin16s::usinx#1 ] zp ZP_WORD:130 [ sin16s::x1#0 ] zp ZP_WORD:144 [ sin16s::usinx#0 ] zp ZP_BYTE:35 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 34873 combination zp ZP_WORD:42 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:44 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:132 [ mulu16_sel::return#0 ] zp ZP_WORD:136 [ mulu16_sel::return#1 ] zp ZP_WORD:140 [ mulu16_sel::return#2 ] zp ZP_WORD:146 [ mulu16_sel::return#10 ] zp ZP_WORD:150 [ mulu16_sel::return#11 ] zp ZP_DWORD:162 [ mulu16_sel::$0 ] zp ZP_DWORD:166 [ mulu16_sel::$1 ] zp ZP_WORD:170 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [mul16s] best 34873 combination zp ZP_DWORD:101 [ mul16s::return#2 ] zp ZP_DWORD:19 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 ] zp ZP_DWORD:121 [ mul16s::return#0 ] zp ZP_WORD:117 [ mul16s::$6 ] zp ZP_WORD:119 [ mul16s::$16 ] zp ZP_WORD:99 [ mul16s::a#0 ]
Uplifting [fill] best 34873 combination zp ZP_WORD:63 [ fill::addr#2 fill::addr#1 ]
Uplifting [div32u16u] best 34873 combination zp ZP_DWORD:89 [ div32u16u::return#2 ] zp ZP_WORD:178 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:180 [ div32u16u::return#0 ] zp ZP_WORD:174 [ div32u16u::quotient_hi#0 ]
Uplifting [] best 34873 combination zp ZP_WORD:186 [ rem16u#1 ]
Uplifting [main] best 34873 combination
Attempting to uplift remaining variables inzp ZP_BYTE:192 [ bitmap_init::$5 ]
Uplifting [bitmap_init] best 34811 combination reg byte a [ bitmap_init::$5 ]
Uplifting [bitmap_init] best 34813 combination reg byte a [ bitmap_init::$5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:193 [ bitmap_init::$6 ]
Uplifting [bitmap_init] best 34751 combination reg byte a [ bitmap_init::$6 ]
Uplifting [bitmap_init] best 34753 combination reg byte a [ bitmap_init::$6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:194 [ bitmap_init::$7 ]
Uplifting [bitmap_init] best 34691 combination reg byte a [ bitmap_init::$7 ]
Uplifting [bitmap_init] best 34693 combination reg byte a [ bitmap_init::$7 ]
Attempting to uplift remaining variables inzp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Uplifting [bitmap_clear] best 34691 combination zp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Uplifting [bitmap_clear] best 34693 combination zp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:190 [ bitmap_init::$3 ]
Uplifting [bitmap_init] best 34691 combination zp ZP_BYTE:190 [ bitmap_init::$3 ]
Uplifting [bitmap_init] best 34693 combination zp ZP_BYTE:190 [ bitmap_init::$3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:35 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 34691 combination zp ZP_BYTE:35 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 34693 combination zp ZP_BYTE:35 [ sin16s::isUpper#2 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ render_sine::xpos#3 render_sine::xpos#8 render_sine::xpos#1 ] ] with [ zp ZP_WORD:7 [ bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:40 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp ZP_WORD:156 [ sin16s::usinx#1 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:42 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] ] with [ zp ZP_WORD:138 [ sin16s::x3#0 ] ] - score: 2
@ -6504,6 +6507,7 @@ sin16s: {
sta usinx+1
//SEG275 [147] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG276 sin16s::@6
@ -7702,7 +7706,7 @@ reg byte a [ bitmap_init::$7 ]
FINAL ASSEMBLER
Score: 28367
Score: 28369
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -8564,6 +8568,7 @@ sin16s: {
sta usinx+1
//SEG275 [147] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b3
//SEG276 sin16s::@6
//SEG277 [148] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 -- vwsz1=_neg_vwsz1

View File

@ -4294,6 +4294,7 @@ gen_chargen_sprite: {
sta _3
//SEG392 [188] if((byte~) gen_chargen_sprite::$3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_chargen_sprite::@3 -- vbuz1_eq_0_then_la1
lda _3
cmp #0
beq b3_from_b2
//SEG393 [189] phi from gen_chargen_sprite::@2 to gen_chargen_sprite::@6 [phi:gen_chargen_sprite::@2->gen_chargen_sprite::@6]
b6_from_b2:

View File

@ -7,6 +7,7 @@
.label CIA1_PORT_A = $dc00
.label CIA1_PORT_B = $dc01
.const BLACK = 0
.const GREEN = 5
.const DARK_GREY = $b
.const KEY_Z = $c
.const KEY_LSHIFT = $f
@ -18,35 +19,72 @@
.const KEY_SPACE = $3c
.const KEY_COMMODORE = $3d
.label SCREEN = $400
.const PLAYFIELD_LINES = $16
.const PLAYFIELD_COLS = $a
.const current_movedown_rate = $32
.const current_movedown_rate_fast = 5
.label current_movedown_counter = 2
.label current_xpos = 5
.label current_piece_orientation = 6
.label current_ypos = 3
.label current_ypos_14 = 4
.label current_xpos_26 = 7
.label current_ypos_62 = 4
.label current_xpos_64 = 7
.const COLLISION_NONE = 0
.const COLLISION_PLAYFIELD = 1
.const COLLISION_BOTTOM = 2
.const COLLISION_LEFT = 4
.const COLLISION_RIGHT = 8
.label keyboard_events_size = $12
.label current_ypos = 2
.label current_piece_orientation = $d
.label current_piece_gfx = $e
.label current_xpos = $11
.label current_piece = $b
.label current_piece_color = $10
.label current_movedown_counter = 3
.label current_ypos_35 = 4
.label current_piece_gfx_46 = 5
.label current_piece_gfx_75 = 5
.label current_xpos_81 = 7
.label current_piece_color_62 = 8
.label current_ypos_75 = 4
.label current_piece_gfx_99 = 5
.label current_xpos_91 = 7
.label current_piece_color_69 = 8
.label current_piece_gfx_108 = 5
.label current_piece_gfx_109 = 5
.label current_piece_gfx_110 = 5
jsr main
main: {
.label key_event = 8
.label movedown = 4
.label key_event = $a
.label render = $13
sei
jsr init
jsr spawn_current
jsr render_playfield
lda #GREEN
sta current_piece_color_62
lda #3
sta current_xpos_26
sta current_xpos_81
lda #<piece_t
sta current_piece_gfx_75
lda #>piece_t
sta current_piece_gfx_75+1
lda #0
sta current_ypos_14
tay
sta current_ypos_35
jsr render_current
lda #0
sta current_movedown_counter
sta keyboard_events_size
sta current_ypos
lda #3
sta current_xpos
lda #GREEN
sta current_piece_color
lda #<piece_t
sta current_piece_gfx
lda #>piece_t
sta current_piece_gfx+1
lda #0
sta current_ypos
sta current_movedown_counter
tax
sta current_piece_orientation
lda #<piece_t
sta current_piece
lda #>piece_t
sta current_piece+1
b4:
lda RASTER
cmp #$ff
@ -55,143 +93,78 @@ main: {
lda RASTER
cmp #$fe
bne b7
inc BORDERCOL
jsr keyboard_event_scan
jsr keyboard_event_get
sta key_event
inc current_movedown_counter
cmp #KEY_SPACE
bne b1
lda #1
sta movedown
jmp b10
b1:
lda #0
sta movedown
b10:
lda #KEY_SPACE
sta keyboard_event_pressed.keycode
jsr keyboard_event_pressed
cmp #0
beq b11
lda current_movedown_counter
cmp #current_movedown_rate_fast
bcc b11
inc movedown
b11:
lda current_movedown_counter
cmp #current_movedown_rate
bcc b13
inc movedown
b13:
lda movedown
beq b2
jsr current_movedown
lda #0
sta current_movedown_counter
ldy #1
jmp b14
b2:
ldy #0
b14:
lda #$80
and key_event
cmp #0
bne b15
lda key_event
cmp #KEY_COMMA
bne b16
dec current_xpos
iny
b16:
lda key_event
cmp #KEY_DOT
bne b17
inc current_xpos
iny
b17:
lda key_event
cmp #KEY_Z
bne b18
lda current_piece_orientation
sec
sbc #$10
and #$3f
sta current_piece_orientation
iny
b18:
lda key_event
cmp #KEY_X
bne b15
lda #$10
jsr play_movedown
txa
clc
adc current_piece_orientation
and #$3f
sta current_piece_orientation
iny
b15:
cpy #0
bne !b4+
jmp b4
!b4:
adc #0
sta render
ldx key_event
jsr play_moveother
clc
adc render
cmp #0
beq b10
inc BORDERCOL
jsr render_playfield
ldy current_piece_orientation
lda current_ypos
sta current_ypos_62
sta current_ypos_75
lda current_piece_gfx
sta current_piece_gfx_99
lda current_piece_gfx+1
sta current_piece_gfx_99+1
lda current_xpos
sta current_xpos_64
sta current_xpos_91
lda current_piece_color
sta current_piece_color_69
jsr render_current
dec BORDERCOL
b10:
dec BORDERCOL
jmp b4
}
render_current: {
.label current_piece_gfx = $b
.label screen_line = $d
.label current_cell = $f
.label i = 9
.label c = $a
.label l = 8
tya
clc
adc #<piece_t
sta current_piece_gfx
lda #>piece_t
adc #0
sta current_piece_gfx+1
.label l = 9
.label screen_line = $14
.label i = $a
lda #0
sta i
sta l
b1:
lda current_ypos_14
lda current_ypos_35
clc
adc l
cmp #PLAYFIELD_LINES
bcs b2
asl
tay
lda screen_lines,y
sta screen_line
lda screen_lines+1,y
sta screen_line+1
lda #0
sta c
b2:
ldy i
lda (current_piece_gfx),y
sta current_cell
inc i
beq b3
lda current_xpos_26
clc
adc c
cmp #$a
bcs b3
tay
lda current_cell
sta (screen_line),y
ldx #0
b3:
inc c
lda c
cmp #4
bne b2
ldy i
lda (current_piece_gfx_75),y
inc i
cmp #0
beq b4
txa
clc
adc current_xpos_81
cmp #PLAYFIELD_COLS
bcs b4
tay
lda current_piece_color_62
sta (screen_line),y
b4:
inx
cpx #4
bne b3
b2:
inc l
lda l
cmp #4
@ -199,10 +172,9 @@ render_current: {
rts
}
render_playfield: {
.label _1 = $d
.label line = $b
.label i = 8
.label c = 7
.label _3 = $14
.label line = 5
.label i = 7
.label l = 4
lda #0
sta i
@ -215,38 +187,300 @@ render_playfield: {
sta line
lda screen_lines+1,y
sta line+1
lda #0
sta c
ldx #0
b2:
lda c
txa
clc
adc line
sta _1
sta _3
lda #0
adc line+1
sta _1+1
sta _3+1
ldy i
lda playfield,y
ldy #0
sta (_1),y
sta (_3),y
inc i
inc c
lda c
cmp #$a
inx
cpx #PLAYFIELD_COLS-1+1
bne b2
inc l
lda l
cmp #$14
cmp #PLAYFIELD_LINES-1+1
bne b1
rts
}
current_movedown: {
play_moveother: {
txa
and #$80
cmp #0
bne b6
cpx #KEY_COMMA
beq b2
cpx #KEY_DOT
beq b3
cpx #KEY_Z
beq b4
cpx #KEY_X
bne b6
lda #$10
clc
adc current_piece_orientation
and #$3f
sta current_piece_orientation
clc
adc current_piece
sta current_piece_gfx
lda #0
adc current_piece+1
sta current_piece_gfx+1
b5:
lda #1
jmp b1
b6:
lda #0
b1:
rts
b4:
lda current_piece_orientation
sec
sbc #$10
and #$3f
sta current_piece_orientation
clc
adc current_piece
sta current_piece_gfx
lda #0
adc current_piece+1
sta current_piece_gfx+1
jmp b5
b3:
ldy current_xpos
iny
sty collision.xpos
lda current_ypos
sta collision.ypos
lda current_piece_gfx
sta current_piece_gfx_110
lda current_piece_gfx+1
sta current_piece_gfx_110+1
jsr collision
cmp #COLLISION_NONE
bne b6
inc current_xpos
jmp b5
b2:
ldx current_xpos
dex
stx collision.xpos
lda current_ypos
sta collision.ypos
lda current_piece_gfx
sta current_piece_gfx_109
lda current_piece_gfx+1
sta current_piece_gfx_109+1
jsr collision
cmp #COLLISION_NONE
bne b6
dec current_xpos
jmp b5
}
collision: {
.label ypos = 4
.label xpos = 7
.label line = $16
.label playfield_line = $14
.label i = $17
.label l = 8
.label i_2 = 9
.label i_3 = 9
.label i_11 = 9
.label i_13 = 9
lda #0
sta i_3
sta l
b1:
lda ypos
clc
adc l
sta line
asl
tay
lda playfield_lines,y
sta playfield_line
lda playfield_lines+1,y
sta playfield_line+1
ldx #0
b2:
ldy i_2
iny
sty i
ldy i_2
lda (current_piece_gfx_46),y
cmp #0
beq b3
lda line
cmp #PLAYFIELD_LINES
bcc b4
lda #COLLISION_BOTTOM
breturn:
rts
b4:
txa
clc
adc xpos
tay
tya
and #$80
cmp #0
beq b5
lda #COLLISION_LEFT
jmp breturn
b5:
cpy #PLAYFIELD_COLS
bcc b6
lda #COLLISION_RIGHT
jmp breturn
b6:
lda (playfield_line),y
cmp #0
beq b3
lda #COLLISION_PLAYFIELD
jmp breturn
b3:
inx
cpx #4
bne b21
inc l
lda l
cmp #4
bne b20
lda #COLLISION_NONE
jmp breturn
b20:
lda i
sta i_11
jmp b1
b21:
lda i
sta i_13
jmp b2
}
play_movedown: {
inc current_movedown_counter
cmp #KEY_SPACE
bne b3
ldx #1
jmp b1
b3:
ldx #0
b1:
lda #KEY_SPACE
sta keyboard_event_pressed.keycode
jsr keyboard_event_pressed
cmp #0
beq b2
lda current_movedown_counter
cmp #current_movedown_rate_fast
bcc b2
inx
b2:
lda current_movedown_counter
cmp #current_movedown_rate
bcc b4
inx
b4:
cpx #0
beq b5
ldy current_ypos
iny
sty collision.ypos
lda current_xpos
sta collision.xpos
lda current_piece_gfx
sta current_piece_gfx_108
lda current_piece_gfx+1
sta current_piece_gfx_108+1
jsr collision
cmp #COLLISION_NONE
beq b6
jsr lock_current
jsr spawn_current
lda #3
sta current_xpos
lda #GREEN
sta current_piece_color
lda #<piece_t
sta current_piece_gfx
lda #>piece_t
sta current_piece_gfx+1
lda #0
sta current_piece_orientation
lda #<piece_t
sta current_piece
lda #>piece_t
sta current_piece+1
lda #0
sta current_ypos
b7:
lda #0
sta current_movedown_counter
ldx #1
jmp breturn
b5:
ldx #0
breturn:
rts
b6:
inc current_ypos
jmp b7
}
spawn_current: {
rts
}
lock_current: {
.label playfield_line = 5
.label i = 4
.label l = 3
lda #0
sta i
sta l
b1:
lda current_ypos
clc
adc l
asl
tay
lda playfield_lines,y
sta playfield_line
lda playfield_lines+1,y
sta playfield_line+1
ldx #0
b2:
ldy i
lda (current_piece_gfx),y
inc i
cmp #0
beq b3
txa
clc
adc current_xpos
tay
lda current_piece_color
sta (playfield_line),y
b3:
inx
cpx #4
bne b2
inc l
lda l
cmp #4
bne b1
rts
}
keyboard_event_pressed: {
.label row_bits = 9
.label keycode = 7
.label row_bits = 7
.label keycode = 4
lda keycode
lsr
lsr
@ -262,10 +496,12 @@ keyboard_event_pressed: {
rts
}
keyboard_event_get: {
cpx #0
lda keyboard_events_size
cmp #0
beq b1
dex
lda keyboard_events,x
dec keyboard_events_size
ldy keyboard_events_size
lda keyboard_events,y
jmp breturn
b1:
lda #$ff
@ -273,15 +509,14 @@ keyboard_event_get: {
rts
}
keyboard_event_scan: {
.label row_scan = 9
.label keycode = 8
.label row_scan = 8
.label keycode = 7
.label row = 4
.label col = 7
lda #0
sta keycode
sta row
b1:
ldy row
ldx row
jsr keyboard_matrix_read
sta row_scan
ldy row
@ -314,30 +549,29 @@ keyboard_event_scan: {
cmp #0
rts
b2:
lda #0
sta col
ldx #0
b4:
lda row_scan
ldy row
eor keyboard_scan_values,y
ldy col
and keyboard_matrix_col_bitmask,y
and keyboard_matrix_col_bitmask,x
cmp #0
beq b5
cpx #8
lda keyboard_events_size
cmp #8
beq b5
lda row_scan
and keyboard_matrix_col_bitmask,y
lda keyboard_matrix_col_bitmask,x
and row_scan
cmp #0
beq b7
lda keycode
sta keyboard_events,x
inx
ldy keyboard_events_size
sta keyboard_events,y
inc keyboard_events_size
b5:
inc keycode
inc col
lda col
cmp #8
inx
cpx #8
bne b4
lda row_scan
ldy row
@ -346,21 +580,23 @@ keyboard_event_scan: {
b7:
lda #$40
ora keycode
sta keyboard_events,x
inx
ldy keyboard_events_size
sta keyboard_events,y
inc keyboard_events_size
jmp b5
}
keyboard_matrix_read: {
lda keyboard_matrix_row_bitmask,y
lda keyboard_matrix_row_bitmask,x
sta CIA1_PORT_A
lda CIA1_PORT_B
eor #$ff
rts
}
init: {
.label _7 = $d
.label li = $b
.label line = $b
.label _13 = $b
.label li = 5
.label pli = 5
.label line = 5
.label l = 2
ldx #$a0
lda #<SCREEN
@ -395,30 +631,53 @@ init: {
inc li+1
!:
inx
cpx #$14
cpx #PLAYFIELD_LINES+2+1
bne b1
lda #<playfield
sta pli
lda #>playfield
sta pli+1
ldx #0
b2:
txa
asl
tay
lda pli
sta playfield_lines,y
lda pli+1
sta playfield_lines+1,y
lda pli
clc
adc #$a
sta pli
bcc !+
inc pli+1
!:
inx
cpx #PLAYFIELD_LINES-1+1
bne b2
lda #0
sta l
lda #<COLS+$e
sta line
lda #>COLS+$e
sta line+1
b2:
ldx #0
b3:
ldx #0
b4:
txa
clc
adc line
sta _7
sta _13
lda #0
adc line+1
sta _7+1
sta _13+1
lda #DARK_GREY
ldy #0
sta (_7),y
sta (_13),y
inx
cpx #$c
bne b3
cpx #PLAYFIELD_COLS+1+1
bne b4
lda line
clc
adc #$28
@ -428,13 +687,13 @@ init: {
!:
inc l
lda l
cmp #$16
bne b2
cmp #PLAYFIELD_LINES+1+1
bne b3
rts
}
fill: {
.label end = $d
.label addr = $b
.label end = $b
.label addr = 5
lda addr
clc
adc #<$3e8
@ -462,7 +721,8 @@ fill: {
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
keyboard_events: .fill 8, 0
keyboard_scan_values: .fill 8, 0
screen_lines: .fill 2*$14, 0
.align $40
piece_t: .byte 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
playfield: .fill $14*$a, 0
playfield_lines: .fill 2*PLAYFIELD_LINES, 0
playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0
screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0

View File

@ -1,399 +1,573 @@
@begin: scope:[] from
[0] phi()
to:@16
@16: scope:[] from @begin
to:@20
@20: scope:[] from @begin
[1] phi()
[2] call main
to:@end
@end: scope:[] from @16
@end: scope:[] from @20
[3] phi()
main: scope:[main] from @16
[4] phi()
main: scope:[main] from @20
asm { sei }
[5] call init
to:main::@41
main::@41: scope:[main] from main
to:main::@21
main::@21: scope:[main] from main
[6] phi()
[7] call render_playfield
to:main::@42
main::@42: scope:[main] from main::@41
[7] call spawn_current
to:main::@22
main::@22: scope:[main] from main::@21
[8] phi()
[9] call render_current
[9] call render_playfield
to:main::@23
main::@23: scope:[main] from main::@22
[10] phi()
[11] call render_current
to:main::@1
main::@1: scope:[main] from main::@15 main::@42 main::@49
[10] (byte) current_xpos#12 ← phi( main::@15/(byte) current_xpos#15 main::@42/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@49/(byte) current_xpos#15 )
[10] (byte) current_ypos#13 ← phi( main::@15/(byte) current_ypos#17 main::@42/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@49/(byte) current_ypos#17 )
[10] (byte) current_movedown_counter#14 ← phi( main::@15/(byte) current_movedown_counter#16 main::@42/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@49/(byte) current_movedown_counter#16 )
[10] (byte) keyboard_events_size#19 ← phi( main::@15/(byte) keyboard_events_size#16 main::@42/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@49/(byte) keyboard_events_size#16 )
[10] (byte) current_piece_orientation#11 ← phi( main::@15/(byte) current_piece_orientation#21 main::@42/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@49/(byte) current_piece_orientation#21 )
main::@1: scope:[main] from main::@10 main::@23
[12] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[12] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[12] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[12] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#11 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 3 )
[12] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@23/(const byte) GREEN#0 )
[12] (byte*) current_piece_gfx#16 ← phi( main::@10/(byte*) current_piece_gfx#11 main::@23/(const byte[4*4*4]) piece_t#0 )
[12] (byte) current_piece_orientation#16 ← phi( main::@10/(byte) current_piece_orientation#11 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[12] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@23/(const byte[4*4*4]) piece_t#0 )
to:main::@4
main::@4: scope:[main] from main::@1 main::@4
[11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4
[13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4
to:main::@7
main::@7: scope:[main] from main::@4 main::@7
[12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7
[14] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7
to:main::@9
main::@9: scope:[main] from main::@7
[13] phi()
[14] call keyboard_event_scan
to:main::@44
main::@44: scope:[main] from main::@9
[15] phi()
[16] call keyboard_event_get
[17] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2
to:main::@45
main::@45: scope:[main] from main::@44
[18] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3
[19] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#14
[20] if((byte) main::key_event#0!=(const byte) KEY_SPACE#0) goto main::@10
[15] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
[16] call keyboard_event_scan
to:main::@25
main::@25: scope:[main] from main::@9
[17] phi()
[18] call keyboard_event_get
[19] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2
to:main::@26
main::@26: scope:[main] from main::@25
[20] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3
[21] (byte) play_movedown::key_event#0 ← (byte) main::key_event#0
[22] call play_movedown
[23] (byte) play_movedown::return#0 ← (byte) play_movedown::return#3
to:main::@27
main::@27: scope:[main] from main::@26
[24] (byte~) main::$8 ← (byte) play_movedown::return#0
[25] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$8
[26] (byte) play_moveother::key_event#0 ← (byte) main::key_event#0
[27] call play_moveother
[28] (byte) play_moveother::return#0 ← (byte) play_moveother::return#1
to:main::@28
main::@28: scope:[main] from main::@27
[29] (byte~) main::$9 ← (byte) play_moveother::return#0
[30] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$9
[31] if((byte) main::render#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10
to:main::@19
main::@19: scope:[main] from main::@28
[32] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
[33] call render_playfield
to:main::@29
main::@29: scope:[main] from main::@45
[21] phi()
to:main::@10
main::@10: scope:[main] from main::@29 main::@45
[22] (byte) main::movedown#10 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@45/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[23] call keyboard_event_pressed
[24] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11
to:main::@46
main::@46: scope:[main] from main::@10
[25] (byte~) main::$9 ← (byte) keyboard_event_pressed::return#12
[26] if((byte~) main::$9==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11
main::@29: scope:[main] from main::@19
[34] (byte~) current_ypos#75 ← (byte) current_ypos#16
[35] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#11
[36] (byte~) current_xpos#91 ← (byte) current_xpos#11
[37] (byte~) current_piece_color#69 ← (byte) current_piece_color#13
[38] call render_current
to:main::@30
main::@30: scope:[main] from main::@46
[27] if((byte) current_movedown_counter#1<(const byte) current_movedown_rate_fast#0) goto main::@11
to:main::@31
main::@31: scope:[main] from main::@30
[28] (byte) main::movedown#2 ← ++ (byte) main::movedown#10
to:main::@11
main::@11: scope:[main] from main::@30 main::@31 main::@46
[29] (byte) main::movedown#7 ← phi( main::@30/(byte) main::movedown#10 main::@31/(byte) main::movedown#2 main::@46/(byte) main::movedown#10 )
[30] if((byte) current_movedown_counter#1<(const byte) current_movedown_rate#0) goto main::@13
to:main::@32
main::@32: scope:[main] from main::@11
[31] (byte) main::movedown#3 ← ++ (byte) main::movedown#7
to:main::@13
main::@13: scope:[main] from main::@11 main::@32
[32] (byte) main::movedown#6 ← phi( main::@11/(byte) main::movedown#7 main::@32/(byte) main::movedown#3 )
[33] if((byte) main::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@14
to:main::@33
main::@33: scope:[main] from main::@13
[34] phi()
[35] call current_movedown
to:main::@14
main::@14: scope:[main] from main::@13 main::@33
[36] (byte) current_ypos#17 ← phi( main::@13/(byte) current_ypos#13 main::@33/(byte) current_ypos#10 )
[36] (byte) current_movedown_counter#16 ← phi( main::@13/(byte) current_movedown_counter#1 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[36] (byte) main::render#13 ← phi( main::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 1 )
[37] (byte~) main::$19 ← (byte) main::key_event#0 & (byte/word/signed word/dword/signed dword) 128
[38] if((byte~) main::$19!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@15
to:main::@34
main::@34: scope:[main] from main::@14
[39] if((byte) main::key_event#0!=(const byte) KEY_COMMA#0) goto main::@16
to:main::@35
main::@35: scope:[main] from main::@34
[40] (byte) current_xpos#1 ← -- (byte) current_xpos#12
[41] (byte) main::render#2 ← ++ (byte) main::render#13
to:main::@16
main::@16: scope:[main] from main::@34 main::@35
[42] (byte) main::render#16 ← phi( main::@34/(byte) main::render#13 main::@35/(byte) main::render#2 )
[42] (byte) current_xpos#11 ← phi( main::@34/(byte) current_xpos#12 main::@35/(byte) current_xpos#1 )
[43] if((byte) main::key_event#0!=(const byte) KEY_DOT#0) goto main::@17
to:main::@36
main::@36: scope:[main] from main::@16
[44] (byte) current_xpos#2 ← ++ (byte) current_xpos#11
[45] (byte) main::render#3 ← ++ (byte) main::render#16
to:main::@17
main::@17: scope:[main] from main::@16 main::@36
[46] (byte) current_xpos#34 ← phi( main::@16/(byte) current_xpos#11 main::@36/(byte) current_xpos#2 )
[46] (byte) main::render#10 ← phi( main::@16/(byte) main::render#16 main::@36/(byte) main::render#3 )
[47] if((byte) main::key_event#0!=(const byte) KEY_Z#0) goto main::@18
to:main::@37
main::@37: scope:[main] from main::@17
[48] (byte/signed word/word/dword/signed dword~) main::$28 ← (byte) current_piece_orientation#11 - (byte/signed byte/word/signed word/dword/signed dword) 16
[49] (byte) current_piece_orientation#2 ← (byte/signed word/word/dword/signed dword~) main::$28 & (byte/signed byte/word/signed word/dword/signed dword) 63
[50] (byte) main::render#4 ← ++ (byte) main::render#10
to:main::@18
main::@18: scope:[main] from main::@17 main::@37
[51] (byte) main::render#11 ← phi( main::@17/(byte) main::render#10 main::@37/(byte) main::render#4 )
[51] (byte) current_piece_orientation#10 ← phi( main::@17/(byte) current_piece_orientation#11 main::@37/(byte) current_piece_orientation#2 )
[52] if((byte) main::key_event#0!=(const byte) KEY_X#0) goto main::@15
to:main::@38
main::@38: scope:[main] from main::@18
[53] (byte/signed word/word/dword/signed dword~) main::$32 ← (byte) current_piece_orientation#10 + (byte/signed byte/word/signed word/dword/signed dword) 16
[54] (byte) current_piece_orientation#3 ← (byte/signed word/word/dword/signed dword~) main::$32 & (byte/signed byte/word/signed word/dword/signed dword) 63
[55] (byte) main::render#5 ← ++ (byte) main::render#11
to:main::@15
main::@15: scope:[main] from main::@14 main::@18 main::@38
[56] (byte) current_xpos#15 ← phi( main::@14/(byte) current_xpos#12 main::@18/(byte) current_xpos#34 main::@38/(byte) current_xpos#34 )
[56] (byte) current_piece_orientation#21 ← phi( main::@14/(byte) current_piece_orientation#11 main::@18/(byte) current_piece_orientation#10 main::@38/(byte) current_piece_orientation#3 )
[56] (byte) main::render#7 ← phi( main::@14/(byte) main::render#13 main::@18/(byte) main::render#11 main::@38/(byte) main::render#5 )
[57] if((byte) main::render#7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1
to:main::@39
main::@39: scope:[main] from main::@15
[58] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
[59] call render_playfield
to:main::@48
main::@48: scope:[main] from main::@39
[60] (byte~) current_piece_orientation#66 ← (byte) current_piece_orientation#21
[61] (byte~) current_ypos#62 ← (byte) current_ypos#17
[62] (byte~) current_xpos#64 ← (byte) current_xpos#15
[63] call render_current
to:main::@49
main::@49: scope:[main] from main::@48
[64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
main::@30: scope:[main] from main::@29
[39] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
to:main::@10
main::@10: scope:[main] from main::@28 main::@30
[40] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
to:main::@1
render_current: scope:[render_current] from main::@42 main::@48
[65] (byte) current_xpos#26 ← phi( main::@42/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@48/(byte~) current_xpos#64 )
[65] (byte) current_ypos#14 ← phi( main::@42/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@48/(byte~) current_ypos#62 )
[65] (byte) current_piece_orientation#13 ← phi( main::@42/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@48/(byte~) current_piece_orientation#66 )
[66] (byte*) render_current::current_piece_gfx#0 ← (const byte[4*4*4]) piece_t#0 + (byte) current_piece_orientation#13
render_current: scope:[render_current] from main::@23 main::@29
[41] (byte) current_piece_color#62 ← phi( main::@23/(const byte) GREEN#0 main::@29/(byte~) current_piece_color#69 )
[41] (byte) current_xpos#81 ← phi( main::@23/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@29/(byte~) current_xpos#91 )
[41] (byte*) current_piece_gfx#75 ← phi( main::@23/(const byte[4*4*4]) piece_t#0 main::@29/(byte*~) current_piece_gfx#99 )
[41] (byte) current_ypos#35 ← phi( main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@29/(byte~) current_ypos#75 )
to:render_current::@1
render_current::@1: scope:[render_current] from render_current render_current::@7
[67] (byte) render_current::i#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@7/(byte) render_current::i#1 )
[67] (byte) render_current::l#2 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@7/(byte) render_current::l#1 )
[68] (byte~) render_current::$1 ← (byte) current_ypos#14 + (byte) render_current::l#2
[69] (byte~) render_current::$2 ← (byte~) render_current::$1 << (byte/signed byte/word/signed word/dword/signed dword) 1
[70] (byte*) render_current::screen_line#0 ← *((const byte*[20]) screen_lines#0 + (byte~) render_current::$2)
to:render_current::@2
render_current::@2: scope:[render_current] from render_current::@1 render_current::@3
[71] (byte) render_current::c#2 ← phi( render_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::c#1 )
[71] (byte) render_current::i#2 ← phi( render_current::@1/(byte) render_current::i#3 render_current::@3/(byte) render_current::i#1 )
[72] (byte) render_current::current_cell#0 ← *((byte*) render_current::current_piece_gfx#0 + (byte) render_current::i#2)
[73] (byte) render_current::i#1 ← ++ (byte) render_current::i#2
[74] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@3
to:render_current::@5
render_current::@5: scope:[render_current] from render_current::@2
[75] (byte) render_current::xpos#0 ← (byte) current_xpos#26 + (byte) render_current::c#2
[76] if((byte) render_current::xpos#0>=(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_current::@3
render_current::@1: scope:[render_current] from render_current render_current::@2
[42] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 )
[42] (byte) render_current::l#2 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 )
[43] (byte) render_current::line#0 ← (byte) current_ypos#35 + (byte) render_current::l#2
[44] if((byte) render_current::line#0>=(const byte) PLAYFIELD_LINES#0) goto render_current::@2
to:render_current::@6
render_current::@6: scope:[render_current] from render_current::@5
[77] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#0) ← (byte) render_current::current_cell#0
render_current::@6: scope:[render_current] from render_current::@1
[45] (byte~) render_current::$3 ← (byte) render_current::line#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
[46] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_current::$3)
to:render_current::@3
render_current::@3: scope:[render_current] from render_current::@2 render_current::@5 render_current::@6
[78] (byte) render_current::c#1 ← ++ (byte) render_current::c#2
[79] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@2
render_current::@3: scope:[render_current] from render_current::@4 render_current::@6
[47] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[47] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 )
[48] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#75 + (byte) render_current::i#2)
[49] (byte) render_current::i#1 ← ++ (byte) render_current::i#2
[50] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4
to:render_current::@7
render_current::@7: scope:[render_current] from render_current::@3
[80] (byte) render_current::l#1 ← ++ (byte) render_current::l#2
[81] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1
[51] (byte) render_current::xpos#0 ← (byte) current_xpos#81 + (byte) render_current::c#2
[52] if((byte) render_current::xpos#0>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4
to:render_current::@8
render_current::@8: scope:[render_current] from render_current::@7
[53] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#0) ← (byte) current_piece_color#62
to:render_current::@4
render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8
[54] (byte) render_current::c#1 ← ++ (byte) render_current::c#2
[55] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3
to:render_current::@2
render_current::@2: scope:[render_current] from render_current::@1 render_current::@4
[56] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 )
[57] (byte) render_current::l#1 ← ++ (byte) render_current::l#2
[58] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1
to:render_current::@return
render_current::@return: scope:[render_current] from render_current::@7
[82] return
render_current::@return: scope:[render_current] from render_current::@2
[59] return
to:@return
render_playfield: scope:[render_playfield] from main::@39 main::@41
[83] phi()
render_playfield: scope:[render_playfield] from main::@19 main::@22
[60] phi()
to:render_playfield::@1
render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3
[84] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 )
[84] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 )
[85] (byte~) render_playfield::$0 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[86] (byte*) render_playfield::line#0 ← *((const byte*[20]) screen_lines#0 + (byte~) render_playfield::$0)
[61] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 )
[61] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 )
[62] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[63] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1)
to:render_playfield::@2
render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2
[87] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 )
[87] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 )
[88] (byte*~) render_playfield::$1 ← (byte*) render_playfield::line#0 + (byte) render_playfield::c#2
[89] *((byte*~) render_playfield::$1) ← *((const byte[20*10]) playfield#0 + (byte) render_playfield::i#2)
[90] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2
[91] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2
[92] if((byte) render_playfield::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_playfield::@2
[64] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 )
[64] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 )
[65] (byte*~) render_playfield::$3 ← (byte*) render_playfield::line#0 + (byte) render_playfield::c#2
[66] *((byte*~) render_playfield::$3) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2)
[67] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2
[68] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2
[69] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2
to:render_playfield::@3
render_playfield::@3: scope:[render_playfield] from render_playfield::@2
[93] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2
[94] if((byte) render_playfield::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 20) goto render_playfield::@1
[70] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2
[71] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1
to:render_playfield::@return
render_playfield::@return: scope:[render_playfield] from render_playfield::@3
[95] return
[72] return
to:@return
current_movedown: scope:[current_movedown] from main::@33
[96] (byte) current_ypos#10 ← ++ (byte) current_ypos#13
to:current_movedown::@return
current_movedown::@return: scope:[current_movedown] from current_movedown
[97] return
play_moveother: scope:[play_moveother] from main::@27
[73] (byte~) play_moveother::$0 ← (byte) play_moveother::key_event#0 & (byte/word/signed word/dword/signed dword) 128
[74] if((byte~) play_moveother::$0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_moveother::@1
to:play_moveother::@11
play_moveother::@11: scope:[play_moveother] from play_moveother
[75] if((byte) play_moveother::key_event#0==(const byte) KEY_COMMA#0) goto play_moveother::@2
to:play_moveother::@12
play_moveother::@12: scope:[play_moveother] from play_moveother::@11
[76] if((byte) play_moveother::key_event#0==(const byte) KEY_DOT#0) goto play_moveother::@3
to:play_moveother::@13
play_moveother::@13: scope:[play_moveother] from play_moveother::@12
[77] if((byte) play_moveother::key_event#0==(const byte) KEY_Z#0) goto play_moveother::@4
to:play_moveother::@14
play_moveother::@14: scope:[play_moveother] from play_moveother::@13
[78] if((byte) play_moveother::key_event#0!=(const byte) KEY_X#0) goto play_moveother::@1
to:play_moveother::@15
play_moveother::@15: scope:[play_moveother] from play_moveother::@14
[79] (byte/signed word/word/dword/signed dword~) play_moveother::$8 ← (byte) current_piece_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16
[80] (byte) current_piece_orientation#10 ← (byte/signed word/word/dword/signed dword~) play_moveother::$8 & (byte/signed byte/word/signed word/dword/signed dword) 63
[81] (byte*) current_piece_gfx#10 ← (byte*) current_piece#13 + (byte) current_piece_orientation#10
to:play_moveother::@1
play_moveother::@1: scope:[play_moveother] from play_moveother play_moveother::@14 play_moveother::@15 play_moveother::@18 play_moveother::@20 play_moveother::@22 play_moveother::@23 play_moveother::@4
[82] (byte) current_xpos#11 ← phi( play_moveother/(byte) current_xpos#19 play_moveother::@22/(byte) current_xpos#19 play_moveother::@15/(byte) current_xpos#19 play_moveother::@18/(byte) current_xpos#9 play_moveother::@20/(byte) current_xpos#10 play_moveother::@4/(byte) current_xpos#19 play_moveother::@14/(byte) current_xpos#19 play_moveother::@23/(byte) current_xpos#19 )
[82] (byte*) current_piece_gfx#11 ← phi( play_moveother/(byte*) current_piece_gfx#18 play_moveother::@22/(byte*) current_piece_gfx#18 play_moveother::@15/(byte*) current_piece_gfx#10 play_moveother::@18/(byte*) current_piece_gfx#18 play_moveother::@20/(byte*) current_piece_gfx#18 play_moveother::@4/(byte*) current_piece_gfx#9 play_moveother::@14/(byte*) current_piece_gfx#18 play_moveother::@23/(byte*) current_piece_gfx#18 )
[82] (byte) current_piece_orientation#11 ← phi( play_moveother/(byte) current_piece_orientation#18 play_moveother::@22/(byte) current_piece_orientation#18 play_moveother::@15/(byte) current_piece_orientation#10 play_moveother::@18/(byte) current_piece_orientation#18 play_moveother::@20/(byte) current_piece_orientation#18 play_moveother::@4/(byte) current_piece_orientation#9 play_moveother::@14/(byte) current_piece_orientation#18 play_moveother::@23/(byte) current_piece_orientation#18 )
[82] (byte) play_moveother::return#1 ← phi( play_moveother/(byte/signed byte/word/signed word/dword/signed dword) 0 play_moveother::@22/(byte/signed byte/word/signed word/dword/signed dword) 0 play_moveother::@15/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@18/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@20/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_moveother::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
to:play_moveother::@return
play_moveother::@return: scope:[play_moveother] from play_moveother::@1
[83] return
to:@return
keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 main::@10
[98] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 main::@10/(const byte) KEY_SPACE#0 )
[99] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3
[100] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0)
[101] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7
[102] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1)
play_moveother::@4: scope:[play_moveother] from play_moveother::@13
[84] (byte/signed word/word/dword/signed dword~) play_moveother::$11 ← (byte) current_piece_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16
[85] (byte) current_piece_orientation#9 ← (byte/signed word/word/dword/signed dword~) play_moveother::$11 & (byte/signed byte/word/signed word/dword/signed dword) 63
[86] (byte*) current_piece_gfx#9 ← (byte*) current_piece#13 + (byte) current_piece_orientation#9
to:play_moveother::@1
play_moveother::@3: scope:[play_moveother] from play_moveother::@12
[87] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1
[88] (byte) collision::ypos#2 ← (byte) current_ypos#16
[89] (byte*~) current_piece_gfx#110 ← (byte*) current_piece_gfx#18
[90] call collision
[91] (byte) collision::return#12 ← (byte) collision::return#10
to:play_moveother::@23
play_moveother::@23: scope:[play_moveother] from play_moveother::@3
[92] (byte~) play_moveother::$15 ← (byte) collision::return#12
[93] if((byte~) play_moveother::$15!=(const byte) COLLISION_NONE#0) goto play_moveother::@1
to:play_moveother::@18
play_moveother::@18: scope:[play_moveother] from play_moveother::@23
[94] (byte) current_xpos#9 ← ++ (byte) current_xpos#19
to:play_moveother::@1
play_moveother::@2: scope:[play_moveother] from play_moveother::@11
[95] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1
[96] (byte) collision::ypos#1 ← (byte) current_ypos#16
[97] (byte*~) current_piece_gfx#109 ← (byte*) current_piece_gfx#18
[98] call collision
[99] (byte) collision::return#11 ← (byte) collision::return#10
to:play_moveother::@22
play_moveother::@22: scope:[play_moveother] from play_moveother::@2
[100] (byte~) play_moveother::$19 ← (byte) collision::return#11
[101] if((byte~) play_moveother::$19!=(const byte) COLLISION_NONE#0) goto play_moveother::@1
to:play_moveother::@20
play_moveother::@20: scope:[play_moveother] from play_moveother::@22
[102] (byte) current_xpos#10 ← -- (byte) current_xpos#19
to:play_moveother::@1
collision: scope:[collision] from play_movedown::@12 play_moveother::@2 play_moveother::@3
[103] (byte) collision::xpos#8 ← phi( play_movedown::@12/(byte) collision::xpos#0 play_moveother::@2/(byte) collision::xpos#1 play_moveother::@3/(byte) collision::xpos#2 )
[103] (byte*) current_piece_gfx#46 ← phi( play_movedown::@12/(byte*~) current_piece_gfx#108 play_moveother::@2/(byte*~) current_piece_gfx#109 play_moveother::@3/(byte*~) current_piece_gfx#110 )
[103] (byte) collision::ypos#4 ← phi( play_movedown::@12/(byte) collision::ypos#0 play_moveother::@2/(byte) collision::ypos#1 play_moveother::@3/(byte) collision::ypos#2 )
to:collision::@1
collision::@1: scope:[collision] from collision collision::@20
[104] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 )
[104] (byte) collision::l#2 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 )
[105] (byte) collision::line#0 ← (byte) collision::ypos#4 + (byte) collision::l#2
[106] (byte~) collision::$1 ← (byte) collision::line#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
[107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) collision::$1)
to:collision::@2
collision::@2: scope:[collision] from collision::@1 collision::@21
[108] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 )
[108] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 )
[109] (byte) collision::i#1 ← ++ (byte) collision::i#2
[110] if(*((byte*) current_piece_gfx#46 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
to:collision::@8
collision::@8: scope:[collision] from collision::@2
[111] if((byte) collision::line#0<(const byte) PLAYFIELD_LINES#0) goto collision::@4
to:collision::@return
collision::@return: scope:[collision] from collision::@17 collision::@4 collision::@5 collision::@6 collision::@8
[112] (byte) collision::return#10 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 )
[113] return
to:@return
collision::@4: scope:[collision] from collision::@8
[114] (byte) collision::col#0 ← (byte) collision::xpos#8 + (byte) collision::c#2
[115] (byte~) collision::$7 ← (byte) collision::col#0 & (byte/word/signed word/dword/signed dword) 128
[116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5
to:collision::@return
collision::@5: scope:[collision] from collision::@4
[117] if((byte) collision::col#0<(const byte) PLAYFIELD_COLS#0) goto collision::@6
to:collision::@return
collision::@6: scope:[collision] from collision::@5
[118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
to:collision::@return
collision::@3: scope:[collision] from collision::@2 collision::@6
[119] (byte) collision::c#1 ← ++ (byte) collision::c#2
[120] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21
to:collision::@17
collision::@17: scope:[collision] from collision::@3
[121] (byte) collision::l#1 ← ++ (byte) collision::l#2
[122] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20
to:collision::@return
collision::@20: scope:[collision] from collision::@17
[123] (byte~) collision::i#11 ← (byte) collision::i#1
to:collision::@1
collision::@21: scope:[collision] from collision::@3
[124] (byte~) collision::i#13 ← (byte) collision::i#1
to:collision::@2
play_movedown: scope:[play_movedown] from main::@26
[125] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15
[126] if((byte) play_movedown::key_event#0!=(const byte) KEY_SPACE#0) goto play_movedown::@1
to:play_movedown::@8
play_movedown::@8: scope:[play_movedown] from play_movedown
[127] phi()
to:play_movedown::@1
play_movedown::@1: scope:[play_movedown] from play_movedown play_movedown::@8
[128] (byte) play_movedown::movedown#10 ← phi( play_movedown/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 )
[129] call keyboard_event_pressed
[130] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11
to:play_movedown::@17
play_movedown::@17: scope:[play_movedown] from play_movedown::@1
[131] (byte~) play_movedown::$2 ← (byte) keyboard_event_pressed::return#12
[132] if((byte~) play_movedown::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movedown::@2
to:play_movedown::@9
play_movedown::@9: scope:[play_movedown] from play_movedown::@17
[133] if((byte) current_movedown_counter#10<(const byte) current_movedown_rate_fast#0) goto play_movedown::@2
to:play_movedown::@10
play_movedown::@10: scope:[play_movedown] from play_movedown::@9
[134] (byte) play_movedown::movedown#2 ← ++ (byte) play_movedown::movedown#10
to:play_movedown::@2
play_movedown::@2: scope:[play_movedown] from play_movedown::@10 play_movedown::@17 play_movedown::@9
[135] (byte) play_movedown::movedown#7 ← phi( play_movedown::@10/(byte) play_movedown::movedown#2 play_movedown::@17/(byte) play_movedown::movedown#10 play_movedown::@9/(byte) play_movedown::movedown#10 )
[136] if((byte) current_movedown_counter#10<(const byte) current_movedown_rate#0) goto play_movedown::@4
to:play_movedown::@11
play_movedown::@11: scope:[play_movedown] from play_movedown::@2
[137] (byte) play_movedown::movedown#3 ← ++ (byte) play_movedown::movedown#7
to:play_movedown::@4
play_movedown::@4: scope:[play_movedown] from play_movedown::@11 play_movedown::@2
[138] (byte) play_movedown::movedown#6 ← phi( play_movedown::@11/(byte) play_movedown::movedown#3 play_movedown::@2/(byte) play_movedown::movedown#7 )
[139] if((byte) play_movedown::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movedown::@return
to:play_movedown::@12
play_movedown::@12: scope:[play_movedown] from play_movedown::@4
[140] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1
[141] (byte) collision::xpos#0 ← (byte) current_xpos#16
[142] (byte*~) current_piece_gfx#108 ← (byte*) current_piece_gfx#16
[143] call collision
[144] (byte) collision::return#0 ← (byte) collision::return#10
to:play_movedown::@18
play_movedown::@18: scope:[play_movedown] from play_movedown::@12
[145] (byte~) play_movedown::$12 ← (byte) collision::return#0
[146] if((byte~) play_movedown::$12==(const byte) COLLISION_NONE#0) goto play_movedown::@6
to:play_movedown::@13
play_movedown::@13: scope:[play_movedown] from play_movedown::@18
[147] phi()
[148] call lock_current
to:play_movedown::@19
play_movedown::@19: scope:[play_movedown] from play_movedown::@13
[149] phi()
[150] call spawn_current
to:play_movedown::@7
play_movedown::@7: scope:[play_movedown] from play_movedown::@19 play_movedown::@6
[151] (byte) current_xpos#35 ← phi( play_movedown::@19/(byte/signed byte/word/signed word/dword/signed dword) 3 play_movedown::@6/(byte) current_xpos#16 )
[151] (byte) current_piece_color#23 ← phi( play_movedown::@19/(const byte) GREEN#0 play_movedown::@6/(byte) current_piece_color#11 )
[151] (byte*) current_piece_gfx#30 ← phi( play_movedown::@19/(const byte[4*4*4]) piece_t#0 play_movedown::@6/(byte*) current_piece_gfx#16 )
[151] (byte) current_piece_orientation#29 ← phi( play_movedown::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@6/(byte) current_piece_orientation#16 )
[151] (byte*) current_piece#23 ← phi( play_movedown::@19/(const byte[4*4*4]) piece_t#0 play_movedown::@6/(byte*) current_piece#11 )
[151] (byte) current_ypos#30 ← phi( play_movedown::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@6/(byte) current_ypos#4 )
to:play_movedown::@return
play_movedown::@return: scope:[play_movedown] from play_movedown::@4 play_movedown::@7
[152] (byte) current_xpos#19 ← phi( play_movedown::@4/(byte) current_xpos#16 play_movedown::@7/(byte) current_xpos#35 )
[152] (byte) current_piece_color#13 ← phi( play_movedown::@4/(byte) current_piece_color#11 play_movedown::@7/(byte) current_piece_color#23 )
[152] (byte*) current_piece_gfx#18 ← phi( play_movedown::@4/(byte*) current_piece_gfx#16 play_movedown::@7/(byte*) current_piece_gfx#30 )
[152] (byte) current_piece_orientation#18 ← phi( play_movedown::@4/(byte) current_piece_orientation#16 play_movedown::@7/(byte) current_piece_orientation#29 )
[152] (byte*) current_piece#13 ← phi( play_movedown::@4/(byte*) current_piece#11 play_movedown::@7/(byte*) current_piece#23 )
[152] (byte) current_ypos#16 ← phi( play_movedown::@4/(byte) current_ypos#12 play_movedown::@7/(byte) current_ypos#30 )
[152] (byte) current_movedown_counter#12 ← phi( play_movedown::@4/(byte) current_movedown_counter#10 play_movedown::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[152] (byte) play_movedown::return#3 ← phi( play_movedown::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 )
[153] return
to:@return
play_movedown::@6: scope:[play_movedown] from play_movedown::@18
[154] (byte) current_ypos#4 ← ++ (byte) current_ypos#12
to:play_movedown::@7
spawn_current: scope:[spawn_current] from main::@21 play_movedown::@19
[155] phi()
to:spawn_current::@return
spawn_current::@return: scope:[spawn_current] from spawn_current
[156] return
to:@return
lock_current: scope:[lock_current] from play_movedown::@13
[157] phi()
to:lock_current::@1
lock_current::@1: scope:[lock_current] from lock_current lock_current::@5
[158] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@5/(byte) lock_current::i#1 )
[158] (byte) lock_current::l#2 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@5/(byte) lock_current::l#1 )
[159] (byte) lock_current::line#0 ← (byte) current_ypos#12 + (byte) lock_current::l#2
[160] (byte~) lock_current::$1 ← (byte) lock_current::line#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
[161] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) lock_current::$1)
to:lock_current::@2
lock_current::@2: scope:[lock_current] from lock_current::@1 lock_current::@3
[162] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@3/(byte) lock_current::c#1 )
[162] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@3/(byte) lock_current::i#1 )
[163] (byte) lock_current::cell#0 ← *((byte*) current_piece_gfx#16 + (byte) lock_current::i#2)
[164] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2
[165] if((byte) lock_current::cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3
to:lock_current::@4
lock_current::@4: scope:[lock_current] from lock_current::@2
[166] (byte) lock_current::col#0 ← (byte) current_xpos#16 + (byte) lock_current::c#2
[167] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#0) ← (byte) current_piece_color#11
to:lock_current::@3
lock_current::@3: scope:[lock_current] from lock_current::@2 lock_current::@4
[168] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2
[169] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@2
to:lock_current::@5
lock_current::@5: scope:[lock_current] from lock_current::@3
[170] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#2
[171] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@1
to:lock_current::@return
lock_current::@return: scope:[lock_current] from lock_current::@5
[172] return
to:@return
keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 play_movedown::@1
[173] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_movedown::@1/(const byte) KEY_SPACE#0 )
[174] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3
[175] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0)
[176] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7
[177] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1)
to:keyboard_event_pressed::@return
keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed
[103] return
[178] return
to:@return
keyboard_event_get: scope:[keyboard_event_get] from main::@44
[104] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return
keyboard_event_get: scope:[keyboard_event_get] from main::@25
[179] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return
to:keyboard_event_get::@3
keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get
[105] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13
[106] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4)
[180] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13
[181] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4)
to:keyboard_event_get::@return
keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3
[107] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 )
[107] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 )
[108] return
[182] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 )
[182] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 )
[183] return
to:@return
keyboard_event_scan: scope:[keyboard_event_scan] from main::@9
[109] phi()
[184] phi()
to:keyboard_event_scan::@1
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3
[110] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 )
[110] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 )
[110] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 )
[111] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2
[112] call keyboard_matrix_read
[113] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0
[185] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 )
[185] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 )
[185] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 )
[186] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2
[187] call keyboard_matrix_read
[188] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0
to:keyboard_event_scan::@25
keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1
[114] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2
[115] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4
[189] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2
[190] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4
to:keyboard_event_scan::@13
keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25
[116] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8
[191] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8
to:keyboard_event_scan::@3
keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19
[117] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 )
[117] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 )
[118] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2
[119] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1
[192] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 )
[192] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 )
[193] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2
[194] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1
to:keyboard_event_scan::@20
keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3
[120] phi()
[121] call keyboard_event_pressed
[122] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11
[195] phi()
[196] call keyboard_event_pressed
[197] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11
to:keyboard_event_scan::@26
keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20
[123] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0
[124] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9
[198] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0
[199] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9
to:keyboard_event_scan::@21
keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26
[125] phi()
[200] phi()
to:keyboard_event_scan::@9
keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26
[126] phi()
[127] call keyboard_event_pressed
[128] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11
[201] phi()
[202] call keyboard_event_pressed
[203] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11
to:keyboard_event_scan::@27
keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9
[129] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1
[130] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10
[204] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1
[205] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10
to:keyboard_event_scan::@22
keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27
[131] phi()
[206] phi()
to:keyboard_event_scan::@10
keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27
[132] phi()
[133] call keyboard_event_pressed
[134] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11
[207] phi()
[208] call keyboard_event_pressed
[209] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11
to:keyboard_event_scan::@28
keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10
[135] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2
[136] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11
[210] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2
[211] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11
to:keyboard_event_scan::@23
keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28
[137] phi()
[212] phi()
to:keyboard_event_scan::@11
keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28
[138] phi()
[139] call keyboard_event_pressed
[140] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11
[213] phi()
[214] call keyboard_event_pressed
[215] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11
to:keyboard_event_scan::@29
keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11
[141] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10
[142] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return
[216] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10
[217] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return
to:keyboard_event_scan::@24
keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29
[143] phi()
[218] phi()
to:keyboard_event_scan::@return
keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29
[144] return
[219] return
to:@return
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5
[145] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 )
[145] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 )
[145] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 )
[146] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)
[147] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
[148] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5
[220] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 )
[220] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 )
[220] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 )
[221] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)
[222] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
[223] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5
to:keyboard_event_scan::@15
keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4
[149] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5
[224] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5
to:keyboard_event_scan::@16
keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15
[150] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
[151] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7
[225] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
[226] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7
to:keyboard_event_scan::@17
keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16
[152] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10
[153] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10
[227] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10
[228] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10
to:keyboard_event_scan::@5
keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7
[154] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 )
[155] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10
[156] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2
[157] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4
[229] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 )
[230] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10
[231] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2
[232] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4
to:keyboard_event_scan::@19
keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5
[158] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0
[233] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0
to:keyboard_event_scan::@3
keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16
[159] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64
[160] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11
[161] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10
[234] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64
[235] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11
[236] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10
to:keyboard_event_scan::@5
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1
[162] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
[163] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
[237] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
[238] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
to:keyboard_matrix_read::@return
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
[164] return
[239] return
to:@return
init: scope:[init] from main
[165] phi()
[166] call fill
to:init::@7
init::@7: scope:[init] from init
[167] phi()
[168] call fill
[240] phi()
[241] call fill
to:init::@9
init::@9: scope:[init] from init
[242] phi()
[243] call fill
to:init::@1
init::@1: scope:[init] from init::@1 init::@7
[169] (byte*) init::li#2 ← phi( init::@1/(byte*) init::li#1 init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 )
[169] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[170] (byte~) init::$4 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[171] *((const byte*[20]) screen_lines#0 + (byte~) init::$4) ← (byte*) init::li#2
[172] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[173] (byte) init::i#1 ← ++ (byte) init::i#2
[174] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 20) goto init::@1
init::@1: scope:[init] from init::@1 init::@9
[244] (byte*) init::li#2 ← phi( init::@1/(byte*) init::li#1 init::@9/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 )
[244] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[245] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[246] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2
[247] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[248] (byte) init::i#1 ← ++ (byte) init::i#2
[249] if((byte) init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1
to:init::@2
init::@2: scope:[init] from init::@1 init::@5
[175] (byte) init::l#4 ← phi( init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@5/(byte) init::l#1 )
[175] (byte*) init::line#4 ← phi( init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 init::@5/(byte*) init::line#1 )
init::@2: scope:[init] from init::@1 init::@2
[250] (byte*) init::pli#2 ← phi( init::@2/(byte*) init::pli#1 init::@1/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 )
[250] (byte) init::j#2 ← phi( init::@2/(byte) init::j#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[251] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[252] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2
[253] (byte*) init::pli#1 ← (byte*) init::pli#2 + (byte/signed byte/word/signed word/dword/signed dword) 10
[254] (byte) init::j#1 ← ++ (byte) init::j#2
[255] if((byte) init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@2
to:init::@3
init::@3: scope:[init] from init::@2 init::@3
[176] (byte) init::c#2 ← phi( init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@3/(byte) init::c#1 )
[177] (byte*~) init::$7 ← (byte*) init::line#4 + (byte) init::c#2
[178] *((byte*~) init::$7) ← (const byte) DARK_GREY#0
[179] (byte) init::c#1 ← ++ (byte) init::c#2
[180] if((byte) init::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto init::@3
to:init::@5
init::@5: scope:[init] from init::@3
[181] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40
[182] (byte) init::l#1 ← ++ (byte) init::l#4
[183] if((byte) init::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 22) goto init::@2
init::@3: scope:[init] from init::@2 init::@7
[256] (byte) init::l#4 ← phi( init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@7/(byte) init::l#1 )
[256] (byte*) init::line#4 ← phi( init::@2/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 init::@7/(byte*) init::line#1 )
to:init::@4
init::@4: scope:[init] from init::@3 init::@4
[257] (byte) init::c#2 ← phi( init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@4/(byte) init::c#1 )
[258] (byte*~) init::$13 ← (byte*) init::line#4 + (byte) init::c#2
[259] *((byte*~) init::$13) ← (const byte) DARK_GREY#0
[260] (byte) init::c#1 ← ++ (byte) init::c#2
[261] if((byte) init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@4
to:init::@7
init::@7: scope:[init] from init::@4
[262] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40
[263] (byte) init::l#1 ← ++ (byte) init::l#4
[264] if((byte) init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@3
to:init::@return
init::@return: scope:[init] from init::@5
[184] return
init::@return: scope:[init] from init::@7
[265] return
to:@return
fill: scope:[fill] from init init::@7
[185] (byte) fill::val#3 ← phi( init/(byte/word/signed word/dword/signed dword) 160 init::@7/(const byte) BLACK#0 )
[185] (byte*) fill::addr#0 ← phi( init/(const byte*) SCREEN#0 init::@7/(const byte*) COLS#0 )
[186] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000
fill: scope:[fill] from init init::@9
[266] (byte) fill::val#3 ← phi( init/(byte/word/signed word/dword/signed dword) 160 init::@9/(const byte) BLACK#0 )
[266] (byte*) fill::addr#0 ← phi( init/(const byte*) SCREEN#0 init::@9/(const byte*) COLS#0 )
[267] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000
to:fill::@1
fill::@1: scope:[fill] from fill fill::@1
[187] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 )
[188] *((byte*) fill::addr#2) ← (byte) fill::val#3
[189] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
[190] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1
[268] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 )
[269] *((byte*) fill::addr#2) ← (byte) fill::val#3
[270] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
[271] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1
to:fill::@return
fill::@return: scope:[fill] from fill::@1
[191] return
[272] return
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
(label) @16
(label) @20
(label) @begin
(label) @end
(byte) BLACK
@ -9,10 +9,22 @@
(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320
(byte*) CIA1_PORT_B
(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321
(byte) COLLISION_BOTTOM
(const byte) COLLISION_BOTTOM#0 COLLISION_BOTTOM = (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) COLLISION_LEFT
(const byte) COLLISION_LEFT#0 COLLISION_LEFT = (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) COLLISION_NONE
(const byte) COLLISION_NONE#0 COLLISION_NONE = (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) COLLISION_PLAYFIELD
(const byte) COLLISION_PLAYFIELD#0 COLLISION_PLAYFIELD = (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) COLLISION_RIGHT
(const byte) COLLISION_RIGHT#0 COLLISION_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS
(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296
(byte) DARK_GREY
(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11
(byte) GREEN
(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) KEY_COMMA
(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) 47
(byte) KEY_COMMODORE
@ -35,65 +47,138 @@
(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23
(byte) KEY_Z
(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12
(byte) PLAYFIELD_COLS
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
(byte) PLAYFIELD_LINES
(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22
(byte*) RASTER
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(void()) current_movedown()
(label) current_movedown::@return
(byte()) collision((byte) collision::ypos , (byte) collision::xpos)
(byte~) collision::$1 reg byte a 202.0
(byte~) collision::$7 reg byte a 2002.0
(label) collision::@1
(label) collision::@17
(label) collision::@2
(label) collision::@20
(label) collision::@21
(label) collision::@3
(label) collision::@4
(label) collision::@5
(label) collision::@6
(label) collision::@8
(label) collision::@return
(byte) collision::c
(byte) collision::c#1 reg byte x 1001.0
(byte) collision::c#2 reg byte x 333.6666666666667
(byte) collision::col
(byte) collision::col#0 reg byte y 1001.0
(byte) collision::i
(byte) collision::i#1 i zp ZP_BYTE:23 175.25
(byte~) collision::i#11 i#11 zp ZP_BYTE:9 202.0
(byte~) collision::i#13 i#13 zp ZP_BYTE:9 2002.0
(byte) collision::i#2 i#2 zp ZP_BYTE:9 1552.0
(byte) collision::i#3 i#3 zp ZP_BYTE:9 50.5
(byte) collision::l
(byte) collision::l#1 l zp ZP_BYTE:8 101.0
(byte) collision::l#2 l zp ZP_BYTE:8 18.9375
(byte) collision::line
(byte) collision::line#0 line zp ZP_BYTE:22 80.2
(byte*) collision::playfield_line
(byte*) collision::playfield_line#0 playfield_line zp ZP_WORD:20 84.76923076923077
(byte) collision::return
(byte) collision::return#0 reg byte a 4.0
(byte) collision::return#10 reg byte a 1.2000000000000002
(byte) collision::return#11 reg byte a 4.0
(byte) collision::return#12 reg byte a 4.0
(byte) collision::xpos
(byte) collision::xpos#0 xpos zp ZP_BYTE:7 2.0
(byte) collision::xpos#1 xpos zp ZP_BYTE:7 1.3333333333333333
(byte) collision::xpos#2 xpos zp ZP_BYTE:7 1.3333333333333333
(byte) collision::xpos#8 xpos zp ZP_BYTE:7 50.349999999999994
(byte) collision::ypos
(byte) collision::ypos#0 ypos zp ZP_BYTE:4 1.3333333333333333
(byte) collision::ypos#1 ypos zp ZP_BYTE:4 2.0
(byte) collision::ypos#2 ypos zp ZP_BYTE:4 2.0
(byte) collision::ypos#4 ypos zp ZP_BYTE:4 5.35
(byte) current_movedown_counter
(byte) current_movedown_counter#1 current_movedown_counter zp ZP_BYTE:2 26.933333333333334
(byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:2 23.666666666666664
(byte) current_movedown_counter#16 current_movedown_counter zp ZP_BYTE:2 7.344827586206897
(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.6190476190476191
(byte) current_movedown_counter#15 current_movedown_counter zp ZP_BYTE:3 1.3
(byte) current_movedown_rate
(const byte) current_movedown_rate#0 current_movedown_rate = (byte/signed byte/word/signed word/dword/signed dword) 50
(byte) current_movedown_rate_fast
(const byte) current_movedown_rate_fast#0 current_movedown_rate_fast = (byte/signed byte/word/signed word/dword/signed dword) 5
(byte*) current_piece
(byte*) current_piece#11 current_piece zp ZP_WORD:11 0.45454545454545453
(byte*) current_piece#13 current_piece zp ZP_WORD:11 0.37254901960784303
(byte*) current_piece#23 current_piece zp ZP_WORD:11 4.0
(byte) current_piece_color
(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:16 20.73469387755102
(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:16 1.2380952380952381
(byte) current_piece_color#23 current_piece_color zp ZP_BYTE:16 4.0
(byte) current_piece_color#62 current_piece_color#62 zp ZP_BYTE:8 56.22222222222223
(byte~) current_piece_color#69 current_piece_color#69 zp ZP_BYTE:8 22.0
(byte*) current_piece_gfx
(byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:14 4.0
(byte*~) current_piece_gfx#108 current_piece_gfx#108 zp ZP_WORD:5 4.0
(byte*~) current_piece_gfx#109 current_piece_gfx#109 zp ZP_WORD:5 4.0
(byte*) current_piece_gfx#11 current_piece_gfx zp ZP_WORD:14 2.375
(byte*~) current_piece_gfx#110 current_piece_gfx#110 zp ZP_WORD:5 4.0
(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:14 20.77551020408163
(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:14 0.6896551724137933
(byte*) current_piece_gfx#30 current_piece_gfx zp ZP_WORD:14 4.0
(byte*) current_piece_gfx#46 current_piece_gfx#46 zp ZP_WORD:5 50.349999999999994
(byte*) current_piece_gfx#75 current_piece_gfx#75 zp ZP_WORD:5 56.22222222222223
(byte*) current_piece_gfx#9 current_piece_gfx zp ZP_WORD:14 4.0
(byte*~) current_piece_gfx#99 current_piece_gfx#99 zp ZP_WORD:5 7.333333333333333
(byte) current_piece_orientation
(byte) current_piece_orientation#10 current_piece_orientation zp ZP_BYTE:6 202.0
(byte) current_piece_orientation#11 current_piece_orientation zp ZP_BYTE:6 10.921052631578949
(byte) current_piece_orientation#13 reg byte y 13.0
(byte) current_piece_orientation#2 current_piece_orientation zp ZP_BYTE:6 101.0
(byte) current_piece_orientation#21 current_piece_orientation zp ZP_BYTE:6 47.33333333333333
(byte) current_piece_orientation#3 current_piece_orientation zp ZP_BYTE:6 101.0
(byte~) current_piece_orientation#66 reg byte y 7.333333333333333
(byte) current_piece_orientation#10 current_piece_orientation zp ZP_BYTE:13 3.0
(byte) current_piece_orientation#11 current_piece_orientation zp ZP_BYTE:13 1.6875
(byte) current_piece_orientation#16 current_piece_orientation zp ZP_BYTE:13 0.45454545454545453
(byte) current_piece_orientation#18 current_piece_orientation zp ZP_BYTE:13 0.6896551724137933
(byte) current_piece_orientation#29 current_piece_orientation zp ZP_BYTE:13 4.0
(byte) current_piece_orientation#9 current_piece_orientation zp ZP_BYTE:13 3.0
(byte) current_xpos
(byte) current_xpos#1 current_xpos zp ZP_BYTE:5 101.0
(byte) current_xpos#11 current_xpos zp ZP_BYTE:5 202.0
(byte) current_xpos#12 current_xpos zp ZP_BYTE:5 13.833333333333334
(byte) current_xpos#15 current_xpos zp ZP_BYTE:5 47.33333333333333
(byte) current_xpos#2 current_xpos zp ZP_BYTE:5 101.0
(byte) current_xpos#26 current_xpos#26 zp ZP_BYTE:7 59.529411764705884
(byte) current_xpos#34 current_xpos zp ZP_BYTE:5 40.4
(byte~) current_xpos#64 current_xpos#64 zp ZP_BYTE:7 22.0
(byte) current_xpos#10 current_xpos zp ZP_BYTE:17 4.0
(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.375
(byte) current_xpos#16 current_xpos zp ZP_BYTE:17 20.77551020408163
(byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.7272727272727271
(byte) current_xpos#35 current_xpos zp ZP_BYTE:17 4.0
(byte) current_xpos#81 current_xpos#81 zp ZP_BYTE:7 56.22222222222223
(byte) current_xpos#9 current_xpos zp ZP_BYTE:17 4.0
(byte~) current_xpos#91 current_xpos#91 zp ZP_BYTE:7 11.0
(byte) current_ypos
(byte) current_ypos#10 current_ypos zp ZP_BYTE:3 34.33333333333333
(byte) current_ypos#13 current_ypos zp ZP_BYTE:3 8.6
(byte) current_ypos#14 current_ypos#14 zp ZP_BYTE:4 6.588235294117648
(byte) current_ypos#17 current_ypos zp ZP_BYTE:3 11.206896551724137
(byte~) current_ypos#62 current_ypos#62 zp ZP_BYTE:4 11.0
(byte) current_ypos#12 current_ypos zp ZP_BYTE:2 2.458333333333333
(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.588235294117647
(byte) current_ypos#30 current_ypos zp ZP_BYTE:2 4.0
(byte) current_ypos#35 current_ypos#35 zp ZP_BYTE:4 6.222222222222221
(byte) current_ypos#4 current_ypos zp ZP_BYTE:2 4.0
(byte~) current_ypos#75 current_ypos#75 zp ZP_BYTE:4 5.5
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
(label) fill::@1
(label) fill::@return
(byte*) fill::addr
(byte*) fill::addr#0 addr zp ZP_WORD:11 2.0
(byte*) fill::addr#1 addr zp ZP_WORD:11 16.5
(byte*) fill::addr#2 addr zp ZP_WORD:11 17.5
(byte*) fill::addr#0 addr zp ZP_WORD:5 2.0
(byte*) fill::addr#1 addr zp ZP_WORD:5 16.5
(byte*) fill::addr#2 addr zp ZP_WORD:5 17.5
(byte*) fill::end
(byte*) fill::end#0 end zp ZP_WORD:13 2.6
(byte*) fill::end#0 end zp ZP_WORD:11 2.6
(word) fill::size
(byte*) fill::start
(byte) fill::val
(byte) fill::val#3 reg byte x 1.8333333333333333
(void()) init()
(byte~) init::$4 reg byte a 22.0
(byte*~) init::$7 $7 zp ZP_WORD:13 202.0
(byte*~) init::$13 $13 zp ZP_WORD:11 202.0
(byte~) init::$5 reg byte a 22.0
(byte~) init::$8 reg byte a 22.0
(label) init::@1
(label) init::@2
(label) init::@3
(label) init::@5
(label) init::@4
(label) init::@7
(label) init::@9
(label) init::@return
(byte) init::c
(byte) init::c#1 reg byte x 151.5
@ -101,45 +186,51 @@
(byte) init::i
(byte) init::i#1 reg byte x 16.5
(byte) init::i#2 reg byte x 8.25
(byte) init::j
(byte) init::j#1 reg byte x 16.5
(byte) init::j#2 reg byte x 8.25
(byte) init::l
(byte) init::l#1 l zp ZP_BYTE:2 16.5
(byte) init::l#4 l zp ZP_BYTE:2 3.142857142857143
(byte*) init::li
(byte*) init::li#1 li zp ZP_WORD:11 7.333333333333333
(byte*) init::li#2 li zp ZP_WORD:11 11.0
(byte*) init::li#1 li zp ZP_WORD:5 7.333333333333333
(byte*) init::li#2 li zp ZP_WORD:5 11.0
(byte*) init::line
(byte*) init::line#1 line zp ZP_WORD:11 7.333333333333333
(byte*) init::line#4 line zp ZP_WORD:11 20.499999999999996
(byte*) init::line#1 line zp ZP_WORD:5 7.333333333333333
(byte*) init::line#4 line zp ZP_WORD:5 20.499999999999996
(byte*) init::pli
(byte*) init::pli#1 pli zp ZP_WORD:5 7.333333333333333
(byte*) init::pli#2 pli zp ZP_WORD:5 11.0
(byte()) keyboard_event_get()
(label) keyboard_event_get::@3
(label) keyboard_event_get::@return
(byte) keyboard_event_get::return
(byte) keyboard_event_get::return#1 reg byte a 4.0
(byte) keyboard_event_get::return#2 reg byte a 34.33333333333333
(byte) keyboard_event_get::return#3 reg byte a 202.0
(byte) keyboard_event_get::return#2 reg byte a 4.333333333333333
(byte) keyboard_event_get::return#3 reg byte a 22.0
(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode)
(byte~) keyboard_event_pressed::$0 reg byte a 4.0
(byte~) keyboard_event_pressed::$1 reg byte a 4.0
(label) keyboard_event_pressed::@return
(byte) keyboard_event_pressed::keycode
(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:7 1.3333333333333333
(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:4 1.3333333333333333
(byte) keyboard_event_pressed::return
(byte) keyboard_event_pressed::return#0 reg byte a 4.0
(byte) keyboard_event_pressed::return#1 reg byte a 4.0
(byte) keyboard_event_pressed::return#10 reg byte a 4.0
(byte) keyboard_event_pressed::return#11 reg byte a 15.857142857142861
(byte) keyboard_event_pressed::return#12 reg byte a 202.0
(byte) keyboard_event_pressed::return#11 reg byte a 1.714285714285714
(byte) keyboard_event_pressed::return#12 reg byte a 4.0
(byte) keyboard_event_pressed::return#2 reg byte a 4.0
(byte) keyboard_event_pressed::row_bits
(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:9 2.0
(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:7 2.0
(void()) keyboard_event_scan()
(byte/word/dword~) keyboard_event_scan::$11 reg byte a 20002.0
(byte/word/dword~) keyboard_event_scan::$11 reg byte a 2002.0
(byte~) keyboard_event_scan::$14 reg byte a 4.0
(byte~) keyboard_event_scan::$18 reg byte a 4.0
(byte~) keyboard_event_scan::$22 reg byte a 4.0
(byte~) keyboard_event_scan::$26 reg byte a 4.0
(byte~) keyboard_event_scan::$3 reg byte a 20002.0
(byte~) keyboard_event_scan::$4 reg byte a 20002.0
(byte~) keyboard_event_scan::$3 reg byte a 2002.0
(byte~) keyboard_event_scan::$4 reg byte a 2002.0
(label) keyboard_event_scan::@1
(label) keyboard_event_scan::@10
(label) keyboard_event_scan::@11
@ -165,188 +256,278 @@
(label) keyboard_event_scan::@9
(label) keyboard_event_scan::@return
(byte) keyboard_event_scan::col
(byte) keyboard_event_scan::col#1 col zp ZP_BYTE:7 15001.5
(byte) keyboard_event_scan::col#2 col zp ZP_BYTE:7 2857.4285714285716
(byte) keyboard_event_scan::col#1 reg byte x 1501.5
(byte) keyboard_event_scan::col#2 reg byte x 286.0
(byte) keyboard_event_scan::event_type
(byte) keyboard_event_scan::event_type#0 reg byte a 20002.0
(byte) keyboard_event_scan::event_type#0 reg byte a 2002.0
(byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:8 2002.0
(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:8 3154.230769230769
(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:8 500.5
(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:8 1001.0
(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:8 5250.75
(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:7 202.0
(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:7 315.7692307692308
(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:7 50.5
(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:7 101.0
(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:7 525.75
(byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:4 1501.5
(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:4 600.24
(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:4 151.5
(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:4 60.24
(byte) keyboard_event_scan::row_scan
(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:9 1278.0555555555554
(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:8 128.05555555555557
(byte[8]) keyboard_events
(const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) }
(byte) keyboard_events_size
(byte) keyboard_events_size#1 reg byte x 20002.0
(byte) keyboard_events_size#10 reg byte x 8100.9000000000015
(byte) keyboard_events_size#13 reg byte x 97.06451612903226
(byte) keyboard_events_size#16 reg byte x 2.2745098039215685
(byte) keyboard_events_size#19 reg byte x 22.799999999999997
(byte) keyboard_events_size#2 reg byte x 20002.0
(byte) keyboard_events_size#29 reg byte x 429.2857142857143
(byte) keyboard_events_size#30 reg byte x 10201.2
(byte) keyboard_events_size#4 reg byte x 3.0
(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:18 2002.0
(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:18 810.9000000000001
(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:18 9.967741935483872
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:18 0.6
(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:18 2.6
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:18 2002.0
(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:18 43.57142857142858
(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:18 1021.2
(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:18 3.0
(byte[8]) keyboard_matrix_col_bitmask
(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 }
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
(label) keyboard_matrix_read::@return
(byte) keyboard_matrix_read::return
(byte) keyboard_matrix_read::return#0 reg byte a 334.33333333333337
(byte) keyboard_matrix_read::return#2 reg byte a 2002.0
(byte) keyboard_matrix_read::return#0 reg byte a 34.33333333333333
(byte) keyboard_matrix_read::return#2 reg byte a 202.0
(byte) keyboard_matrix_read::row_pressed_bits
(byte) keyboard_matrix_read::rowid
(byte) keyboard_matrix_read::rowid#0 reg byte y 1003.0
(byte) keyboard_matrix_read::rowid#0 reg byte x 103.0
(byte[8]) keyboard_matrix_row_bitmask
(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 }
(byte) keyboard_modifiers
(byte[8]) keyboard_scan_values
(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) }
(void()) lock_current()
(byte~) lock_current::$1 reg byte a 202.0
(label) lock_current::@1
(label) lock_current::@2
(label) lock_current::@3
(label) lock_current::@4
(label) lock_current::@5
(label) lock_current::@return
(byte) lock_current::c
(byte) lock_current::c#1 reg byte x 1501.5
(byte) lock_current::c#2 reg byte x 500.5
(byte) lock_current::cell
(byte) lock_current::cell#0 reg byte a 1001.0
(byte) lock_current::col
(byte) lock_current::col#0 reg byte a 2002.0
(byte) lock_current::i
(byte) lock_current::i#1 i zp ZP_BYTE:4 262.875
(byte) lock_current::i#2 i zp ZP_BYTE:4 1552.0
(byte) lock_current::i#3 i zp ZP_BYTE:4 50.5
(byte) lock_current::l
(byte) lock_current::l#1 l zp ZP_BYTE:3 151.5
(byte) lock_current::l#2 l zp ZP_BYTE:3 25.25
(byte) lock_current::line
(byte) lock_current::line#0 reg byte a 202.0
(byte*) lock_current::playfield_line
(byte*) lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 122.44444444444446
(void()) main()
(byte~) main::$19 reg byte a 202.0
(byte/signed word/word/dword/signed dword~) main::$28 reg byte a 202.0
(byte/signed word/word/dword/signed dword~) main::$32 reg byte a 202.0
(byte~) main::$9 reg byte a 202.0
(byte~) main::$8 reg byte a 22.0
(byte~) main::$9 reg byte a 22.0
(label) main::@1
(label) main::@10
(label) main::@11
(label) main::@13
(label) main::@14
(label) main::@15
(label) main::@16
(label) main::@17
(label) main::@18
(label) main::@19
(label) main::@21
(label) main::@22
(label) main::@23
(label) main::@25
(label) main::@26
(label) main::@27
(label) main::@28
(label) main::@29
(label) main::@30
(label) main::@31
(label) main::@32
(label) main::@33
(label) main::@34
(label) main::@35
(label) main::@36
(label) main::@37
(label) main::@38
(label) main::@39
(label) main::@4
(label) main::@41
(label) main::@42
(label) main::@44
(label) main::@45
(label) main::@46
(label) main::@48
(label) main::@49
(label) main::@7
(label) main::@9
(byte) main::key_event
(byte) main::key_event#0 key_event zp ZP_BYTE:8 20.794117647058826
(byte) main::movedown
(byte) main::movedown#10 movedown zp ZP_BYTE:4 50.5
(byte) main::movedown#2 movedown zp ZP_BYTE:4 202.0
(byte) main::movedown#3 movedown zp ZP_BYTE:4 202.0
(byte) main::movedown#6 movedown zp ZP_BYTE:4 303.0
(byte) main::movedown#7 movedown zp ZP_BYTE:4 252.5
(byte) main::key_event#0 key_event zp ZP_BYTE:10 5.5
(byte) main::render
(byte) main::render#10 reg byte y 101.0
(byte) main::render#11 reg byte y 101.0
(byte) main::render#13 reg byte y 60.599999999999994
(byte) main::render#16 reg byte y 134.66666666666666
(byte) main::render#2 reg byte y 202.0
(byte) main::render#3 reg byte y 202.0
(byte) main::render#4 reg byte y 202.0
(byte) main::render#5 reg byte y 202.0
(byte) main::render#7 reg byte y 404.0
(byte) main::render#1 render zp ZP_BYTE:19 4.4
(byte) main::render#2 reg byte a 22.0
(byte[4*4*4]) piece_t
(const byte[4*4*4]) piece_t#0 piece_t = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
(byte[20*10]) playfield
(const byte[20*10]) playfield#0 playfield = { fill( 20*10, 0) }
(byte()) play_movedown((byte) play_movedown::key_event)
(byte~) play_movedown::$12 reg byte a 4.0
(byte~) play_movedown::$2 reg byte a 4.0
(label) play_movedown::@1
(label) play_movedown::@10
(label) play_movedown::@11
(label) play_movedown::@12
(label) play_movedown::@13
(label) play_movedown::@17
(label) play_movedown::@18
(label) play_movedown::@19
(label) play_movedown::@2
(label) play_movedown::@4
(label) play_movedown::@6
(label) play_movedown::@7
(label) play_movedown::@8
(label) play_movedown::@9
(label) play_movedown::@return
(byte) play_movedown::key_event
(byte) play_movedown::key_event#0 reg byte a 6.5
(byte) play_movedown::movedown
(byte) play_movedown::movedown#10 reg byte x 1.0
(byte) play_movedown::movedown#2 reg byte x 4.0
(byte) play_movedown::movedown#3 reg byte x 4.0
(byte) play_movedown::movedown#6 reg byte x 6.0
(byte) play_movedown::movedown#7 reg byte x 5.0
(byte) play_movedown::return
(byte) play_movedown::return#0 reg byte a 22.0
(byte) play_movedown::return#3 reg byte x 3.6666666666666665
(byte()) play_moveother((byte) play_moveother::key_event)
(byte~) play_moveother::$0 reg byte a 4.0
(byte/signed word/word/dword/signed dword~) play_moveother::$11 reg byte a 4.0
(byte~) play_moveother::$15 reg byte a 4.0
(byte~) play_moveother::$19 reg byte a 4.0
(byte/signed word/word/dword/signed dword~) play_moveother::$8 reg byte a 4.0
(label) play_moveother::@1
(label) play_moveother::@11
(label) play_moveother::@12
(label) play_moveother::@13
(label) play_moveother::@14
(label) play_moveother::@15
(label) play_moveother::@18
(label) play_moveother::@2
(label) play_moveother::@20
(label) play_moveother::@22
(label) play_moveother::@23
(label) play_moveother::@3
(label) play_moveother::@4
(label) play_moveother::@return
(byte) play_moveother::key_event
(byte) play_moveother::key_event#0 reg byte x 3.5000000000000004
(byte) play_moveother::render
(byte) play_moveother::return
(byte) play_moveother::return#0 reg byte a 22.0
(byte) play_moveother::return#1 reg byte a 3.6666666666666665
(byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield
(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) }
(byte*[PLAYFIELD_LINES#0]) playfield_lines
(const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 playfield_lines = { fill( PLAYFIELD_LINES#0, 0) }
(void()) render_current()
(byte~) render_current::$1 reg byte a 202.0
(byte~) render_current::$2 reg byte a 202.0
(byte~) render_current::$3 reg byte a 202.0
(label) render_current::@1
(label) render_current::@2
(label) render_current::@3
(label) render_current::@5
(label) render_current::@4
(label) render_current::@6
(label) render_current::@7
(label) render_current::@8
(label) render_current::@return
(byte) render_current::c
(byte) render_current::c#1 c zp ZP_BYTE:10 1501.5
(byte) render_current::c#2 c zp ZP_BYTE:10 429.0
(byte) render_current::c#1 reg byte x 1501.5
(byte) render_current::c#2 reg byte x 429.0
(byte) render_current::current_cell
(byte) render_current::current_cell#0 current_cell zp ZP_BYTE:15 600.5999999999999
(byte*) render_current::current_piece_gfx
(byte*) render_current::current_piece_gfx#0 current_piece_gfx zp ZP_WORD:11 62.6875
(byte) render_current::current_cell#0 reg byte a 1001.0
(byte) render_current::i
(byte) render_current::i#1 i zp ZP_BYTE:9 233.66666666666669
(byte) render_current::i#2 i zp ZP_BYTE:9 1552.0
(byte) render_current::i#3 i zp ZP_BYTE:9 50.5
(byte) render_current::i#1 i zp ZP_BYTE:10 429.0
(byte) render_current::i#2 i zp ZP_BYTE:10 1552.0
(byte) render_current::i#4 i zp ZP_BYTE:10 60.599999999999994
(byte) render_current::i#8 i zp ZP_BYTE:10 401.0
(byte) render_current::l
(byte) render_current::l#1 l zp ZP_BYTE:8 151.5
(byte) render_current::l#2 l zp ZP_BYTE:8 23.307692307692307
(byte) render_current::l#1 l zp ZP_BYTE:9 151.5
(byte) render_current::l#2 l zp ZP_BYTE:9 20.2
(byte) render_current::line
(byte) render_current::line#0 reg byte a 151.5
(byte*) render_current::screen_line
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:13 110.19999999999999
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:20 110.19999999999999
(byte) render_current::xpos
(byte) render_current::xpos#0 reg byte a 1501.5
(void()) render_playfield()
(byte~) render_playfield::$0 reg byte a 202.0
(byte*~) render_playfield::$1 $1 zp ZP_WORD:13 2002.0
(byte~) render_playfield::$1 reg byte a 202.0
(byte*~) render_playfield::$3 $3 zp ZP_WORD:20 2002.0
(label) render_playfield::@1
(label) render_playfield::@2
(label) render_playfield::@3
(label) render_playfield::@return
(byte) render_playfield::c
(byte) render_playfield::c#1 c zp ZP_BYTE:7 1501.5
(byte) render_playfield::c#2 c zp ZP_BYTE:7 750.75
(byte) render_playfield::c#1 reg byte x 1501.5
(byte) render_playfield::c#2 reg byte x 750.75
(byte) render_playfield::i
(byte) render_playfield::i#1 i zp ZP_BYTE:8 420.59999999999997
(byte) render_playfield::i#2 i zp ZP_BYTE:8 1034.6666666666667
(byte) render_playfield::i#3 i zp ZP_BYTE:8 67.33333333333333
(byte) render_playfield::i#1 i zp ZP_BYTE:7 420.59999999999997
(byte) render_playfield::i#2 i zp ZP_BYTE:7 1034.6666666666667
(byte) render_playfield::i#3 i zp ZP_BYTE:7 67.33333333333333
(byte) render_playfield::l
(byte) render_playfield::l#1 l zp ZP_BYTE:4 151.5
(byte) render_playfield::l#2 l zp ZP_BYTE:4 33.666666666666664
(byte*) render_playfield::line
(byte*) render_playfield::line#0 line zp ZP_WORD:11 157.42857142857142
(byte*[20]) screen_lines
(const byte*[20]) screen_lines#0 screen_lines = { fill( 20, 0) }
(byte*) render_playfield::line#0 line zp ZP_WORD:5 157.42857142857142
(byte*[PLAYFIELD_LINES#0+3]) screen_lines
(const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 screen_lines = { fill( PLAYFIELD_LINES#0+3, 0) }
(void()) spawn_current()
(label) spawn_current::@return
zp ZP_BYTE:2 [ current_movedown_counter#14 current_movedown_counter#16 current_movedown_counter#1 init::l#4 init::l#1 ]
zp ZP_BYTE:3 [ current_ypos#13 current_ypos#17 current_ypos#10 ]
zp ZP_BYTE:4 [ main::movedown#6 main::movedown#7 main::movedown#10 main::movedown#2 main::movedown#3 current_ypos#14 current_ypos#62 render_playfield::l#2 render_playfield::l#1 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
zp ZP_BYTE:5 [ current_xpos#34 current_xpos#11 current_xpos#12 current_xpos#15 current_xpos#1 current_xpos#2 ]
zp ZP_BYTE:6 [ current_piece_orientation#10 current_piece_orientation#11 current_piece_orientation#21 current_piece_orientation#2 current_piece_orientation#3 ]
reg byte y [ main::render#7 main::render#11 main::render#10 main::render#16 main::render#13 main::render#2 main::render#3 main::render#4 main::render#5 ]
reg byte y [ current_piece_orientation#13 current_piece_orientation#66 ]
zp ZP_BYTE:7 [ current_xpos#26 current_xpos#64 render_playfield::c#2 render_playfield::c#1 keyboard_event_pressed::keycode#5 keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
zp ZP_BYTE:8 [ render_current::l#2 render_current::l#1 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 main::key_event#0 ]
zp ZP_BYTE:9 [ render_current::i#2 render_current::i#3 render_current::i#1 keyboard_event_pressed::row_bits#0 keyboard_event_scan::row_scan#0 ]
zp ZP_BYTE:10 [ render_current::c#2 render_current::c#1 ]
zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#30 current_ypos#4 init::l#4 init::l#1 ]
zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 lock_current::l#2 lock_current::l#1 ]
zp ZP_BYTE:4 [ current_ypos#35 current_ypos#75 render_playfield::l#2 render_playfield::l#1 collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 lock_current::i#2 lock_current::i#3 lock_current::i#1 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
zp ZP_WORD:5 [ current_piece_gfx#75 current_piece_gfx#99 current_piece_gfx#46 current_piece_gfx#108 current_piece_gfx#109 current_piece_gfx#110 init::li#2 init::li#1 init::pli#2 init::pli#1 init::line#4 init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 render_playfield::line#0 lock_current::playfield_line#0 ]
zp ZP_BYTE:7 [ current_xpos#81 current_xpos#91 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#8 collision::xpos#0 collision::xpos#1 collision::xpos#2 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ]
zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#69 collision::l#2 collision::l#1 keyboard_event_scan::row_scan#0 ]
zp ZP_BYTE:9 [ render_current::l#2 render_current::l#1 collision::i#2 collision::i#3 collision::i#11 collision::i#13 ]
zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 main::key_event#0 ]
reg byte x [ render_current::c#2 render_current::c#1 ]
reg byte x [ render_playfield::c#2 render_playfield::c#1 ]
reg byte a [ play_moveother::return#1 ]
reg byte x [ collision::c#2 collision::c#1 ]
reg byte a [ collision::return#10 ]
reg byte x [ play_movedown::movedown#6 play_movedown::movedown#3 play_movedown::movedown#7 play_movedown::movedown#2 play_movedown::movedown#10 ]
zp ZP_WORD:11 [ current_piece#23 current_piece#11 current_piece#13 init::$13 fill::end#0 ]
zp ZP_BYTE:13 [ current_piece_orientation#29 current_piece_orientation#16 current_piece_orientation#11 current_piece_orientation#18 current_piece_orientation#10 current_piece_orientation#9 ]
zp ZP_WORD:14 [ current_piece_gfx#30 current_piece_gfx#16 current_piece_gfx#11 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#9 ]
zp ZP_BYTE:16 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 ]
zp ZP_BYTE:17 [ current_xpos#35 current_xpos#16 current_xpos#11 current_xpos#19 current_xpos#9 current_xpos#10 ]
reg byte x [ play_movedown::return#3 ]
reg byte x [ lock_current::c#2 lock_current::c#1 ]
reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ]
reg byte x [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ]
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
zp ZP_BYTE:18 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ]
reg byte x [ init::i#2 init::i#1 ]
zp ZP_WORD:11 [ init::li#2 init::li#1 init::line#4 init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 render_current::current_piece_gfx#0 render_playfield::line#0 ]
reg byte x [ init::j#2 init::j#1 ]
reg byte x [ init::c#2 init::c#1 ]
reg byte x [ fill::val#3 ]
reg byte a [ keyboard_event_get::return#3 ]
reg byte a [ keyboard_event_pressed::return#12 ]
reg byte a [ play_movedown::key_event#0 ]
reg byte a [ play_movedown::return#0 ]
reg byte a [ main::$8 ]
zp ZP_BYTE:19 [ main::render#1 ]
reg byte x [ play_moveother::key_event#0 ]
reg byte a [ play_moveother::return#0 ]
reg byte a [ main::$9 ]
reg byte a [ main::$19 ]
reg byte a [ main::$28 ]
reg byte a [ main::$32 ]
reg byte a [ render_current::$1 ]
reg byte a [ render_current::$2 ]
zp ZP_WORD:13 [ render_current::screen_line#0 render_playfield::$1 init::$7 fill::end#0 ]
zp ZP_BYTE:15 [ render_current::current_cell#0 ]
reg byte a [ main::render#2 ]
reg byte a [ render_current::line#0 ]
reg byte a [ render_current::$3 ]
zp ZP_WORD:20 [ render_current::screen_line#0 render_playfield::$3 collision::playfield_line#0 ]
reg byte a [ render_current::current_cell#0 ]
reg byte a [ render_current::xpos#0 ]
reg byte a [ render_playfield::$0 ]
reg byte a [ render_playfield::$1 ]
reg byte a [ play_moveother::$0 ]
reg byte a [ play_moveother::$8 ]
reg byte a [ play_moveother::$11 ]
reg byte a [ collision::return#12 ]
reg byte a [ play_moveother::$15 ]
reg byte a [ collision::return#11 ]
reg byte a [ play_moveother::$19 ]
zp ZP_BYTE:22 [ collision::line#0 ]
reg byte a [ collision::$1 ]
zp ZP_BYTE:23 [ collision::i#1 ]
reg byte y [ collision::col#0 ]
reg byte a [ collision::$7 ]
reg byte a [ keyboard_event_pressed::return#12 ]
reg byte a [ play_movedown::$2 ]
reg byte a [ collision::return#0 ]
reg byte a [ play_movedown::$12 ]
reg byte a [ lock_current::line#0 ]
reg byte a [ lock_current::$1 ]
reg byte a [ lock_current::cell#0 ]
reg byte a [ lock_current::col#0 ]
reg byte a [ keyboard_event_pressed::$0 ]
reg byte a [ keyboard_event_pressed::$1 ]
reg byte a [ keyboard_event_pressed::return#11 ]
reg byte y [ keyboard_matrix_read::rowid#0 ]
reg byte x [ keyboard_matrix_read::rowid#0 ]
reg byte a [ keyboard_matrix_read::return#2 ]
reg byte a [ keyboard_event_pressed::return#0 ]
reg byte a [ keyboard_event_scan::$14 ]
@ -361,4 +542,5 @@ reg byte a [ keyboard_event_scan::$4 ]
reg byte a [ keyboard_event_scan::event_type#0 ]
reg byte a [ keyboard_event_scan::$11 ]
reg byte a [ keyboard_matrix_read::return#0 ]
reg byte a [ init::$4 ]
reg byte a [ init::$5 ]
reg byte a [ init::$8 ]

View File

@ -684,6 +684,7 @@ menu: {
sta _0
//SEG23 [12] if((byte~) menu::$0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@4 -- vbuz1_eq_0_then_la1
lda _0
cmp #0
beq b4_from_b16
//SEG24 [13] phi from menu::@16 to menu::@9 [phi:menu::@16->menu::@9]
b9_from_b16:
@ -720,6 +721,7 @@ menu: {
sta _4
//SEG37 [20] if((byte~) menu::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@5 -- vbuz1_eq_0_then_la1
lda _4
cmp #0
beq b5_from_b17
jmp b11
//SEG38 menu::@11
@ -753,6 +755,7 @@ menu: {
sta _7
//SEG49 [27] if((byte~) menu::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@6 -- vbuz1_eq_0_then_la1
lda _7
cmp #0
beq b6
jmp b13
//SEG50 menu::@13
@ -863,6 +866,7 @@ pressed: {
sta _0
//SEG81 [48] if((byte~) pressed::$0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto pressed::@2 -- vbuz1_eq_0_then_la1
lda _0
cmp #0
beq b2_from_b10
jmp breturn
//SEG82 pressed::@return
@ -917,9 +921,9 @@ Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:11 [ keyboard_matrix_read::row
Uplift Scope [main]
Uplift Scope []
Uplifting [keyboard_key_pressed] best 9051 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#3 ] reg byte a [ keyboard_key_pressed::return#4 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:14 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:10 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:13 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:2 [ keyboard_key_pressed::key#4 ] zp ZP_BYTE:9 [ keyboard_key_pressed::colidx#0 ]
Uplifting [keyboard_key_pressed] best 9851 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#3 ] reg byte a [ keyboard_key_pressed::return#4 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:14 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:10 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:13 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:2 [ keyboard_key_pressed::key#4 ] zp ZP_BYTE:9 [ keyboard_key_pressed::colidx#0 ]
Limited combination testing to 100 combinations of 147456 possible.
Uplifting [menu] best 7851 combination reg byte a [ menu::$0 ] reg byte a [ menu::$4 ] reg byte a [ menu::$7 ]
Uplifting [menu] best 8051 combination reg byte a [ menu::$0 ] reg byte a [ menu::$4 ] reg byte a [ menu::$7 ]
Uplifting [pressed] best 7451 combination reg byte a [ pressed::$0 ]
Uplifting [keyboard_matrix_read] best 7433 combination reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ]
Uplifting [main] best 7433 combination

View File

@ -2966,6 +2966,7 @@ divr16s: {
sta resultu+1
//SEG138 [82] if((byte) divr16s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@19 -- vbuz1_eq_0_then_la1
lda neg
cmp #0
beq b19
jmp b11
//SEG139 divr16s::@11
@ -3094,6 +3095,7 @@ divr16u: {
sta _2
//SEG173 [97] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG174 divr16u::@4
@ -3681,12 +3683,12 @@ Uplift Scope [main] 24.36: zp ZP_BYTE:2 [ main::i#2 main::i#1 ] 11: zp ZP_BYTE:3
Uplift Scope [bitmap_plot] 15: zp ZP_BYTE:40 [ bitmap_plot::y#0 ] 4: zp ZP_WORD:43 [ bitmap_plot::$1 ] 4: zp ZP_BYTE:47 [ bitmap_plot::$2 ] 3: zp ZP_WORD:38 [ bitmap_plot::x#0 ] 3: zp ZP_WORD:45 [ bitmap_plot::plotter#1 ] 1: zp ZP_WORD:41 [ bitmap_plot::$3 ]
Uplift Scope []
Uplifting [divr16u] best 29549 combination zp ZP_WORD:16 [ divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:20 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:18 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:77 [ divr16u::divisor#0 ] zp ZP_WORD:79 [ divr16u::return#2 ]
Uplifting [bitmap_clear] best 28649 combination zp ZP_WORD:28 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:27 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:89 [ bitmap_clear::$3 ]
Uplifting [screen_fill] best 27749 combination zp ZP_WORD:24 [ screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 ] reg byte x [ screen_fill::x#2 screen_fill::x#1 ] zp ZP_BYTE:23 [ screen_fill::y#4 screen_fill::y#1 ]
Uplifting [bitmap_init] best 27309 combination zp ZP_WORD:34 [ 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::y#2 bitmap_init::y#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte a [ bitmap_init::$4 ] zp ZP_BYTE:93 [ bitmap_init::$5 ] zp ZP_BYTE:94 [ bitmap_init::$6 ] zp ZP_BYTE:95 [ bitmap_init::$7 ] zp ZP_BYTE:91 [ bitmap_init::$3 ]
Uplifting [divr16u] best 29551 combination zp ZP_WORD:16 [ divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:20 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:18 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:77 [ divr16u::divisor#0 ] zp ZP_WORD:79 [ divr16u::return#2 ]
Uplifting [bitmap_clear] best 28651 combination zp ZP_WORD:28 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:27 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:89 [ bitmap_clear::$3 ]
Uplifting [screen_fill] best 27751 combination zp ZP_WORD:24 [ screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 ] reg byte x [ screen_fill::x#2 screen_fill::x#1 ] zp ZP_BYTE:23 [ screen_fill::y#4 screen_fill::y#1 ]
Uplifting [bitmap_init] best 27311 combination zp ZP_WORD:34 [ 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::y#2 bitmap_init::y#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte a [ bitmap_init::$4 ] zp ZP_BYTE:93 [ bitmap_init::$5 ] zp ZP_BYTE:94 [ bitmap_init::$6 ] zp ZP_BYTE:95 [ bitmap_init::$7 ] zp ZP_BYTE:91 [ bitmap_init::$3 ]
Limited combination testing to 100 combinations of 61440 possible.
Uplifting [point_init] best 27297 combination zp ZP_WORD:5 [ point_init::abs16s2_return#2 point_init::abs16s2_return#5 point_init::abs16s2_return#6 ] zp ZP_WORD:3 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 ] zp ZP_WORD:53 [ point_init::$5 ] zp ZP_WORD:57 [ point_init::$16 ] zp ZP_WORD:59 [ point_init::$17 ] zp ZP_WORD:61 [ point_init::$18 ] zp ZP_WORD:69 [ point_init::x_stepf#0 ] reg byte a [ point_init::$13 ] zp ZP_WORD:51 [ point_init::$4 ] reg byte a [ point_init::$14 ] zp ZP_WORD:73 [ point_init::abs16s2_$2#0 ] zp ZP_WORD:75 [ point_init::abs16s1_$2#0 ] zp ZP_BYTE:36 [ point_init::point_idx#0 ] zp ZP_WORD:49 [ point_init::x_diff#1 ] zp ZP_WORD:55 [ point_init::y_diff#0 ] zp ZP_BYTE:48 [ point_init::point_idx1#0 ]
Uplifting [point_init] best 27299 combination zp ZP_WORD:5 [ point_init::abs16s2_return#2 point_init::abs16s2_return#5 point_init::abs16s2_return#6 ] zp ZP_WORD:3 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 ] zp ZP_WORD:53 [ point_init::$5 ] zp ZP_WORD:57 [ point_init::$16 ] zp ZP_WORD:59 [ point_init::$17 ] zp ZP_WORD:61 [ point_init::$18 ] zp ZP_WORD:69 [ point_init::x_stepf#0 ] reg byte a [ point_init::$13 ] zp ZP_WORD:51 [ point_init::$4 ] reg byte a [ point_init::$14 ] zp ZP_WORD:73 [ point_init::abs16s2_$2#0 ] zp ZP_WORD:75 [ point_init::abs16s1_$2#0 ] zp ZP_BYTE:36 [ point_init::point_idx#0 ] zp ZP_WORD:49 [ point_init::x_diff#1 ] zp ZP_WORD:55 [ point_init::y_diff#0 ] zp ZP_BYTE:48 [ point_init::point_idx1#0 ]
Limited combination testing to 100 combinations of 144 possible.
Uplifting [divr16s] best 27288 combination zp ZP_WORD:11 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 ] zp ZP_WORD:14 [ divr16s::return#2 divr16s::return#1 divr16s::return#7 ] zp ZP_WORD:9 [ divr16s::remu#3 divr16s::remu#7 divr16s::remu#8 ] zp ZP_WORD:67 [ divr16s::return#3 ] reg byte y [ divr16s::neg#4 divr16s::neg#2 divr16s::neg#3 ] zp ZP_WORD:65 [ divr16s::rem#0 ] zp ZP_WORD:85 [ divr16s::$7 ] zp ZP_WORD:81 [ divr16s::resultu#0 ] zp ZP_WORD:83 [ divr16s::$11 ] zp ZP_WORD:63 [ divr16s::divisor#0 ] zp ZP_WORD:7 [ divr16s::dividendu#3 ]
Uplifting [main] best 27248 combination zp ZP_BYTE:2 [ main::i#2 main::i#1 ] reg byte x [ main::$9 ]

View File

@ -2858,6 +2858,7 @@ divr16u: {
sta _2
//SEG283 [122] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG284 divr16u::@4
@ -3055,8 +3056,8 @@ Uplift Scope [main] 20.17: zp ZP_BYTE:2 [ main::i#10 main::i#1 ]
Uplift Scope [print_char] 14: zp ZP_BYTE:8 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
Uplift Scope [print_ln]
Uplifting [] best 16019 combination zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 ] zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] zp ZP_WORD:56 [ rem16u#1 ]
Uplifting [print_str] best 16019 combination zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ]
Uplifting [] best 16039 combination zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 ] zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] zp ZP_WORD:56 [ rem16u#1 ]
Uplifting [print_str] best 16039 combination zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ]
Uplifting [divr16u] best 15829 combination zp ZP_WORD:29 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:33 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:31 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:40 [ divr16u::return#2 ] zp ZP_WORD:44 [ divr16u::return#3 ] zp ZP_WORD:27 [ divr16u::divisor#6 ]
Uplifting [lin16u_gen] best 15829 combination zp ZP_WORD:52 [ lin16u_gen::$5 ] zp ZP_DWORD:19 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] zp ZP_WORD:25 [ lin16u_gen::i#2 lin16u_gen::i#1 ] zp ZP_WORD:23 [ lin16u_gen::lintab#4 lin16u_gen::lintab#3 lin16u_gen::lintab#5 ] zp ZP_WORD:38 [ lin16u_gen::ampl#0 ] zp ZP_WORD:46 [ lin16u_gen::stepf#0 ] zp ZP_WORD:15 [ lin16u_gen::max#3 ] zp ZP_DWORD:48 [ lin16u_gen::step#0 ] zp ZP_WORD:42 [ lin16u_gen::stepi#0 ] zp ZP_WORD:17 [ lin16u_gen::min#3 ]
Uplifting [print_word] best 15829 combination zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 ]

View File

@ -638,6 +638,7 @@ gen_char3: {
sta _1
//SEG48 [19] if((byte~) gen_char3::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_char3::@3 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b3_from_b2
jmp b4
//SEG49 gen_char3::@4

View File

@ -387,6 +387,7 @@ sin16s: {
adc x5_128+1
sta usinx+1
lda isUpper
cmp #0
beq b3
sec
lda sinx

View File

@ -3183,6 +3183,7 @@ sin16s: {
sta usinx_1+1
//SEG220 [108] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG221 sin16s::@6
@ -3342,6 +3343,7 @@ mul16u: {
sta _1
//SEG253 [127] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG254 mul16u::@7
@ -3504,6 +3506,7 @@ divr16u: {
sta _2
//SEG299 [147] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG300 divr16u::@4
@ -3817,22 +3820,22 @@ Uplift Scope [div32u16u] 4: zp ZP_DWORD:55 [ div32u16u::return#2 ] 4: zp ZP_WORD
Uplift Scope [print_sword] 9.58: zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplift Scope [print_word]
Uplifting [mul16u] best 25047 combination zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:99 [ mul16u::b#0 ] zp ZP_DWORD:101 [ mul16u::return#2 ]
Uplifting [print_str] best 25047 combination zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 24857 combination zp ZP_WORD:44 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:48 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:46 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:116 [ divr16u::return#2 ] zp ZP_WORD:120 [ divr16u::return#3 ]
Uplifting [] best 24857 combination zp ZP_WORD:10 [ print_char_cursor#33 print_char_cursor#46 print_char_cursor#43 print_char_cursor#51 print_char_cursor#48 print_char_cursor#49 print_char_cursor#2 print_char_cursor#12 print_char_cursor#1 ] zp ZP_WORD:130 [ rem16u#1 ]
Uplifting [sin16s] best 24857 combination zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:63 [ sin16s::return#0 ] zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:67 [ sin16s::$6 ] zp ZP_WORD:75 [ sin16s::x2#0 ] zp ZP_WORD:83 [ sin16s::x3_6#0 ] zp ZP_WORD:89 [ sin16s::x4#0 ] zp ZP_WORD:93 [ sin16s::x5#0 ] zp ZP_WORD:95 [ sin16s::x5_128#0 ] zp ZP_WORD:79 [ sin16s::x3#0 ] zp ZP_WORD:97 [ sin16s::usinx#1 ] zp ZP_WORD:71 [ sin16s::x1#0 ] zp ZP_WORD:85 [ sin16s::usinx#0 ] zp ZP_BYTE:22 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 24841 combination zp ZP_WORD:29 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:31 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:73 [ mulu16_sel::return#0 ] zp ZP_WORD:77 [ mulu16_sel::return#1 ] zp ZP_WORD:81 [ mulu16_sel::return#2 ] zp ZP_WORD:87 [ mulu16_sel::return#10 ] zp ZP_WORD:91 [ mulu16_sel::return#11 ] zp ZP_DWORD:105 [ mulu16_sel::$0 ] zp ZP_DWORD:109 [ mulu16_sel::$1 ] zp ZP_WORD:113 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [sin16s_gen] best 24841 combination zp ZP_WORD:65 [ sin16s_gen::$1 ] zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] zp ZP_DWORD:59 [ sin16s_gen::step#0 ]
Uplifting [print_cls] best 24841 combination zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [main] best 24841 combination zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:51 [ main::sw#0 ]
Uplifting [print_byte] best 24829 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_char] best 24817 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
Uplifting [div32u16u] best 24817 combination zp ZP_DWORD:55 [ div32u16u::return#2 ] zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:124 [ div32u16u::return#0 ] zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ]
Uplifting [print_sword] best 24817 combination zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplifting [print_word] best 24817 combination
Uplifting [mul16u] best 25069 combination zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:99 [ mul16u::b#0 ] zp ZP_DWORD:101 [ mul16u::return#2 ]
Uplifting [print_str] best 25069 combination zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 24859 combination zp ZP_WORD:44 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:48 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:46 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:116 [ divr16u::return#2 ] zp ZP_WORD:120 [ divr16u::return#3 ]
Uplifting [] best 24859 combination zp ZP_WORD:10 [ print_char_cursor#33 print_char_cursor#46 print_char_cursor#43 print_char_cursor#51 print_char_cursor#48 print_char_cursor#49 print_char_cursor#2 print_char_cursor#12 print_char_cursor#1 ] zp ZP_WORD:130 [ rem16u#1 ]
Uplifting [sin16s] best 24859 combination zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:63 [ sin16s::return#0 ] zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:67 [ sin16s::$6 ] zp ZP_WORD:75 [ sin16s::x2#0 ] zp ZP_WORD:83 [ sin16s::x3_6#0 ] zp ZP_WORD:89 [ sin16s::x4#0 ] zp ZP_WORD:93 [ sin16s::x5#0 ] zp ZP_WORD:95 [ sin16s::x5_128#0 ] zp ZP_WORD:79 [ sin16s::x3#0 ] zp ZP_WORD:97 [ sin16s::usinx#1 ] zp ZP_WORD:71 [ sin16s::x1#0 ] zp ZP_WORD:85 [ sin16s::usinx#0 ] zp ZP_BYTE:22 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 24843 combination zp ZP_WORD:29 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:31 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:73 [ mulu16_sel::return#0 ] zp ZP_WORD:77 [ mulu16_sel::return#1 ] zp ZP_WORD:81 [ mulu16_sel::return#2 ] zp ZP_WORD:87 [ mulu16_sel::return#10 ] zp ZP_WORD:91 [ mulu16_sel::return#11 ] zp ZP_DWORD:105 [ mulu16_sel::$0 ] zp ZP_DWORD:109 [ mulu16_sel::$1 ] zp ZP_WORD:113 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [sin16s_gen] best 24843 combination zp ZP_WORD:65 [ sin16s_gen::$1 ] zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] zp ZP_DWORD:59 [ sin16s_gen::step#0 ]
Uplifting [print_cls] best 24843 combination zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [main] best 24843 combination zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:51 [ main::sw#0 ]
Uplifting [print_byte] best 24831 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_char] best 24819 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
Uplifting [div32u16u] best 24819 combination zp ZP_DWORD:55 [ div32u16u::return#2 ] zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:124 [ div32u16u::return#0 ] zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ]
Uplifting [print_sword] best 24819 combination zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplifting [print_word] best 24819 combination
Attempting to uplift remaining variables inzp ZP_BYTE:22 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 24817 combination zp ZP_BYTE:22 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 24819 combination zp ZP_BYTE:22 [ sin16s::isUpper#2 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp ZP_WORD:97 [ sin16s::usinx#1 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:29 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] ] with [ zp ZP_WORD:79 [ sin16s::x3#0 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:44 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:130 [ rem16u#1 ] ] - score: 2
@ -4615,6 +4618,7 @@ sin16s: {
sta usinx+1
//SEG220 [108] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG221 sin16s::@6
@ -5422,7 +5426,7 @@ reg byte a [ divr16u::$2 ]
FINAL ASSEMBLER
Score: 20867
Score: 20869
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -6050,6 +6054,7 @@ sin16s: {
sta usinx+1
//SEG220 [108] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b3
//SEG221 sin16s::@6
//SEG222 [109] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 -- vwsz1=_neg_vwsz1

View File

@ -364,6 +364,7 @@ sin16sb: {
adc x5_128+1
sta usinx+1
lda isUpper
cmp #0
beq b3
sec
lda sinx
@ -769,6 +770,7 @@ sin16s: {
adc x5_128+1
sta usinx+1
lda isUpper
cmp #0
beq b3
sec
lda sinx

View File

@ -3953,6 +3953,7 @@ sin16sb: {
sta usinx_1+1
//SEG229 [111] if((byte) sin16sb::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16sb::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG230 sin16sb::@6
@ -4117,6 +4118,7 @@ mul16u: {
sta _1
//SEG262 [130] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG263 mul16u::@7
@ -4280,6 +4282,7 @@ divr16u: {
sta _2
//SEG308 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG309 divr16u::@4
@ -4806,6 +4809,7 @@ sin16s: {
sta usinx_1+1
//SEG428 [213] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG429 sin16s::@6
@ -5188,28 +5192,28 @@ Uplift Scope [print_char] 14: zp ZP_BYTE:12 [ print_char::ch#3 print_char::ch#1
Uplift Scope [print_sword] 9.58: zp ZP_WORD:9 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplift Scope [print_word]
Uplifting [mul16u] best 28090 combination zp ZP_DWORD:37 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:41 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:35 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:111 [ mul16u::b#0 ] zp ZP_DWORD:113 [ mul16u::return#2 ]
Uplifting [print_str] best 28090 combination zp ZP_WORD:7 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 27900 combination zp ZP_WORD:45 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:49 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:47 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:128 [ divr16u::return#2 ] zp ZP_WORD:132 [ divr16u::return#3 ]
Uplifting [] best 27900 combination zp ZP_WORD:13 [ print_char_cursor#33 print_char_cursor#46 print_char_cursor#43 print_char_cursor#51 print_char_cursor#48 print_char_cursor#49 print_char_cursor#2 print_char_cursor#12 print_char_cursor#1 ] zp ZP_WORD:142 [ rem16u#1 ]
Uplifting [mulu16_sel] best 27869 combination zp ZP_WORD:30 [ mulu16_sel::v1#10 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#8 mulu16_sel::v1#9 mulu16_sel::v1#5 mulu16_sel::v1#6 mulu16_sel::v1#7 ] zp ZP_WORD:32 [ mulu16_sel::v2#10 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mulu16_sel::v2#8 mulu16_sel::v2#9 mulu16_sel::v2#5 mulu16_sel::v2#6 ] zp ZP_WORD:85 [ mulu16_sel::return#18 ] zp ZP_WORD:89 [ mulu16_sel::return#19 ] zp ZP_WORD:93 [ mulu16_sel::return#20 ] zp ZP_WORD:99 [ mulu16_sel::return#10 ] zp ZP_WORD:103 [ mulu16_sel::return#11 ] zp ZP_DWORD:117 [ mulu16_sel::$0 ] zp ZP_DWORD:121 [ mulu16_sel::$1 ] zp ZP_WORD:162 [ mulu16_sel::return#0 ] zp ZP_WORD:166 [ mulu16_sel::return#1 ] zp ZP_WORD:170 [ mulu16_sel::return#14 ] zp ZP_WORD:176 [ mulu16_sel::return#15 ] zp ZP_WORD:180 [ mulu16_sel::return#16 ] zp ZP_WORD:125 [ mulu16_sel::return#17 ] reg byte x [ mulu16_sel::select#10 ]
Uplifting [sin16s] best 27869 combination zp ZP_DWORD:61 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:152 [ sin16s::return#0 ] zp ZP_WORD:65 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:156 [ sin16s::$6 ] zp ZP_WORD:164 [ sin16s::x2#0 ] zp ZP_WORD:172 [ sin16s::x3_6#0 ] zp ZP_WORD:178 [ sin16s::x4#0 ] zp ZP_WORD:182 [ sin16s::x5#0 ] zp ZP_WORD:184 [ sin16s::x5_128#0 ] zp ZP_WORD:168 [ sin16s::x3#0 ] zp ZP_WORD:186 [ sin16s::usinx#1 ] zp ZP_WORD:160 [ sin16s::x1#0 ] zp ZP_WORD:174 [ sin16s::usinx#0 ] zp ZP_BYTE:60 [ sin16s::isUpper#2 ]
Uplifting [sin16sb] best 27869 combination zp ZP_WORD:26 [ sin16sb::x#6 sin16sb::x#4 sin16sb::x#0 sin16sb::x#1 sin16sb::x#2 ] zp ZP_WORD:79 [ sin16sb::return#0 ] zp ZP_WORD:28 [ sin16sb::return#1 sin16sb::return#5 sin16sb::sinx#1 ] zp ZP_WORD:87 [ sin16sb::x2#0 ] zp ZP_WORD:95 [ sin16sb::x3_6#0 ] zp ZP_WORD:101 [ sin16sb::x4#0 ] zp ZP_WORD:105 [ sin16sb::x5#0 ] zp ZP_WORD:107 [ sin16sb::x5_128#0 ] zp ZP_WORD:91 [ sin16sb::x3#0 ] zp ZP_WORD:109 [ sin16sb::usinx#1 ] zp ZP_WORD:83 [ sin16sb::x1#0 ] zp ZP_WORD:97 [ sin16sb::usinx#0 ] zp ZP_BYTE:25 [ sin16sb::isUpper#2 ]
Uplifting [sin16s_gen] best 27869 combination zp ZP_WORD:154 [ sin16s_gen::$1 ] zp ZP_WORD:58 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:52 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:56 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] zp ZP_DWORD:148 [ sin16s_gen::step#0 ]
Uplifting [sin16s_genb] best 27869 combination zp ZP_WORD:81 [ sin16s_genb::$2 ] zp ZP_WORD:23 [ sin16s_genb::i#2 sin16s_genb::i#1 ] zp ZP_DWORD:17 [ sin16s_genb::x#2 sin16s_genb::x#1 ] zp ZP_WORD:21 [ sin16s_genb::sintab#2 sin16s_genb::sintab#0 ] zp ZP_DWORD:75 [ sin16s_genb::step#0 ]
Uplifting [main] best 27779 combination reg byte x [ main::i#2 main::i#1 ] zp ZP_WORD:4 [ main::st2#2 main::st2#1 ] zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:67 [ main::sw#0 ]
Uplifting [print_cls] best 27779 combination zp ZP_WORD:15 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_byte] best 27771 combination zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [div32u16u] best 27771 combination zp ZP_DWORD:71 [ div32u16u::return#3 ] zp ZP_WORD:134 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:144 [ div32u16u::return#2 ] zp ZP_DWORD:136 [ div32u16u::return#0 ] zp ZP_WORD:130 [ div32u16u::quotient_hi#0 ]
Uplifting [print_char] best 27759 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
Uplifting [print_sword] best 27759 combination zp ZP_WORD:9 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplifting [print_word] best 27759 combination
Uplifting [mul16u] best 28114 combination zp ZP_DWORD:37 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:41 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:35 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:111 [ mul16u::b#0 ] zp ZP_DWORD:113 [ mul16u::return#2 ]
Uplifting [print_str] best 28114 combination zp ZP_WORD:7 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 27904 combination zp ZP_WORD:45 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:49 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:47 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:128 [ divr16u::return#2 ] zp ZP_WORD:132 [ divr16u::return#3 ]
Uplifting [] best 27904 combination zp ZP_WORD:13 [ print_char_cursor#33 print_char_cursor#46 print_char_cursor#43 print_char_cursor#51 print_char_cursor#48 print_char_cursor#49 print_char_cursor#2 print_char_cursor#12 print_char_cursor#1 ] zp ZP_WORD:142 [ rem16u#1 ]
Uplifting [mulu16_sel] best 27873 combination zp ZP_WORD:30 [ mulu16_sel::v1#10 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#8 mulu16_sel::v1#9 mulu16_sel::v1#5 mulu16_sel::v1#6 mulu16_sel::v1#7 ] zp ZP_WORD:32 [ mulu16_sel::v2#10 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mulu16_sel::v2#8 mulu16_sel::v2#9 mulu16_sel::v2#5 mulu16_sel::v2#6 ] zp ZP_WORD:85 [ mulu16_sel::return#18 ] zp ZP_WORD:89 [ mulu16_sel::return#19 ] zp ZP_WORD:93 [ mulu16_sel::return#20 ] zp ZP_WORD:99 [ mulu16_sel::return#10 ] zp ZP_WORD:103 [ mulu16_sel::return#11 ] zp ZP_DWORD:117 [ mulu16_sel::$0 ] zp ZP_DWORD:121 [ mulu16_sel::$1 ] zp ZP_WORD:162 [ mulu16_sel::return#0 ] zp ZP_WORD:166 [ mulu16_sel::return#1 ] zp ZP_WORD:170 [ mulu16_sel::return#14 ] zp ZP_WORD:176 [ mulu16_sel::return#15 ] zp ZP_WORD:180 [ mulu16_sel::return#16 ] zp ZP_WORD:125 [ mulu16_sel::return#17 ] reg byte x [ mulu16_sel::select#10 ]
Uplifting [sin16s] best 27873 combination zp ZP_DWORD:61 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:152 [ sin16s::return#0 ] zp ZP_WORD:65 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:156 [ sin16s::$6 ] zp ZP_WORD:164 [ sin16s::x2#0 ] zp ZP_WORD:172 [ sin16s::x3_6#0 ] zp ZP_WORD:178 [ sin16s::x4#0 ] zp ZP_WORD:182 [ sin16s::x5#0 ] zp ZP_WORD:184 [ sin16s::x5_128#0 ] zp ZP_WORD:168 [ sin16s::x3#0 ] zp ZP_WORD:186 [ sin16s::usinx#1 ] zp ZP_WORD:160 [ sin16s::x1#0 ] zp ZP_WORD:174 [ sin16s::usinx#0 ] zp ZP_BYTE:60 [ sin16s::isUpper#2 ]
Uplifting [sin16sb] best 27873 combination zp ZP_WORD:26 [ sin16sb::x#6 sin16sb::x#4 sin16sb::x#0 sin16sb::x#1 sin16sb::x#2 ] zp ZP_WORD:79 [ sin16sb::return#0 ] zp ZP_WORD:28 [ sin16sb::return#1 sin16sb::return#5 sin16sb::sinx#1 ] zp ZP_WORD:87 [ sin16sb::x2#0 ] zp ZP_WORD:95 [ sin16sb::x3_6#0 ] zp ZP_WORD:101 [ sin16sb::x4#0 ] zp ZP_WORD:105 [ sin16sb::x5#0 ] zp ZP_WORD:107 [ sin16sb::x5_128#0 ] zp ZP_WORD:91 [ sin16sb::x3#0 ] zp ZP_WORD:109 [ sin16sb::usinx#1 ] zp ZP_WORD:83 [ sin16sb::x1#0 ] zp ZP_WORD:97 [ sin16sb::usinx#0 ] zp ZP_BYTE:25 [ sin16sb::isUpper#2 ]
Uplifting [sin16s_gen] best 27873 combination zp ZP_WORD:154 [ sin16s_gen::$1 ] zp ZP_WORD:58 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:52 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:56 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] zp ZP_DWORD:148 [ sin16s_gen::step#0 ]
Uplifting [sin16s_genb] best 27873 combination zp ZP_WORD:81 [ sin16s_genb::$2 ] zp ZP_WORD:23 [ sin16s_genb::i#2 sin16s_genb::i#1 ] zp ZP_DWORD:17 [ sin16s_genb::x#2 sin16s_genb::x#1 ] zp ZP_WORD:21 [ sin16s_genb::sintab#2 sin16s_genb::sintab#0 ] zp ZP_DWORD:75 [ sin16s_genb::step#0 ]
Uplifting [main] best 27783 combination reg byte x [ main::i#2 main::i#1 ] zp ZP_WORD:4 [ main::st2#2 main::st2#1 ] zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:67 [ main::sw#0 ]
Uplifting [print_cls] best 27783 combination zp ZP_WORD:15 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_byte] best 27775 combination zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [div32u16u] best 27775 combination zp ZP_DWORD:71 [ div32u16u::return#3 ] zp ZP_WORD:134 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:144 [ div32u16u::return#2 ] zp ZP_DWORD:136 [ div32u16u::return#0 ] zp ZP_WORD:130 [ div32u16u::quotient_hi#0 ]
Uplifting [print_char] best 27763 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
Uplifting [print_sword] best 27763 combination zp ZP_WORD:9 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplifting [print_word] best 27763 combination
Attempting to uplift remaining variables inzp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
Uplifting [print_byte] best 27759 combination zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
Uplifting [print_byte] best 27763 combination zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:25 [ sin16sb::isUpper#2 ]
Uplifting [sin16sb] best 27759 combination zp ZP_BYTE:25 [ sin16sb::isUpper#2 ]
Uplifting [sin16sb] best 27763 combination zp ZP_BYTE:25 [ sin16sb::isUpper#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:60 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 27759 combination zp ZP_BYTE:60 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 27763 combination zp ZP_BYTE:60 [ sin16s::isUpper#2 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:28 [ sin16sb::return#1 sin16sb::return#5 sin16sb::sinx#1 ] ] with [ zp ZP_WORD:109 [ sin16sb::usinx#1 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:30 [ mulu16_sel::v1#10 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#8 mulu16_sel::v1#9 mulu16_sel::v1#5 mulu16_sel::v1#6 mulu16_sel::v1#7 ] ] with [ zp ZP_WORD:91 [ sin16sb::x3#0 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:30 [ mulu16_sel::v1#10 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#8 mulu16_sel::v1#9 mulu16_sel::v1#5 mulu16_sel::v1#6 mulu16_sel::v1#7 sin16sb::x3#0 ] ] with [ zp ZP_WORD:168 [ sin16s::x3#0 ] ] - score: 2
@ -6009,6 +6013,7 @@ sin16sb: {
sta usinx+1
//SEG229 [111] if((byte) sin16sb::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16sb::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG230 sin16sb::@6
@ -6727,6 +6732,7 @@ sin16s: {
sta usinx+1
//SEG428 [213] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG429 sin16s::@6
@ -7378,7 +7384,7 @@ reg byte a [ divr16u::$2 ]
FINAL ASSEMBLER
Score: 23127
Score: 23131
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -7992,6 +7998,7 @@ sin16sb: {
sta usinx+1
//SEG229 [111] if((byte) sin16sb::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16sb::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b3
//SEG230 sin16sb::@6
//SEG231 [112] (signed word) sin16sb::sinx#1 ← - (signed word)(word) sin16sb::usinx#1 -- vwsz1=_neg_vwsz1
@ -8620,6 +8627,7 @@ sin16s: {
sta usinx+1
//SEG428 [213] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b3
//SEG429 sin16s::@6
//SEG430 [214] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 -- vwsz1=_neg_vwsz1

View File

@ -277,6 +277,7 @@ sin8s: {
dex
b3:
lda isUpper
cmp #0
beq b18
txa
eor #$ff

View File

@ -2822,6 +2822,7 @@ sin8s: {
b3:
//SEG217 [107] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
jmp b8
//SEG218 sin8s::@8
@ -2948,6 +2949,7 @@ mul8u: {
sta _1
//SEG250 [126] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG251 mul8u::@7
@ -3058,6 +3060,7 @@ divr16u: {
sta _2
//SEG285 [141] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG286 divr16u::@4
@ -3288,53 +3291,53 @@ Uplift Scope [print_byte] 4: zp ZP_BYTE:38 [ print_byte::$0 ] 4: zp ZP_BYTE:39 [
Uplift Scope [print_sbyte] 7.83: zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplift Scope [div16u] 4: zp ZP_WORD:40 [ div16u::return#2 ] 1.33: zp ZP_WORD:72 [ div16u::return#0 ]
Uplifting [mul8u] best 18992 combination zp ZP_WORD:26 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:28 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] reg byte a [ mul8u::b#0 ] zp ZP_WORD:62 [ mul8u::return#2 ]
Uplifting [print_str] best 18992 combination zp ZP_WORD:3 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 18802 combination zp ZP_WORD:30 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:34 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:32 [ divr16u::dividend#2 divr16u::dividend#0 ] zp ZP_WORD:70 [ divr16u::return#2 ]
Uplifting [] best 18802 combination zp ZP_WORD:7 [ print_char_cursor#29 print_char_cursor#47 print_char_cursor#44 print_char_cursor#45 print_char_cursor#2 print_char_cursor#10 print_char_cursor#1 ]
Uplifting [sin8s] best 18697 combination zp ZP_WORD:18 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 ] reg byte a [ sin8s::return#0 ] reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ] reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] zp ZP_WORD:46 [ sin8s::$6 ] zp ZP_BYTE:50 [ sin8s::x2#0 ] zp ZP_BYTE:54 [ sin8s::x3_6#0 ] zp ZP_BYTE:57 [ sin8s::x4#0 ] zp ZP_BYTE:59 [ sin8s::x5#0 ] zp ZP_BYTE:60 [ sin8s::x5_128#0 ] zp ZP_BYTE:52 [ sin8s::x3#0 ] zp ZP_BYTE:48 [ sin8s::x1#0 ] zp ZP_BYTE:55 [ sin8s::usinx#0 ] zp ZP_BYTE:17 [ sin8s::isUpper#10 ]
Uplifting [mul8u] best 19014 combination zp ZP_WORD:26 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:28 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] reg byte a [ mul8u::b#0 ] zp ZP_WORD:62 [ mul8u::return#2 ]
Uplifting [print_str] best 19014 combination zp ZP_WORD:3 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 18804 combination zp ZP_WORD:30 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:34 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:32 [ divr16u::dividend#2 divr16u::dividend#0 ] zp ZP_WORD:70 [ divr16u::return#2 ]
Uplifting [] best 18804 combination zp ZP_WORD:7 [ print_char_cursor#29 print_char_cursor#47 print_char_cursor#44 print_char_cursor#45 print_char_cursor#2 print_char_cursor#10 print_char_cursor#1 ]
Uplifting [sin8s] best 18699 combination zp ZP_WORD:18 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 ] reg byte a [ sin8s::return#0 ] reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ] reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] zp ZP_WORD:46 [ sin8s::$6 ] zp ZP_BYTE:50 [ sin8s::x2#0 ] zp ZP_BYTE:54 [ sin8s::x3_6#0 ] zp ZP_BYTE:57 [ sin8s::x4#0 ] zp ZP_BYTE:59 [ sin8s::x5#0 ] zp ZP_BYTE:60 [ sin8s::x5_128#0 ] zp ZP_BYTE:52 [ sin8s::x3#0 ] zp ZP_BYTE:48 [ sin8s::x1#0 ] zp ZP_BYTE:55 [ sin8s::usinx#0 ] zp ZP_BYTE:17 [ sin8s::isUpper#10 ]
Limited combination testing to 100 combinations of 5308416 possible.
Uplifting [mulu8_sel] best 18651 combination reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] reg byte a [ mulu8_sel::return#0 ] reg byte a [ mulu8_sel::return#1 ] zp ZP_BYTE:53 [ mulu8_sel::return#2 ] zp ZP_BYTE:56 [ mulu8_sel::return#10 ] zp ZP_BYTE:58 [ mulu8_sel::return#11 ] zp ZP_WORD:64 [ mulu8_sel::$0 ] zp ZP_WORD:66 [ mulu8_sel::$1 ] zp ZP_BYTE:68 [ mulu8_sel::return#12 ] zp ZP_BYTE:24 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 18653 combination reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] reg byte a [ mulu8_sel::return#0 ] reg byte a [ mulu8_sel::return#1 ] zp ZP_BYTE:53 [ mulu8_sel::return#2 ] zp ZP_BYTE:56 [ mulu8_sel::return#10 ] zp ZP_BYTE:58 [ mulu8_sel::return#11 ] zp ZP_WORD:64 [ mulu8_sel::$0 ] zp ZP_WORD:66 [ mulu8_sel::$1 ] zp ZP_BYTE:68 [ mulu8_sel::return#12 ] zp ZP_BYTE:24 [ mulu8_sel::select#5 ]
Limited combination testing to 100 combinations of 196608 possible.
Uplifting [sin8s_gen] best 18591 combination reg byte a [ sin8s_gen::$1 ] zp ZP_WORD:15 [ sin8s_gen::i#2 sin8s_gen::i#1 ] zp ZP_WORD:11 [ sin8s_gen::x#2 sin8s_gen::x#1 ] zp ZP_WORD:13 [ sin8s_gen::sintab#2 sin8s_gen::sintab#0 ] zp ZP_WORD:42 [ sin8s_gen::step#0 ]
Uplifting [print_cls] best 18591 combination zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [main] best 18471 combination reg byte x [ main::i#2 main::i#1 ] zp ZP_BYTE:37 [ main::sb#0 ]
Uplifting [print_char] best 18456 combination reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
Uplifting [print_byte] best 18448 combination reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_sbyte] best 18448 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [div16u] best 18448 combination zp ZP_WORD:40 [ div16u::return#2 ] zp ZP_WORD:72 [ div16u::return#0 ]
Uplifting [sin8s_gen] best 18593 combination reg byte a [ sin8s_gen::$1 ] zp ZP_WORD:15 [ sin8s_gen::i#2 sin8s_gen::i#1 ] zp ZP_WORD:11 [ sin8s_gen::x#2 sin8s_gen::x#1 ] zp ZP_WORD:13 [ sin8s_gen::sintab#2 sin8s_gen::sintab#0 ] zp ZP_WORD:42 [ sin8s_gen::step#0 ]
Uplifting [print_cls] best 18593 combination zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [main] best 18473 combination reg byte x [ main::i#2 main::i#1 ] zp ZP_BYTE:37 [ main::sb#0 ]
Uplifting [print_char] best 18458 combination reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
Uplifting [print_byte] best 18450 combination reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_sbyte] best 18450 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [div16u] best 18450 combination zp ZP_WORD:40 [ div16u::return#2 ] zp ZP_WORD:72 [ div16u::return#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [print_sbyte] best 18448 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [print_sbyte] best 18450 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:37 [ main::sb#0 ]
Uplifting [main] best 18448 combination zp ZP_BYTE:37 [ main::sb#0 ]
Uplifting [main] best 18450 combination zp ZP_BYTE:37 [ main::sb#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:50 [ sin8s::x2#0 ]
Uplifting [sin8s] best 18444 combination reg byte a [ sin8s::x2#0 ]
Uplifting [sin8s] best 18446 combination reg byte a [ sin8s::x2#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:53 [ mulu8_sel::return#2 ]
Uplifting [mulu8_sel] best 18438 combination reg byte a [ mulu8_sel::return#2 ]
Uplifting [mulu8_sel] best 18440 combination reg byte a [ mulu8_sel::return#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:54 [ sin8s::x3_6#0 ]
Uplifting [sin8s] best 18434 combination reg byte a [ sin8s::x3_6#0 ]
Uplifting [sin8s] best 18436 combination reg byte a [ sin8s::x3_6#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:56 [ mulu8_sel::return#10 ]
Uplifting [mulu8_sel] best 18428 combination reg byte a [ mulu8_sel::return#10 ]
Uplifting [mulu8_sel] best 18430 combination reg byte a [ mulu8_sel::return#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:57 [ sin8s::x4#0 ]
Uplifting [sin8s] best 18424 combination reg byte a [ sin8s::x4#0 ]
Uplifting [sin8s] best 18426 combination reg byte a [ sin8s::x4#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:58 [ mulu8_sel::return#11 ]
Uplifting [mulu8_sel] best 18418 combination reg byte a [ mulu8_sel::return#11 ]
Uplifting [mulu8_sel] best 18420 combination reg byte a [ mulu8_sel::return#11 ]
Attempting to uplift remaining variables inzp ZP_BYTE:59 [ sin8s::x5#0 ]
Uplifting [sin8s] best 18412 combination reg byte a [ sin8s::x5#0 ]
Uplifting [sin8s] best 18414 combination reg byte a [ sin8s::x5#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:60 [ sin8s::x5_128#0 ]
Uplifting [sin8s] best 18406 combination reg byte a [ sin8s::x5_128#0 ]
Uplifting [sin8s] best 18408 combination reg byte a [ sin8s::x5_128#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:68 [ mulu8_sel::return#12 ]
Uplifting [mulu8_sel] best 18388 combination reg byte a [ mulu8_sel::return#12 ]
Uplifting [mulu8_sel] best 18390 combination reg byte a [ mulu8_sel::return#12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:52 [ sin8s::x3#0 ]
Uplifting [sin8s] best 18388 combination zp ZP_BYTE:52 [ sin8s::x3#0 ]
Uplifting [sin8s] best 18390 combination zp ZP_BYTE:52 [ sin8s::x3#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:48 [ sin8s::x1#0 ]
Uplifting [sin8s] best 18388 combination zp ZP_BYTE:48 [ sin8s::x1#0 ]
Uplifting [sin8s] best 18390 combination zp ZP_BYTE:48 [ sin8s::x1#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:24 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 18388 combination zp ZP_BYTE:24 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 18390 combination zp ZP_BYTE:24 [ mulu8_sel::select#5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:55 [ sin8s::usinx#0 ]
Uplifting [sin8s] best 18388 combination zp ZP_BYTE:55 [ sin8s::usinx#0 ]
Uplifting [sin8s] best 18390 combination zp ZP_BYTE:55 [ sin8s::usinx#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:17 [ sin8s::isUpper#10 ]
Uplifting [sin8s] best 18388 combination zp ZP_BYTE:17 [ sin8s::isUpper#10 ]
Uplifting [sin8s] best 18390 combination zp ZP_BYTE:17 [ sin8s::isUpper#10 ]
Coalescing zero page register with common assignment [ zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] ] with [ zp ZP_BYTE:37 [ main::sb#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:18 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 ] ] with [ zp ZP_WORD:46 [ sin8s::$6 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:26 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] ] with [ zp ZP_WORD:62 [ mul8u::return#2 ] ] - score: 1
@ -3984,6 +3987,7 @@ sin8s: {
b3:
//SEG217 [107] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
jmp b8
//SEG218 sin8s::@8
@ -4714,7 +4718,7 @@ reg byte a [ divr16u::$2 ]
FINAL ASSEMBLER
Score: 15005
Score: 15007
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -5227,6 +5231,7 @@ sin8s: {
b3:
//SEG217 [107] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
//SEG218 sin8s::@8
//SEG219 [108] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4 -- vbsaa=_neg_vbsxx

View File

@ -391,6 +391,7 @@ sin16s: {
adc x5_128+1
sta usinx+1
lda isUpper
cmp #0
beq b3
sec
lda sinx
@ -709,6 +710,7 @@ sin8s: {
dex
b3:
lda isUpper
cmp #0
beq b18
txa
eor #$ff

View File

@ -4305,6 +4305,7 @@ sin16s: {
sta usinx_1+1
//SEG221 [112] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG222 sin16s::@6
@ -4464,6 +4465,7 @@ mul16u: {
sta _1
//SEG254 [131] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG255 mul16u::@7
@ -4627,6 +4629,7 @@ divr16u: {
sta _2
//SEG300 [151] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG301 divr16u::@4
@ -5056,6 +5059,7 @@ sin8s: {
b3:
//SEG426 [217] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
jmp b8
//SEG427 sin8s::@8
@ -5182,6 +5186,7 @@ mul8u: {
sta _1
//SEG459 [236] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG460 mul8u::@7
@ -5596,62 +5601,62 @@ Uplift Scope [print_byte] 4: zp ZP_BYTE:78 [ print_byte::$0 ] 4: zp ZP_BYTE:79 [
Uplift Scope [print_sbyte] 7.83: zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplift Scope [div16u] 4: zp ZP_WORD:157 [ div16u::return#2 ] 1.33: zp ZP_WORD:189 [ div16u::return#0 ]
Uplifting [mul8u] best 35321 combination zp ZP_WORD:63 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:65 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] reg byte a [ mul8u::b#0 ] zp ZP_WORD:179 [ mul8u::return#2 ]
Uplifting [mul16u] best 34921 combination zp ZP_DWORD:33 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:37 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:31 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:124 [ mul16u::b#0 ] zp ZP_DWORD:126 [ mul16u::return#2 ]
Uplifting [print_str] best 34921 combination zp ZP_WORD:3 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 34731 combination zp ZP_WORD:41 [ divr16u::rem#6 divr16u::rem#11 divr16u::rem#5 divr16u::rem#10 divr16u::rem#7 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:45 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:43 [ divr16u::dividend#4 divr16u::dividend#6 divr16u::dividend#0 ] zp ZP_WORD:141 [ divr16u::return#3 ] zp ZP_WORD:145 [ divr16u::return#4 ] zp ZP_WORD:187 [ divr16u::return#2 ]
Uplifting [] best 34731 combination zp ZP_WORD:7 [ print_char_cursor#29 print_char_cursor#47 print_char_cursor#44 print_char_cursor#45 print_char_cursor#2 print_char_cursor#10 print_char_cursor#1 ] zp ZP_WORD:155 [ rem16u#1 ]
Uplifting [main] best 34561 combination zp ZP_WORD:68 [ main::$3 ] zp ZP_WORD:70 [ main::$4 ] zp ZP_WORD:72 [ main::$5 ] zp ZP_WORD:74 [ main::sw#0 ] reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$6 ] zp ZP_BYTE:77 [ main::sd#0 ] zp ZP_BYTE:67 [ main::sb#0 ]
Uplifting [sin8s] best 34456 combination zp ZP_WORD:55 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 ] reg byte a [ sin8s::return#0 ] reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ] reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] zp ZP_WORD:163 [ sin8s::$6 ] zp ZP_BYTE:167 [ sin8s::x2#0 ] zp ZP_BYTE:171 [ sin8s::x3_6#0 ] zp ZP_BYTE:174 [ sin8s::x4#0 ] zp ZP_BYTE:176 [ sin8s::x5#0 ] zp ZP_BYTE:177 [ sin8s::x5_128#0 ] zp ZP_BYTE:169 [ sin8s::x3#0 ] zp ZP_BYTE:165 [ sin8s::x1#0 ] zp ZP_BYTE:172 [ sin8s::usinx#0 ] zp ZP_BYTE:54 [ sin8s::isUpper#10 ]
Uplifting [mul8u] best 35545 combination zp ZP_WORD:63 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:65 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] reg byte a [ mul8u::b#0 ] zp ZP_WORD:179 [ mul8u::return#2 ]
Uplifting [mul16u] best 34945 combination zp ZP_DWORD:33 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:37 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:31 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:124 [ mul16u::b#0 ] zp ZP_DWORD:126 [ mul16u::return#2 ]
Uplifting [print_str] best 34945 combination zp ZP_WORD:3 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
Uplifting [divr16u] best 34735 combination zp ZP_WORD:41 [ divr16u::rem#6 divr16u::rem#11 divr16u::rem#5 divr16u::rem#10 divr16u::rem#7 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:45 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:43 [ divr16u::dividend#4 divr16u::dividend#6 divr16u::dividend#0 ] zp ZP_WORD:141 [ divr16u::return#3 ] zp ZP_WORD:145 [ divr16u::return#4 ] zp ZP_WORD:187 [ divr16u::return#2 ]
Uplifting [] best 34735 combination zp ZP_WORD:7 [ print_char_cursor#29 print_char_cursor#47 print_char_cursor#44 print_char_cursor#45 print_char_cursor#2 print_char_cursor#10 print_char_cursor#1 ] zp ZP_WORD:155 [ rem16u#1 ]
Uplifting [main] best 34565 combination zp ZP_WORD:68 [ main::$3 ] zp ZP_WORD:70 [ main::$4 ] zp ZP_WORD:72 [ main::$5 ] zp ZP_WORD:74 [ main::sw#0 ] reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$6 ] zp ZP_BYTE:77 [ main::sd#0 ] zp ZP_BYTE:67 [ main::sb#0 ]
Uplifting [sin8s] best 34460 combination zp ZP_WORD:55 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 ] reg byte a [ sin8s::return#0 ] reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ] reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] zp ZP_WORD:163 [ sin8s::$6 ] zp ZP_BYTE:167 [ sin8s::x2#0 ] zp ZP_BYTE:171 [ sin8s::x3_6#0 ] zp ZP_BYTE:174 [ sin8s::x4#0 ] zp ZP_BYTE:176 [ sin8s::x5#0 ] zp ZP_BYTE:177 [ sin8s::x5_128#0 ] zp ZP_BYTE:169 [ sin8s::x3#0 ] zp ZP_BYTE:165 [ sin8s::x1#0 ] zp ZP_BYTE:172 [ sin8s::usinx#0 ] zp ZP_BYTE:54 [ sin8s::isUpper#10 ]
Limited combination testing to 100 combinations of 5308416 possible.
Uplifting [sin16s] best 34456 combination zp ZP_DWORD:20 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:88 [ sin16s::return#0 ] zp ZP_WORD:24 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:92 [ sin16s::$6 ] zp ZP_WORD:100 [ sin16s::x2#0 ] zp ZP_WORD:108 [ sin16s::x3_6#0 ] zp ZP_WORD:114 [ sin16s::x4#0 ] zp ZP_WORD:118 [ sin16s::x5#0 ] zp ZP_WORD:120 [ sin16s::x5_128#0 ] zp ZP_WORD:104 [ sin16s::x3#0 ] zp ZP_WORD:122 [ sin16s::usinx#1 ] zp ZP_WORD:96 [ sin16s::x1#0 ] zp ZP_WORD:110 [ sin16s::usinx#0 ] zp ZP_BYTE:19 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 34440 combination zp ZP_WORD:26 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:28 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:98 [ mulu16_sel::return#0 ] zp ZP_WORD:102 [ mulu16_sel::return#1 ] zp ZP_WORD:106 [ mulu16_sel::return#2 ] zp ZP_WORD:112 [ mulu16_sel::return#10 ] zp ZP_WORD:116 [ mulu16_sel::return#11 ] zp ZP_DWORD:130 [ mulu16_sel::$0 ] zp ZP_DWORD:134 [ mulu16_sel::$1 ] zp ZP_WORD:138 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [mulu8_sel] best 34394 combination reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] reg byte a [ mulu8_sel::return#0 ] reg byte a [ mulu8_sel::return#1 ] zp ZP_BYTE:170 [ mulu8_sel::return#2 ] zp ZP_BYTE:173 [ mulu8_sel::return#10 ] zp ZP_BYTE:175 [ mulu8_sel::return#11 ] zp ZP_WORD:181 [ mulu8_sel::$0 ] zp ZP_WORD:183 [ mulu8_sel::$1 ] zp ZP_BYTE:185 [ mulu8_sel::return#12 ] zp ZP_BYTE:61 [ mulu8_sel::select#5 ]
Uplifting [sin16s] best 34460 combination zp ZP_DWORD:20 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:88 [ sin16s::return#0 ] zp ZP_WORD:24 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:92 [ sin16s::$6 ] zp ZP_WORD:100 [ sin16s::x2#0 ] zp ZP_WORD:108 [ sin16s::x3_6#0 ] zp ZP_WORD:114 [ sin16s::x4#0 ] zp ZP_WORD:118 [ sin16s::x5#0 ] zp ZP_WORD:120 [ sin16s::x5_128#0 ] zp ZP_WORD:104 [ sin16s::x3#0 ] zp ZP_WORD:122 [ sin16s::usinx#1 ] zp ZP_WORD:96 [ sin16s::x1#0 ] zp ZP_WORD:110 [ sin16s::usinx#0 ] zp ZP_BYTE:19 [ sin16s::isUpper#2 ]
Uplifting [mulu16_sel] best 34444 combination zp ZP_WORD:26 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] zp ZP_WORD:28 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 ] zp ZP_WORD:98 [ mulu16_sel::return#0 ] zp ZP_WORD:102 [ mulu16_sel::return#1 ] zp ZP_WORD:106 [ mulu16_sel::return#2 ] zp ZP_WORD:112 [ mulu16_sel::return#10 ] zp ZP_WORD:116 [ mulu16_sel::return#11 ] zp ZP_DWORD:130 [ mulu16_sel::$0 ] zp ZP_DWORD:134 [ mulu16_sel::$1 ] zp ZP_WORD:138 [ mulu16_sel::return#12 ] reg byte x [ mulu16_sel::select#5 ]
Uplifting [mulu8_sel] best 34398 combination reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] reg byte a [ mulu8_sel::return#0 ] reg byte a [ mulu8_sel::return#1 ] zp ZP_BYTE:170 [ mulu8_sel::return#2 ] zp ZP_BYTE:173 [ mulu8_sel::return#10 ] zp ZP_BYTE:175 [ mulu8_sel::return#11 ] zp ZP_WORD:181 [ mulu8_sel::$0 ] zp ZP_WORD:183 [ mulu8_sel::$1 ] zp ZP_BYTE:185 [ mulu8_sel::return#12 ] zp ZP_BYTE:61 [ mulu8_sel::select#5 ]
Limited combination testing to 100 combinations of 196608 possible.
Uplifting [sin16s_gen] best 34394 combination zp ZP_WORD:90 [ sin16s_gen::$1 ] zp ZP_WORD:17 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:11 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:15 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] zp ZP_DWORD:84 [ sin16s_gen::step#0 ]
Uplifting [sin8s_gen] best 34334 combination reg byte a [ sin8s_gen::$1 ] zp ZP_WORD:52 [ sin8s_gen::i#2 sin8s_gen::i#1 ] zp ZP_WORD:48 [ sin8s_gen::x#2 sin8s_gen::x#1 ] zp ZP_WORD:50 [ sin8s_gen::sintab#2 sin8s_gen::sintab#0 ] zp ZP_WORD:159 [ sin8s_gen::step#0 ]
Uplifting [print_cls] best 34334 combination zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_char] best 34319 combination reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
Uplifting [div32u16u] best 34319 combination zp ZP_DWORD:80 [ div32u16u::return#2 ] zp ZP_WORD:147 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:149 [ div32u16u::return#0 ] zp ZP_WORD:143 [ div32u16u::quotient_hi#0 ]
Uplifting [print_byte] best 34311 combination reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_sbyte] best 34311 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [div16u] best 34311 combination zp ZP_WORD:157 [ div16u::return#2 ] zp ZP_WORD:189 [ div16u::return#0 ]
Uplifting [sin16s_gen] best 34398 combination zp ZP_WORD:90 [ sin16s_gen::$1 ] zp ZP_WORD:17 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:11 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:15 [ sin16s_gen::sintab#2 sin16s_gen::sintab#0 ] zp ZP_DWORD:84 [ sin16s_gen::step#0 ]
Uplifting [sin8s_gen] best 34338 combination reg byte a [ sin8s_gen::$1 ] zp ZP_WORD:52 [ sin8s_gen::i#2 sin8s_gen::i#1 ] zp ZP_WORD:48 [ sin8s_gen::x#2 sin8s_gen::x#1 ] zp ZP_WORD:50 [ sin8s_gen::sintab#2 sin8s_gen::sintab#0 ] zp ZP_WORD:159 [ sin8s_gen::step#0 ]
Uplifting [print_cls] best 34338 combination zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_char] best 34323 combination reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
Uplifting [div32u16u] best 34323 combination zp ZP_DWORD:80 [ div32u16u::return#2 ] zp ZP_WORD:147 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:149 [ div32u16u::return#0 ] zp ZP_WORD:143 [ div32u16u::quotient_hi#0 ]
Uplifting [print_byte] best 34315 combination reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_sbyte] best 34315 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [div16u] best 34315 combination zp ZP_WORD:157 [ div16u::return#2 ] zp ZP_WORD:189 [ div16u::return#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [print_sbyte] best 34311 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [print_sbyte] best 34315 combination zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:77 [ main::sd#0 ]
Uplifting [main] best 34311 combination zp ZP_BYTE:77 [ main::sd#0 ]
Uplifting [main] best 34315 combination zp ZP_BYTE:77 [ main::sd#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:167 [ sin8s::x2#0 ]
Uplifting [sin8s] best 34307 combination reg byte a [ sin8s::x2#0 ]
Uplifting [sin8s] best 34311 combination reg byte a [ sin8s::x2#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:170 [ mulu8_sel::return#2 ]
Uplifting [mulu8_sel] best 34301 combination reg byte a [ mulu8_sel::return#2 ]
Uplifting [mulu8_sel] best 34305 combination reg byte a [ mulu8_sel::return#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:171 [ sin8s::x3_6#0 ]
Uplifting [sin8s] best 34297 combination reg byte a [ sin8s::x3_6#0 ]
Uplifting [sin8s] best 34301 combination reg byte a [ sin8s::x3_6#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:173 [ mulu8_sel::return#10 ]
Uplifting [mulu8_sel] best 34291 combination reg byte a [ mulu8_sel::return#10 ]
Uplifting [mulu8_sel] best 34295 combination reg byte a [ mulu8_sel::return#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:174 [ sin8s::x4#0 ]
Uplifting [sin8s] best 34287 combination reg byte a [ sin8s::x4#0 ]
Uplifting [sin8s] best 34291 combination reg byte a [ sin8s::x4#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:175 [ mulu8_sel::return#11 ]
Uplifting [mulu8_sel] best 34281 combination reg byte a [ mulu8_sel::return#11 ]
Uplifting [mulu8_sel] best 34285 combination reg byte a [ mulu8_sel::return#11 ]
Attempting to uplift remaining variables inzp ZP_BYTE:176 [ sin8s::x5#0 ]
Uplifting [sin8s] best 34275 combination reg byte a [ sin8s::x5#0 ]
Uplifting [sin8s] best 34279 combination reg byte a [ sin8s::x5#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:177 [ sin8s::x5_128#0 ]
Uplifting [sin8s] best 34269 combination reg byte a [ sin8s::x5_128#0 ]
Uplifting [sin8s] best 34273 combination reg byte a [ sin8s::x5_128#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:67 [ main::sb#0 ]
Uplifting [main] best 34269 combination zp ZP_BYTE:67 [ main::sb#0 ]
Uplifting [main] best 34273 combination zp ZP_BYTE:67 [ main::sb#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:185 [ mulu8_sel::return#12 ]
Uplifting [mulu8_sel] best 34251 combination reg byte a [ mulu8_sel::return#12 ]
Uplifting [mulu8_sel] best 34255 combination reg byte a [ mulu8_sel::return#12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:169 [ sin8s::x3#0 ]
Uplifting [sin8s] best 34251 combination zp ZP_BYTE:169 [ sin8s::x3#0 ]
Uplifting [sin8s] best 34255 combination zp ZP_BYTE:169 [ sin8s::x3#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:165 [ sin8s::x1#0 ]
Uplifting [sin8s] best 34251 combination zp ZP_BYTE:165 [ sin8s::x1#0 ]
Uplifting [sin8s] best 34255 combination zp ZP_BYTE:165 [ sin8s::x1#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:61 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 34251 combination zp ZP_BYTE:61 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 34255 combination zp ZP_BYTE:61 [ mulu8_sel::select#5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:172 [ sin8s::usinx#0 ]
Uplifting [sin8s] best 34251 combination zp ZP_BYTE:172 [ sin8s::usinx#0 ]
Uplifting [sin8s] best 34255 combination zp ZP_BYTE:172 [ sin8s::usinx#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:19 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 34251 combination zp ZP_BYTE:19 [ sin16s::isUpper#2 ]
Uplifting [sin16s] best 34255 combination zp ZP_BYTE:19 [ sin16s::isUpper#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:54 [ sin8s::isUpper#10 ]
Uplifting [sin8s] best 34251 combination zp ZP_BYTE:54 [ sin8s::isUpper#10 ]
Uplifting [sin8s] best 34255 combination zp ZP_BYTE:54 [ sin8s::isUpper#10 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:24 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp ZP_WORD:122 [ sin16s::usinx#1 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:26 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 ] ] with [ zp ZP_WORD:104 [ sin16s::x3#0 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:41 [ divr16u::rem#6 divr16u::rem#11 divr16u::rem#5 divr16u::rem#10 divr16u::rem#7 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:155 [ rem16u#1 ] ] - score: 2
@ -6467,6 +6472,7 @@ sin16s: {
sta usinx+1
//SEG221 [112] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b15
jmp b6
//SEG222 sin16s::@6
@ -7107,6 +7113,7 @@ sin8s: {
b3:
//SEG426 [217] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
jmp b8
//SEG427 sin8s::@8
@ -7987,7 +7994,7 @@ reg byte a [ mul8u::$1 ]
FINAL ASSEMBLER
Score: 28332
Score: 28336
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -8620,6 +8627,7 @@ sin16s: {
sta usinx+1
//SEG221 [112] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b3
//SEG222 sin16s::@6
//SEG223 [113] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 -- vwsz1=_neg_vwsz1
@ -9165,6 +9173,7 @@ sin8s: {
b3:
//SEG426 [217] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
//SEG427 sin8s::@8
//SEG428 [218] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4 -- vbsaa=_neg_vbsxx

View File

@ -443,6 +443,7 @@ sin8s: {
dex
b3:
lda isUpper
cmp #0
beq b18
txa
eor #$ff

View File

@ -4164,6 +4164,7 @@ mul8u: {
sta _1
//SEG295 [133] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG296 mul8u::@7
@ -4446,6 +4447,7 @@ sin8s: {
b3:
//SEG384 [176] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
jmp b8
//SEG385 sin8s::@8
@ -4614,6 +4616,7 @@ divr16u: {
sta _2
//SEG431 [200] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG432 divr16u::@4
@ -4935,59 +4938,59 @@ Uplift Scope [div16u] 4: zp ZP_WORD:46 [ div16u::return#2 ] 1.33: zp ZP_WORD:90
Uplift Scope [print_ln]
Uplift Scope [main]
Uplifting [mul8u] best 24256 combination zp ZP_WORD:25 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:27 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#1 ] zp ZP_WORD:61 [ mul8u::return#2 ] zp ZP_WORD:81 [ mul8u::return#3 ]
Uplifting [] best 24256 combination zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] zp ZP_WORD:16 [ print_char_cursor#94 print_char_cursor#105 print_char_cursor#64 print_char_cursor#100 print_char_cursor#18 print_char_cursor#99 print_char_cursor#2 print_char_cursor#126 print_char_cursor#1 ]
Uplifting [print_str] best 24256 combination zp ZP_WORD:12 [ print_str::str#10 print_str::str#12 print_str::str#0 ]
Uplifting [divr16u] best 24066 combination zp ZP_WORD:37 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:41 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:39 [ divr16u::dividend#2 divr16u::dividend#0 ] zp ZP_WORD:88 [ divr16u::return#2 ]
Uplifting [sin8s] best 23961 combination zp ZP_WORD:30 [ sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 ] reg byte a [ sin8s::return#2 ] reg byte a [ sin8s::return#0 sin8s::return#5 sin8s::sinx#1 ] reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] zp ZP_WORD:66 [ sin8s::$6 ] zp ZP_BYTE:70 [ sin8s::x2#0 ] zp ZP_BYTE:74 [ sin8s::x3_6#0 ] zp ZP_BYTE:77 [ sin8s::x4#0 ] zp ZP_BYTE:79 [ sin8s::x5#0 ] zp ZP_BYTE:80 [ sin8s::x5_128#0 ] zp ZP_BYTE:72 [ sin8s::x3#0 ] zp ZP_BYTE:68 [ sin8s::x1#0 ] zp ZP_BYTE:75 [ sin8s::usinx#0 ] zp ZP_BYTE:29 [ sin8s::isUpper#10 ]
Uplifting [mul8u] best 24278 combination zp ZP_WORD:25 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:27 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#1 ] zp ZP_WORD:61 [ mul8u::return#2 ] zp ZP_WORD:81 [ mul8u::return#3 ]
Uplifting [] best 24278 combination zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] zp ZP_WORD:16 [ print_char_cursor#94 print_char_cursor#105 print_char_cursor#64 print_char_cursor#100 print_char_cursor#18 print_char_cursor#99 print_char_cursor#2 print_char_cursor#126 print_char_cursor#1 ]
Uplifting [print_str] best 24278 combination zp ZP_WORD:12 [ print_str::str#10 print_str::str#12 print_str::str#0 ]
Uplifting [divr16u] best 24068 combination zp ZP_WORD:37 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:41 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:39 [ divr16u::dividend#2 divr16u::dividend#0 ] zp ZP_WORD:88 [ divr16u::return#2 ]
Uplifting [sin8s] best 23963 combination zp ZP_WORD:30 [ sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 ] reg byte a [ sin8s::return#2 ] reg byte a [ sin8s::return#0 sin8s::return#5 sin8s::sinx#1 ] reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] zp ZP_WORD:66 [ sin8s::$6 ] zp ZP_BYTE:70 [ sin8s::x2#0 ] zp ZP_BYTE:74 [ sin8s::x3_6#0 ] zp ZP_BYTE:77 [ sin8s::x4#0 ] zp ZP_BYTE:79 [ sin8s::x5#0 ] zp ZP_BYTE:80 [ sin8s::x5_128#0 ] zp ZP_BYTE:72 [ sin8s::x3#0 ] zp ZP_BYTE:68 [ sin8s::x1#0 ] zp ZP_BYTE:75 [ sin8s::usinx#0 ] zp ZP_BYTE:29 [ sin8s::isUpper#10 ]
Limited combination testing to 100 combinations of 5308416 possible.
Uplifting [mulu8_sel] best 23915 combination reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] reg byte a [ mulu8_sel::return#0 ] reg byte a [ mulu8_sel::return#1 ] zp ZP_BYTE:73 [ mulu8_sel::return#2 ] zp ZP_BYTE:76 [ mulu8_sel::return#10 ] zp ZP_BYTE:78 [ mulu8_sel::return#11 ] zp ZP_WORD:83 [ mulu8_sel::$0 ] zp ZP_WORD:85 [ mulu8_sel::$1 ] zp ZP_BYTE:87 [ mulu8_sel::return#12 ] zp ZP_BYTE:36 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 23917 combination reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ] reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ] reg byte a [ mulu8_sel::return#0 ] reg byte a [ mulu8_sel::return#1 ] zp ZP_BYTE:73 [ mulu8_sel::return#2 ] zp ZP_BYTE:76 [ mulu8_sel::return#10 ] zp ZP_BYTE:78 [ mulu8_sel::return#11 ] zp ZP_WORD:83 [ mulu8_sel::$0 ] zp ZP_WORD:85 [ mulu8_sel::$1 ] zp ZP_BYTE:87 [ mulu8_sel::return#12 ] zp ZP_BYTE:36 [ mulu8_sel::select#5 ]
Limited combination testing to 100 combinations of 196608 possible.
Uplifting [sin8u_table] best 23805 combination reg byte a [ sin8u_table::$21 ] zp ZP_WORD:6 [ sin8u_table::i#10 sin8u_table::i#1 ] zp ZP_WORD:2 [ sin8u_table::x#10 sin8u_table::x#1 ] zp ZP_WORD:4 [ sin8u_table::sintab#2 sin8u_table::sintab#1 ] zp ZP_BYTE:51 [ sin8u_table::sinx#0 ] zp ZP_WORD:55 [ sin8u_table::sinx_sc#0 ] reg byte x [ sin8u_table::sinx_tr#0 ] zp ZP_WORD:48 [ sin8u_table::step#0 ]
Uplifting [print_byte] best 23797 combination zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [mul8su] best 23753 combination zp ZP_WORD:53 [ mul8su::return#2 ] zp ZP_WORD:21 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 ] reg byte a [ mul8su::$6 ] reg byte a [ mul8su::$10 ] reg byte y [ mul8su::a#0 ]
Uplifting [print_word] best 23753 combination zp ZP_WORD:18 [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ]
Uplifting [print_cls] best 23753 combination zp ZP_WORD:44 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_char] best 23735 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ]
Uplifting [print_sword] best 23735 combination zp ZP_WORD:14 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplifting [print_sbyte] best 23735 combination zp ZP_BYTE:20 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [div16u] best 23735 combination zp ZP_WORD:46 [ div16u::return#2 ] zp ZP_WORD:90 [ div16u::return#0 ]
Uplifting [print_ln] best 23735 combination
Uplifting [main] best 23735 combination
Uplifting [sin8u_table] best 23807 combination reg byte a [ sin8u_table::$21 ] zp ZP_WORD:6 [ sin8u_table::i#10 sin8u_table::i#1 ] zp ZP_WORD:2 [ sin8u_table::x#10 sin8u_table::x#1 ] zp ZP_WORD:4 [ sin8u_table::sintab#2 sin8u_table::sintab#1 ] zp ZP_BYTE:51 [ sin8u_table::sinx#0 ] zp ZP_WORD:55 [ sin8u_table::sinx_sc#0 ] reg byte x [ sin8u_table::sinx_tr#0 ] zp ZP_WORD:48 [ sin8u_table::step#0 ]
Uplifting [print_byte] best 23799 combination zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [mul8su] best 23755 combination zp ZP_WORD:53 [ mul8su::return#2 ] zp ZP_WORD:21 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 ] reg byte a [ mul8su::$6 ] reg byte a [ mul8su::$10 ] reg byte y [ mul8su::a#0 ]
Uplifting [print_word] best 23755 combination zp ZP_WORD:18 [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ]
Uplifting [print_cls] best 23755 combination zp ZP_WORD:44 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_char] best 23737 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ]
Uplifting [print_sword] best 23737 combination zp ZP_WORD:14 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ]
Uplifting [print_sbyte] best 23737 combination zp ZP_BYTE:20 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [div16u] best 23737 combination zp ZP_WORD:46 [ div16u::return#2 ] zp ZP_WORD:90 [ div16u::return#0 ]
Uplifting [print_ln] best 23737 combination
Uplifting [main] best 23737 combination
Attempting to uplift remaining variables inzp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ]
Uplifting [print_byte] best 23735 combination zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ]
Uplifting [print_byte] best 23737 combination zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ]
Attempting to uplift remaining variables inzp ZP_BYTE:20 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [print_sbyte] best 23735 combination zp ZP_BYTE:20 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Uplifting [print_sbyte] best 23737 combination zp ZP_BYTE:20 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:70 [ sin8s::x2#0 ]
Uplifting [sin8s] best 23731 combination reg byte a [ sin8s::x2#0 ]
Uplifting [sin8s] best 23733 combination reg byte a [ sin8s::x2#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:73 [ mulu8_sel::return#2 ]
Uplifting [mulu8_sel] best 23725 combination reg byte a [ mulu8_sel::return#2 ]
Uplifting [mulu8_sel] best 23727 combination reg byte a [ mulu8_sel::return#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:74 [ sin8s::x3_6#0 ]
Uplifting [sin8s] best 23721 combination reg byte a [ sin8s::x3_6#0 ]
Uplifting [sin8s] best 23723 combination reg byte a [ sin8s::x3_6#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:76 [ mulu8_sel::return#10 ]
Uplifting [mulu8_sel] best 23715 combination reg byte a [ mulu8_sel::return#10 ]
Uplifting [mulu8_sel] best 23717 combination reg byte a [ mulu8_sel::return#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:77 [ sin8s::x4#0 ]
Uplifting [sin8s] best 23711 combination reg byte a [ sin8s::x4#0 ]
Uplifting [sin8s] best 23713 combination reg byte a [ sin8s::x4#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:78 [ mulu8_sel::return#11 ]
Uplifting [mulu8_sel] best 23705 combination reg byte a [ mulu8_sel::return#11 ]
Uplifting [mulu8_sel] best 23707 combination reg byte a [ mulu8_sel::return#11 ]
Attempting to uplift remaining variables inzp ZP_BYTE:79 [ sin8s::x5#0 ]
Uplifting [sin8s] best 23699 combination reg byte a [ sin8s::x5#0 ]
Uplifting [sin8s] best 23701 combination reg byte a [ sin8s::x5#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:80 [ sin8s::x5_128#0 ]
Uplifting [sin8s] best 23693 combination reg byte a [ sin8s::x5_128#0 ]
Uplifting [sin8s] best 23695 combination reg byte a [ sin8s::x5_128#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:51 [ sin8u_table::sinx#0 ]
Uplifting [sin8u_table] best 23693 combination zp ZP_BYTE:51 [ sin8u_table::sinx#0 ]
Uplifting [sin8u_table] best 23695 combination zp ZP_BYTE:51 [ sin8u_table::sinx#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:87 [ mulu8_sel::return#12 ]
Uplifting [mulu8_sel] best 23675 combination reg byte a [ mulu8_sel::return#12 ]
Uplifting [mulu8_sel] best 23677 combination reg byte a [ mulu8_sel::return#12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:72 [ sin8s::x3#0 ]
Uplifting [sin8s] best 23675 combination zp ZP_BYTE:72 [ sin8s::x3#0 ]
Uplifting [sin8s] best 23677 combination zp ZP_BYTE:72 [ sin8s::x3#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:68 [ sin8s::x1#0 ]
Uplifting [sin8s] best 23675 combination zp ZP_BYTE:68 [ sin8s::x1#0 ]
Uplifting [sin8s] best 23677 combination zp ZP_BYTE:68 [ sin8s::x1#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:36 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 23675 combination zp ZP_BYTE:36 [ mulu8_sel::select#5 ]
Uplifting [mulu8_sel] best 23677 combination zp ZP_BYTE:36 [ mulu8_sel::select#5 ]
Attempting to uplift remaining variables inzp ZP_BYTE:75 [ sin8s::usinx#0 ]
Uplifting [sin8s] best 23675 combination zp ZP_BYTE:75 [ sin8s::usinx#0 ]
Uplifting [sin8s] best 23677 combination zp ZP_BYTE:75 [ sin8s::usinx#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:29 [ sin8s::isUpper#10 ]
Uplifting [sin8s] best 23675 combination zp ZP_BYTE:29 [ sin8s::isUpper#10 ]
Uplifting [sin8s] best 23677 combination zp ZP_BYTE:29 [ sin8s::isUpper#10 ]
Coalescing zero page register with common assignment [ zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ] ] with [ zp ZP_BYTE:20 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:14 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] ] with [ zp ZP_WORD:18 [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 ] ] with [ zp ZP_WORD:53 [ mul8su::return#2 ] ] - score: 1
@ -6066,6 +6069,7 @@ sin8s: {
b3:
//SEG384 [176] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
jmp b8
//SEG385 sin8s::@8
@ -6949,7 +6953,7 @@ reg byte a [ divr16u::$2 ]
FINAL ASSEMBLER
Score: 19478
Score: 19480
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -7799,6 +7803,7 @@ sin8s: {
b3:
//SEG384 [176] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 -- vbuz1_eq_0_then_la1
lda isUpper
cmp #0
beq b18
//SEG385 sin8s::@8
//SEG386 [177] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4 -- vbsaa=_neg_vbsxx

View File

@ -408,6 +408,7 @@ div8s: {
jsr div8u
tay
lda neg
cmp #0
beq b18
txa
eor #$ff

View File

@ -5086,6 +5086,7 @@ divr16s: {
sta resultu+1
//SEG205 [101] if((byte) divr16s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@19 -- vbuz1_eq_0_then_la1
lda neg
cmp #0
beq b19
jmp b11
//SEG206 divr16s::@11
@ -5231,6 +5232,7 @@ divr16u: {
sta _2
//SEG243 [118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
lda _2
cmp #0
beq b2_from_b1
jmp b4
//SEG244 divr16u::@4
@ -5604,6 +5606,7 @@ div8s: {
sta resultu
//SEG378 [182] if((byte) div8s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@18 -- vbuz1_eq_0_then_la1
lda neg
cmp #0
beq b18
jmp b11
//SEG379 div8s::@11
@ -5746,6 +5749,7 @@ divr8u: {
sta _1
//SEG424 [205] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b2_from_b1
jmp b4
//SEG425 divr8u::@4
@ -6569,78 +6573,78 @@ Uplift Scope [print_char] 14: zp ZP_BYTE:10 [ print_char::ch#5 print_char::ch#3
Uplift Scope [print_ln]
Uplift Scope [main]
Uplifting [divr16u] best 43977 combination zp ZP_WORD:28 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:32 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:30 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#2 divr16u::dividend#0 ] zp ZP_WORD:26 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 ] zp ZP_WORD:74 [ divr16u::return#3 ] zp ZP_WORD:113 [ divr16u::return#2 ]
Uplifting [divr8u] best 41774 combination reg byte y [ divr8u::rem#4 divr8u::rem#10 divr8u::rem#5 divr8u::rem#1 divr8u::rem#2 divr8u::rem#3 ] zp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ] reg byte a [ divr8u::$1 ] reg byte x [ divr8u::i#2 divr8u::i#1 ] zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ] zp ZP_BYTE:96 [ divr8u::divisor#0 ] zp ZP_BYTE:97 [ divr8u::return#0 ]
Uplifting [divr16u] best 44181 combination zp ZP_WORD:28 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:32 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:30 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#2 divr16u::dividend#0 ] zp ZP_WORD:26 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 ] zp ZP_WORD:74 [ divr16u::return#3 ] zp ZP_WORD:113 [ divr16u::return#2 ]
Uplifting [divr8u] best 41778 combination reg byte y [ divr8u::rem#4 divr8u::rem#10 divr8u::rem#5 divr8u::rem#1 divr8u::rem#2 divr8u::rem#3 ] zp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ] reg byte a [ divr8u::$1 ] reg byte x [ divr8u::i#2 divr8u::i#1 ] zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ] zp ZP_BYTE:96 [ divr8u::divisor#0 ] zp ZP_BYTE:97 [ divr8u::return#0 ]
Limited combination testing to 100 combinations of 3888 possible.
Uplifting [] best 41707 combination zp ZP_WORD:11 [ print_char_cursor#82 print_char_cursor#136 print_char_cursor#135 print_char_cursor#130 print_char_cursor#131 print_char_cursor#159 print_char_cursor#128 print_char_cursor#18 print_char_cursor#166 print_char_cursor#138 print_char_cursor#132 print_char_cursor#1 print_char_cursor#184 print_char_cursor#188 ] zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] reg byte x [ rem8s#3 rem8s#2 rem8s#33 ] zp ZP_WORD:24 [ rem16s#11 rem16s#2 rem16s#37 ] reg byte x [ rem8u#17 ] zp ZP_WORD:84 [ rem16u#1 ]
Uplifting [print_str] best 41707 combination zp ZP_WORD:13 [ print_str::str#13 print_str::str#15 print_str::str#0 ]
Uplifting [print_byte] best 41699 combination zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_word] best 41699 combination zp ZP_WORD:7 [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ]
Uplifting [print_sword] best 41699 combination zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 ]
Uplifting [print_sbyte] best 41699 combination zp ZP_BYTE:36 [ print_sbyte::b#7 print_sbyte::b#0 print_sbyte::b#10 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 ]
Uplifting [div8u] best 41561 combination reg byte x [ div8u::divisor#2 div8u::divisor#0 div8u::divisor#1 ] reg byte a [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ] reg byte a [ div8u::return#3 ] reg byte a [ div8u::return#2 ] zp ZP_BYTE:98 [ div8u::return#0 ]
Uplifting [] best 41711 combination zp ZP_WORD:11 [ print_char_cursor#82 print_char_cursor#136 print_char_cursor#135 print_char_cursor#130 print_char_cursor#131 print_char_cursor#159 print_char_cursor#128 print_char_cursor#18 print_char_cursor#166 print_char_cursor#138 print_char_cursor#132 print_char_cursor#1 print_char_cursor#184 print_char_cursor#188 ] zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] reg byte x [ rem8s#3 rem8s#2 rem8s#33 ] zp ZP_WORD:24 [ rem16s#11 rem16s#2 rem16s#37 ] reg byte x [ rem8u#17 ] zp ZP_WORD:84 [ rem16u#1 ]
Uplifting [print_str] best 41711 combination zp ZP_WORD:13 [ print_str::str#13 print_str::str#15 print_str::str#0 ]
Uplifting [print_byte] best 41703 combination zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_word] best 41703 combination zp ZP_WORD:7 [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ]
Uplifting [print_sword] best 41703 combination zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 ]
Uplifting [print_sbyte] best 41703 combination zp ZP_BYTE:36 [ print_sbyte::b#7 print_sbyte::b#0 print_sbyte::b#10 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 ]
Uplifting [div8u] best 41565 combination reg byte x [ div8u::divisor#2 div8u::divisor#0 div8u::divisor#1 ] reg byte a [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ] reg byte a [ div8u::return#3 ] reg byte a [ div8u::return#2 ] zp ZP_BYTE:98 [ div8u::return#0 ]
Limited combination testing to 100 combinations of 1024 possible.
Uplifting [div8s] best 41456 combination reg byte a [ div8s::return#3 ] reg byte x [ div8s::divisoru#3 div8s::divisoru#4 div8s::divisoru#5 ] reg byte a [ div8s::return#2 div8s::return#1 div8s::return#7 ] zp ZP_BYTE:37 [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ] zp ZP_BYTE:88 [ div8s::dividend#0 ] zp ZP_BYTE:39 [ div8s::neg#4 div8s::neg#2 div8s::neg#3 ] zp ZP_BYTE:89 [ div8s::divisor#0 ] zp ZP_BYTE:95 [ div8s::$2 ] zp ZP_BYTE:94 [ div8s::$6 ] zp ZP_BYTE:93 [ div8s::resultu#0 ]
Uplifting [div8s] best 41460 combination reg byte a [ div8s::return#3 ] reg byte x [ div8s::divisoru#3 div8s::divisoru#4 div8s::divisoru#5 ] reg byte a [ div8s::return#2 div8s::return#1 div8s::return#7 ] zp ZP_BYTE:37 [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ] zp ZP_BYTE:88 [ div8s::dividend#0 ] zp ZP_BYTE:39 [ div8s::neg#4 div8s::neg#2 div8s::neg#3 ] zp ZP_BYTE:89 [ div8s::divisor#0 ] zp ZP_BYTE:95 [ div8s::$2 ] zp ZP_BYTE:94 [ div8s::$6 ] zp ZP_BYTE:93 [ div8s::resultu#0 ]
Limited combination testing to 100 combinations of 248832 possible.
Uplifting [divr16s] best 41447 combination zp ZP_WORD:19 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 ] zp ZP_WORD:15 [ divr16s::dividendu#3 divr16s::dividendu#7 divr16s::dividendu#8 ] zp ZP_WORD:22 [ divr16s::return#2 divr16s::return#1 divr16s::return#7 ] zp ZP_WORD:70 [ divr16s::return#3 ] reg byte y [ divr16s::neg#4 divr16s::neg#2 divr16s::neg#3 ] zp ZP_WORD:66 [ divr16s::dividend#0 ] zp ZP_WORD:80 [ divr16s::$5 ] zp ZP_WORD:78 [ divr16s::$11 ] zp ZP_WORD:68 [ divr16s::divisor#0 ] zp ZP_WORD:76 [ divr16s::resultu#0 ] zp ZP_WORD:17 [ divr16s::remu#3 ]
Uplifting [div16u] best 41447 combination zp ZP_WORD:109 [ div16u::return#2 ] zp ZP_WORD:105 [ div16u::dividend#0 ] zp ZP_WORD:107 [ div16u::divisor#0 ] zp ZP_WORD:115 [ div16u::return#0 ]
Uplifting [div16s] best 41447 combination zp ZP_WORD:60 [ div16s::return#2 ] zp ZP_WORD:56 [ div16s::dividend#0 ] zp ZP_WORD:58 [ div16s::divisor#0 ] zp ZP_WORD:72 [ div16s::return#0 ]
Uplifting [print_cls] best 41447 combination zp ZP_WORD:50 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [test_16u] best 41447 combination zp ZP_BYTE:48 [ test_16u::i#10 test_16u::i#1 ] zp ZP_WORD:101 [ test_16u::dividend#0 ] zp ZP_WORD:103 [ test_16u::divisor#0 ] zp ZP_WORD:111 [ test_16u::res#0 ]
Uplifting [test_8s] best 41447 combination zp ZP_BYTE:35 [ test_8s::i#10 test_8s::i#1 ] zp ZP_BYTE:86 [ test_8s::dividend#0 ] zp ZP_BYTE:87 [ test_8s::divisor#0 ] zp ZP_BYTE:91 [ test_8s::res#0 ]
Uplifting [test_16s] best 41447 combination zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ] zp ZP_WORD:52 [ test_16s::dividend#0 ] zp ZP_WORD:54 [ test_16s::divisor#0 ] zp ZP_WORD:62 [ test_16s::res#0 ]
Uplifting [test_8u] best 41447 combination zp ZP_BYTE:49 [ test_8u::i#10 test_8u::i#1 ] zp ZP_BYTE:117 [ test_8u::dividend#0 ] zp ZP_BYTE:118 [ test_8u::divisor#0 ] zp ZP_BYTE:120 [ test_8u::res#0 ]
Uplifting [print_char] best 41429 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ]
Uplifting [print_ln] best 41429 combination
Uplifting [main] best 41429 combination
Uplifting [divr16s] best 41449 combination zp ZP_WORD:19 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 ] zp ZP_WORD:15 [ divr16s::dividendu#3 divr16s::dividendu#7 divr16s::dividendu#8 ] zp ZP_WORD:22 [ divr16s::return#2 divr16s::return#1 divr16s::return#7 ] zp ZP_WORD:70 [ divr16s::return#3 ] reg byte y [ divr16s::neg#4 divr16s::neg#2 divr16s::neg#3 ] zp ZP_WORD:66 [ divr16s::dividend#0 ] zp ZP_WORD:80 [ divr16s::$5 ] zp ZP_WORD:78 [ divr16s::$11 ] zp ZP_WORD:68 [ divr16s::divisor#0 ] zp ZP_WORD:76 [ divr16s::resultu#0 ] zp ZP_WORD:17 [ divr16s::remu#3 ]
Uplifting [div16u] best 41449 combination zp ZP_WORD:109 [ div16u::return#2 ] zp ZP_WORD:105 [ div16u::dividend#0 ] zp ZP_WORD:107 [ div16u::divisor#0 ] zp ZP_WORD:115 [ div16u::return#0 ]
Uplifting [div16s] best 41449 combination zp ZP_WORD:60 [ div16s::return#2 ] zp ZP_WORD:56 [ div16s::dividend#0 ] zp ZP_WORD:58 [ div16s::divisor#0 ] zp ZP_WORD:72 [ div16s::return#0 ]
Uplifting [print_cls] best 41449 combination zp ZP_WORD:50 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [test_16u] best 41449 combination zp ZP_BYTE:48 [ test_16u::i#10 test_16u::i#1 ] zp ZP_WORD:101 [ test_16u::dividend#0 ] zp ZP_WORD:103 [ test_16u::divisor#0 ] zp ZP_WORD:111 [ test_16u::res#0 ]
Uplifting [test_8s] best 41449 combination zp ZP_BYTE:35 [ test_8s::i#10 test_8s::i#1 ] zp ZP_BYTE:86 [ test_8s::dividend#0 ] zp ZP_BYTE:87 [ test_8s::divisor#0 ] zp ZP_BYTE:91 [ test_8s::res#0 ]
Uplifting [test_16s] best 41449 combination zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ] zp ZP_WORD:52 [ test_16s::dividend#0 ] zp ZP_WORD:54 [ test_16s::divisor#0 ] zp ZP_WORD:62 [ test_16s::res#0 ]
Uplifting [test_8u] best 41449 combination zp ZP_BYTE:49 [ test_8u::i#10 test_8u::i#1 ] zp ZP_BYTE:117 [ test_8u::dividend#0 ] zp ZP_BYTE:118 [ test_8u::divisor#0 ] zp ZP_BYTE:120 [ test_8u::res#0 ]
Uplifting [print_char] best 41431 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ]
Uplifting [print_ln] best 41431 combination
Uplifting [main] best 41431 combination
Attempting to uplift remaining variables inzp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ]
Uplifting [divr8u] best 41429 combination zp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ]
Uplifting [divr8u] best 41431 combination zp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ]
Uplifting [print_byte] best 41429 combination zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ]
Uplifting [print_byte] best 41431 combination zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:36 [ print_sbyte::b#7 print_sbyte::b#0 print_sbyte::b#10 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 ]
Uplifting [print_sbyte] best 41429 combination zp ZP_BYTE:36 [ print_sbyte::b#7 print_sbyte::b#0 print_sbyte::b#10 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 ]
Uplifting [print_sbyte] best 41431 combination zp ZP_BYTE:36 [ print_sbyte::b#7 print_sbyte::b#0 print_sbyte::b#10 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 ]
Attempting to uplift remaining variables inzp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ]
Uplifting [divr8u] best 41429 combination zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ]
Uplifting [divr8u] best 41431 combination zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ]
Uplifting [test_16s] best 41429 combination zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ]
Uplifting [test_16s] best 41431 combination zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:35 [ test_8s::i#10 test_8s::i#1 ]
Uplifting [test_8s] best 41429 combination zp ZP_BYTE:35 [ test_8s::i#10 test_8s::i#1 ]
Uplifting [test_8s] best 41431 combination zp ZP_BYTE:35 [ test_8s::i#10 test_8s::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:48 [ test_16u::i#10 test_16u::i#1 ]
Uplifting [test_16u] best 41429 combination zp ZP_BYTE:48 [ test_16u::i#10 test_16u::i#1 ]
Uplifting [test_16u] best 41431 combination zp ZP_BYTE:48 [ test_16u::i#10 test_16u::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:49 [ test_8u::i#10 test_8u::i#1 ]
Uplifting [test_8u] best 41429 combination zp ZP_BYTE:49 [ test_8u::i#10 test_8u::i#1 ]
Uplifting [test_8u] best 41431 combination zp ZP_BYTE:49 [ test_8u::i#10 test_8u::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:96 [ divr8u::divisor#0 ]
Uplifting [divr8u] best 41429 combination zp ZP_BYTE:96 [ divr8u::divisor#0 ]
Uplifting [divr8u] best 41431 combination zp ZP_BYTE:96 [ divr8u::divisor#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:37 [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ]
Uplifting [div8s] best 41422 combination reg byte y [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ]
Uplifting [div8s] best 41424 combination reg byte y [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ]
Attempting to uplift remaining variables inzp ZP_BYTE:88 [ div8s::dividend#0 ]
Uplifting [div8s] best 41387 combination reg byte y [ div8s::dividend#0 ]
Uplifting [div8s] best 41389 combination reg byte y [ div8s::dividend#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:86 [ test_8s::dividend#0 ]
Uplifting [test_8s] best 41387 combination zp ZP_BYTE:86 [ test_8s::dividend#0 ]
Uplifting [test_8s] best 41389 combination zp ZP_BYTE:86 [ test_8s::dividend#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:117 [ test_8u::dividend#0 ]
Uplifting [test_8u] best 41387 combination zp ZP_BYTE:117 [ test_8u::dividend#0 ]
Uplifting [test_8u] best 41389 combination zp ZP_BYTE:117 [ test_8u::dividend#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:39 [ div8s::neg#4 div8s::neg#2 div8s::neg#3 ]
Uplifting [div8s] best 41387 combination zp ZP_BYTE:39 [ div8s::neg#4 div8s::neg#2 div8s::neg#3 ]
Uplifting [div8s] best 41389 combination zp ZP_BYTE:39 [ div8s::neg#4 div8s::neg#2 div8s::neg#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:97 [ divr8u::return#0 ]
Uplifting [divr8u] best 41381 combination reg byte a [ divr8u::return#0 ]
Uplifting [divr8u] best 41383 combination reg byte a [ divr8u::return#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:98 [ div8u::return#0 ]
Uplifting [div8u] best 41345 combination reg byte a [ div8u::return#0 ]
Uplifting [div8u] best 41347 combination reg byte a [ div8u::return#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:118 [ test_8u::divisor#0 ]
Uplifting [test_8u] best 41345 combination zp ZP_BYTE:118 [ test_8u::divisor#0 ]
Uplifting [test_8u] best 41347 combination zp ZP_BYTE:118 [ test_8u::divisor#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:87 [ test_8s::divisor#0 ]
Uplifting [test_8s] best 41345 combination zp ZP_BYTE:87 [ test_8s::divisor#0 ]
Uplifting [test_8s] best 41347 combination zp ZP_BYTE:87 [ test_8s::divisor#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:120 [ test_8u::res#0 ]
Uplifting [test_8u] best 41345 combination zp ZP_BYTE:120 [ test_8u::res#0 ]
Uplifting [test_8u] best 41347 combination zp ZP_BYTE:120 [ test_8u::res#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:91 [ test_8s::res#0 ]
Uplifting [test_8s] best 41345 combination zp ZP_BYTE:91 [ test_8s::res#0 ]
Uplifting [test_8s] best 41347 combination zp ZP_BYTE:91 [ test_8s::res#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:89 [ div8s::divisor#0 ]
Uplifting [div8s] best 41310 combination reg byte x [ div8s::divisor#0 ]
Uplifting [div8s] best 41312 combination reg byte x [ div8s::divisor#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:95 [ div8s::$2 ]
Uplifting [div8s] best 41306 combination reg byte a [ div8s::$2 ]
Uplifting [div8s] best 41308 combination reg byte a [ div8s::$2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:94 [ div8s::$6 ]
Uplifting [div8s] best 41302 combination reg byte x [ div8s::$6 ]
Uplifting [div8s] best 41304 combination reg byte x [ div8s::$6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:93 [ div8s::resultu#0 ]
Uplifting [div8s] best 41299 combination reg byte y [ div8s::resultu#0 ]
Uplifting [div8s] best 41301 combination reg byte y [ div8s::resultu#0 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:22 [ divr16s::return#2 divr16s::return#1 divr16s::return#7 ] ] with [ zp ZP_WORD:76 [ divr16s::resultu#0 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:24 [ rem16s#11 rem16s#2 rem16s#37 ] ] with [ zp ZP_WORD:84 [ rem16u#1 ] ] - score: 2
Coalescing zero page register with common assignment [ zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 ] ] with [ zp ZP_WORD:7 [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ] ] - score: 1
@ -7719,6 +7723,7 @@ div8s: {
tay
//SEG378 [182] if((byte) div8s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@18 -- vbuz1_eq_0_then_la1
lda neg
cmp #0
beq b18
jmp b11
//SEG379 div8s::@11
@ -9147,7 +9152,7 @@ reg byte a [ div8u::return#3 ]
FINAL ASSEMBLER
Score: 32565
Score: 32567
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -9965,6 +9970,7 @@ div8s: {
tay
//SEG378 [182] if((byte) div8s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@18 -- vbuz1_eq_0_then_la1
lda neg
cmp #0
beq b18
//SEG379 div8s::@11
//SEG380 [183] (signed byte) rem8s#2 ← - (signed byte)(byte) rem8u#17 -- vbsxx=_neg_vbsxx

View File

@ -1399,6 +1399,7 @@ main: {
sta _15
//SEG77 [38] if((byte~) main::$15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 -- vbuz1_eq_0_then_la1
lda _15
cmp #0
beq b11_from_b30
jmp b23
//SEG78 main::@23
@ -1622,15 +1623,15 @@ Uplift Scope [keyboard_key_pressed] 202: zp ZP_BYTE:20 [ keyboard_key_pressed::r
Uplift Scope [keyboard_init]
Uplift Scope []
Uplifting [main] best 80058 combination reg byte y [ main::col#2 main::col#1 ] reg byte a [ main::$5 ] reg byte x [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] reg byte x [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ] zp ZP_WORD:5 [ main::screen#13 main::screen#1 ] zp ZP_BYTE:21 [ main::$15 ] zp ZP_BYTE:9 [ main::ch#2 main::ch#1 ] zp ZP_BYTE:4 [ main::row#2 main::row#1 ] zp ZP_BYTE:18 [ main::key#0 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_WORD:14 [ main::screen#2 ]
Uplifting [main] best 80258 combination reg byte y [ main::col#2 main::col#1 ] reg byte a [ main::$5 ] reg byte x [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] reg byte x [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ] zp ZP_WORD:5 [ main::screen#13 main::screen#1 ] zp ZP_BYTE:21 [ main::$15 ] zp ZP_BYTE:9 [ main::ch#2 main::ch#1 ] zp ZP_BYTE:4 [ main::row#2 main::row#1 ] zp ZP_BYTE:18 [ main::key#0 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_WORD:14 [ main::screen#2 ]
Limited combination testing to 100 combinations of 15552 possible.
Uplifting [keyboard_matrix_read] best 79040 combination reg byte y [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0 keyboard_matrix_read::rowid#1 ] reg byte a [ keyboard_matrix_read::return#3 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ]
Uplifting [keyboard_matrix_read] best 79240 combination reg byte y [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0 keyboard_matrix_read::rowid#1 ] reg byte a [ keyboard_matrix_read::return#3 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ]
Limited combination testing to 100 combinations of 256 possible.
Uplifting [keyboard_get_keycode] best 77834 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte y [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ]
Uplifting [keyboard_key_pressed] best 76625 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte y [ keyboard_key_pressed::key#0 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:25 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
Uplifting [keyboard_get_keycode] best 78034 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte y [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ]
Uplifting [keyboard_key_pressed] best 76825 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte y [ keyboard_key_pressed::key#0 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:25 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
Limited combination testing to 100 combinations of 2304 possible.
Uplifting [keyboard_init] best 76625 combination
Uplifting [] best 76625 combination
Uplifting [keyboard_init] best 76825 combination
Uplifting [] best 76825 combination
Attempting to uplift remaining variables inzp ZP_BYTE:21 [ main::$15 ]
Uplifting [main] best 76225 combination reg byte a [ main::$15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:9 [ main::ch#2 main::ch#1 ]

View File

@ -6039,6 +6039,7 @@ mul16u: {
sta _1
//SEG373 [182] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG374 mul16u::@7
@ -7551,7 +7552,7 @@ Uplift Scope [mul16s_error] 0.57: zp ZP_WORD:126 [ mul16s_error::a#0 ] 0.4: zp Z
Uplift Scope [print_ln]
Uplift Scope [main]
Uplifting [muls16s] best 556455 combination zp ZP_DWORD:55 [ muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 ] zp ZP_WORD:53 [ muls16s::j#2 muls16s::j#1 ] zp ZP_WORD:59 [ muls16s::i#2 muls16s::i#1 ] zp ZP_DWORD:94 [ muls16s::return#2 ] zp ZP_WORD:92 [ muls16s::b#0 ] zp ZP_WORD:90 [ muls16s::a#0 ]
Uplifting [muls16s] best 558455 combination zp ZP_DWORD:55 [ muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 ] zp ZP_WORD:53 [ muls16s::j#2 muls16s::j#1 ] zp ZP_WORD:59 [ muls16s::i#2 muls16s::i#1 ] zp ZP_DWORD:94 [ muls16s::return#2 ] zp ZP_WORD:92 [ muls16s::b#0 ] zp ZP_WORD:90 [ muls16s::a#0 ]
Uplifting [mul16u] best 552455 combination zp ZP_DWORD:45 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:49 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:43 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:41 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 ] zp ZP_DWORD:193 [ mul16u::return#3 ] zp ZP_DWORD:164 [ mul16u::return#2 ]
Uplifting [muls16u] best 552455 combination zp ZP_DWORD:70 [ muls16u::return#0 muls16u::m#3 muls16u::m#1 ] zp ZP_WORD:68 [ muls16u::i#2 muls16u::i#1 ] zp ZP_DWORD:185 [ muls16u::return#2 ] zp ZP_WORD:183 [ muls16u::b#0 ] zp ZP_WORD:181 [ muls16u::a#0 ]
Uplifting [mul16u_compare] best 550555 combination zp ZP_WORD:62 [ mul16u_compare::a#2 mul16u_compare::a#6 mul16u_compare::a#1 ] reg byte x [ mul16u_compare::ok#3 mul16u_compare::ok#4 ] reg byte y [ mul16u_compare::j#10 mul16u_compare::j#1 ] zp ZP_WORD:64 [ mul16u_compare::b#2 mul16u_compare::b#6 mul16u_compare::b#1 ] zp ZP_BYTE:61 [ mul16u_compare::i#12 mul16u_compare::i#1 ] zp ZP_DWORD:205 [ mul16u_compare::mf#0 ] zp ZP_DWORD:189 [ mul16u_compare::ms#0 ] zp ZP_DWORD:197 [ mul16u_compare::mn#0 ]

View File

@ -567,6 +567,7 @@ muls8u: {
.label m = 8
.label a = 2
lda a
cmp #0
beq b3
ldy #0
tya

View File

@ -5820,6 +5820,7 @@ mul8u: {
sta _1
//SEG313 [153] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 -- vbuz1_eq_0_then_la1
lda _1
cmp #0
beq b4_from_b2
jmp b7
//SEG314 mul8u::@7
@ -6609,6 +6610,7 @@ muls8u: {
.label return_2 = $6e
//SEG568 [273] if((byte) muls8u::a#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto muls8u::@1 -- vbuz1_eq_0_then_la1
lda a
cmp #0
beq b1_from_muls8u
//SEG569 [274] phi from muls8u to muls8u::@2 [phi:muls8u->muls8u::@2]
b2_from_muls8u:
@ -7525,65 +7527,65 @@ Uplift Scope [print_ln]
Uplift Scope [main]
Uplift Scope [mulf_init_asm]
Uplifting [muls8s] best 313456 combination zp ZP_WORD:31 [ muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 ] reg byte y [ muls8s::j#2 muls8s::j#1 ] reg byte y [ muls8s::i#2 muls8s::i#1 ] zp ZP_WORD:62 [ muls8s::return#2 ] reg byte x [ muls8s::b#0 ] zp ZP_BYTE:60 [ muls8s::a#0 ]
Uplifting [mul8u] best 307847 combination zp ZP_WORD:22 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:24 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] zp ZP_WORD:120 [ mul8u::return#3 ] zp ZP_WORD:88 [ mul8u::return#2 ]
Uplifting [muls8u] best 297547 combination zp ZP_WORD:38 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] reg byte y [ muls8u::i#2 muls8u::i#1 ] zp ZP_WORD:110 [ muls8u::return#2 ] reg byte x [ muls8u::b#0 ] zp ZP_BYTE:108 [ muls8u::a#0 ]
Uplifting [mul8u_compare] best 296547 combination reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ] zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ] zp ZP_WORD:122 [ mul8u_compare::mn#0 ] zp ZP_WORD:112 [ mul8u_compare::ms#0 ] zp ZP_WORD:118 [ mul8u_compare::mf#0 ]
Uplifting [mul8s_compare] best 295547 combination reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] zp ZP_WORD:76 [ mul8s_compare::mn#0 ] zp ZP_WORD:64 [ mul8s_compare::ms#0 ] zp ZP_WORD:70 [ mul8s_compare::mf#0 ]
Uplifting [mulf8u] best 294941 combination zp ZP_WORD:116 [ mulf8u::return#2 ] reg byte a [ mulf8u::a#0 ] reg byte x [ mulf8u::b#0 ] zp ZP_WORD:134 [ mulf8u::return#0 ]
Uplifting [mulf8s] best 294335 combination zp ZP_WORD:68 [ mulf8s::return#2 ] zp ZP_WORD:98 [ mulf8s::return#0 ] reg byte a [ mulf8s::a#0 ] reg byte x [ mulf8s::b#0 ]
Uplifting [mulf_init] best 294105 combination zp ZP_WORD:50 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:53 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:45 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:55 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:47 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
Uplifting [muls8s] best 315458 combination zp ZP_WORD:31 [ muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 ] reg byte y [ muls8s::j#2 muls8s::j#1 ] reg byte y [ muls8s::i#2 muls8s::i#1 ] zp ZP_WORD:62 [ muls8s::return#2 ] reg byte x [ muls8s::b#0 ] zp ZP_BYTE:60 [ muls8s::a#0 ]
Uplifting [mul8u] best 307849 combination zp ZP_WORD:22 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:24 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] zp ZP_WORD:120 [ mul8u::return#3 ] zp ZP_WORD:88 [ mul8u::return#2 ]
Uplifting [muls8u] best 297549 combination zp ZP_WORD:38 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] reg byte y [ muls8u::i#2 muls8u::i#1 ] zp ZP_WORD:110 [ muls8u::return#2 ] reg byte x [ muls8u::b#0 ] zp ZP_BYTE:108 [ muls8u::a#0 ]
Uplifting [mul8u_compare] best 296549 combination reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ] zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ] zp ZP_WORD:122 [ mul8u_compare::mn#0 ] zp ZP_WORD:112 [ mul8u_compare::ms#0 ] zp ZP_WORD:118 [ mul8u_compare::mf#0 ]
Uplifting [mul8s_compare] best 295549 combination reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] zp ZP_WORD:76 [ mul8s_compare::mn#0 ] zp ZP_WORD:64 [ mul8s_compare::ms#0 ] zp ZP_WORD:70 [ mul8s_compare::mf#0 ]
Uplifting [mulf8u] best 294943 combination zp ZP_WORD:116 [ mulf8u::return#2 ] reg byte a [ mulf8u::a#0 ] reg byte x [ mulf8u::b#0 ] zp ZP_WORD:134 [ mulf8u::return#0 ]
Uplifting [mulf8s] best 294337 combination zp ZP_WORD:68 [ mulf8s::return#2 ] zp ZP_WORD:98 [ mulf8s::return#0 ] reg byte a [ mulf8s::a#0 ] reg byte x [ mulf8s::b#0 ]
Uplifting [mulf_init] best 294107 combination zp ZP_WORD:50 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:53 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:45 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:55 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:47 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
Limited combination testing to 100 combinations of 1024 possible.
Uplifting [mul8s] best 293792 combination zp ZP_WORD:74 [ mul8s::return#2 ] zp ZP_WORD:18 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte y [ mul8s::b#0 ] zp ZP_BYTE:72 [ mul8s::a#0 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$16 ] zp ZP_BYTE:92 [ mul8s::$12 ] zp ZP_BYTE:93 [ mul8s::$17 ]
Uplifting [mul8s] best 293794 combination zp ZP_WORD:74 [ mul8s::return#2 ] zp ZP_WORD:18 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte y [ mul8s::b#0 ] zp ZP_BYTE:72 [ mul8s::a#0 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$16 ] zp ZP_BYTE:92 [ mul8s::$12 ] zp ZP_BYTE:93 [ mul8s::$17 ]
Limited combination testing to 100 combinations of 2304 possible.
Uplifting [] best 293792 combination zp ZP_WORD:15 [ print_char_cursor#84 print_char_cursor#140 print_char_cursor#139 print_char_cursor#134 print_char_cursor#152 print_char_cursor#192 print_char_cursor#193 print_char_cursor#133 print_char_cursor#132 print_char_cursor#18 print_char_cursor#31 print_char_cursor#1 print_char_cursor#225 ] zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ]
Uplifting [mulf_tables_cmp] best 293792 combination zp ZP_WORD:40 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp ZP_WORD:42 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ]
Uplifting [print_str] best 293792 combination zp ZP_WORD:7 [ print_str::str#16 print_str::str#18 print_str::str#0 ]
Uplifting [mulf8s_prepared] best 293768 combination zp ZP_WORD:26 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] zp ZP_WORD:96 [ mulf8s_prepared::return#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$16 ] zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ]
Uplifting [] best 293794 combination zp ZP_WORD:15 [ print_char_cursor#84 print_char_cursor#140 print_char_cursor#139 print_char_cursor#134 print_char_cursor#152 print_char_cursor#192 print_char_cursor#193 print_char_cursor#133 print_char_cursor#132 print_char_cursor#18 print_char_cursor#31 print_char_cursor#1 print_char_cursor#225 ] zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ]
Uplifting [mulf_tables_cmp] best 293794 combination zp ZP_WORD:40 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp ZP_WORD:42 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ]
Uplifting [print_str] best 293794 combination zp ZP_WORD:7 [ print_str::str#16 print_str::str#18 print_str::str#0 ]
Uplifting [mulf8s_prepared] best 293770 combination zp ZP_WORD:26 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] zp ZP_WORD:96 [ mulf8s_prepared::return#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$16 ] zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ]
Limited combination testing to 100 combinations of 512 possible.
Uplifting [print_cls] best 293768 combination zp ZP_WORD:58 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_byte] best 293747 combination reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_word] best 293747 combination zp ZP_WORD:11 [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ]
Uplifting [mulf8u_prepared] best 293738 combination reg byte x [ mulf8u_prepared::b#2 mulf8u_prepared::b#3 mulf8u_prepared::b#0 ] zp ZP_WORD:100 [ mulf8u_prepared::return#3 ] zp ZP_WORD:132 [ mulf8u_prepared::return#2 ] zp ZP_WORD:106 [ mulf8u_prepared::return#0 ]
Uplifting [print_sword] best 293738 combination zp ZP_WORD:9 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 ]
Uplifting [print_sbyte] best 293726 combination reg byte x [ print_sbyte::b#5 print_sbyte::b#0 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 ]
Uplifting [print_char] best 293708 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ]
Uplifting [mulf8u_prepare] best 293699 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#0 ]
Uplifting [mul8u_error] best 293693 combination reg byte x [ mul8u_error::a#0 ] zp ZP_BYTE:125 [ mul8u_error::b#0 ] zp ZP_WORD:126 [ mul8u_error::ms#0 ] zp ZP_WORD:128 [ mul8u_error::mn#0 ] zp ZP_WORD:130 [ mul8u_error::mf#0 ]
Uplifting [mul8s_error] best 293687 combination reg byte x [ mul8s_error::a#0 ] zp ZP_BYTE:79 [ mul8s_error::b#0 ] zp ZP_WORD:80 [ mul8s_error::ms#0 ] zp ZP_WORD:82 [ mul8s_error::mn#0 ] zp ZP_WORD:84 [ mul8s_error::mf#0 ]
Uplifting [print_ln] best 293687 combination
Uplifting [main] best 293687 combination
Uplifting [mulf_init_asm] best 293687 combination
Uplifting [print_cls] best 293770 combination zp ZP_WORD:58 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_byte] best 293749 combination reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_word] best 293749 combination zp ZP_WORD:11 [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ]
Uplifting [mulf8u_prepared] best 293740 combination reg byte x [ mulf8u_prepared::b#2 mulf8u_prepared::b#3 mulf8u_prepared::b#0 ] zp ZP_WORD:100 [ mulf8u_prepared::return#3 ] zp ZP_WORD:132 [ mulf8u_prepared::return#2 ] zp ZP_WORD:106 [ mulf8u_prepared::return#0 ]
Uplifting [print_sword] best 293740 combination zp ZP_WORD:9 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 ]
Uplifting [print_sbyte] best 293728 combination reg byte x [ print_sbyte::b#5 print_sbyte::b#0 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 ]
Uplifting [print_char] best 293710 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ]
Uplifting [mulf8u_prepare] best 293701 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#0 ]
Uplifting [mul8u_error] best 293695 combination reg byte x [ mul8u_error::a#0 ] zp ZP_BYTE:125 [ mul8u_error::b#0 ] zp ZP_WORD:126 [ mul8u_error::ms#0 ] zp ZP_WORD:128 [ mul8u_error::mn#0 ] zp ZP_WORD:130 [ mul8u_error::mf#0 ]
Uplifting [mul8s_error] best 293689 combination reg byte x [ mul8s_error::a#0 ] zp ZP_BYTE:79 [ mul8s_error::b#0 ] zp ZP_WORD:80 [ mul8s_error::ms#0 ] zp ZP_WORD:82 [ mul8s_error::mn#0 ] zp ZP_WORD:84 [ mul8s_error::mf#0 ]
Uplifting [print_ln] best 293689 combination
Uplifting [main] best 293689 combination
Uplifting [mulf_init_asm] best 293689 combination
Attempting to uplift remaining variables inzp ZP_BYTE:60 [ muls8s::a#0 ]
Uplifting [muls8s] best 293687 combination zp ZP_BYTE:60 [ muls8s::a#0 ]
Uplifting [muls8s] best 293689 combination zp ZP_BYTE:60 [ muls8s::a#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
Uplifting [mul8s_compare] best 293687 combination zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
Uplifting [mul8s_compare] best 293689 combination zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
Uplifting [mul8u_compare] best 293687 combination zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
Uplifting [mul8u_compare] best 293689 combination zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:108 [ muls8u::a#0 ]
Uplifting [muls8u] best 293687 combination zp ZP_BYTE:108 [ muls8u::a#0 ]
Uplifting [muls8u] best 293689 combination zp ZP_BYTE:108 [ muls8u::a#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ]
Uplifting [mul8s_compare] best 293687 combination zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ]
Uplifting [mul8s_compare] best 293689 combination zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
Uplifting [mul8u_compare] best 293687 combination zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
Uplifting [mul8u_compare] best 293689 combination zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
Uplifting [mulf_init] best 293687 combination zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
Uplifting [mulf_init] best 293689 combination zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
Uplifting [mulf_init] best 293567 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
Uplifting [mulf_init] best 293569 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ]
Uplifting [mulf_init] best 293567 combination zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ]
Uplifting [mulf_init] best 293569 combination zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:72 [ mul8s::a#0 ]
Uplifting [mul8s] best 293567 combination zp ZP_BYTE:72 [ mul8s::a#0 ]
Uplifting [mul8s] best 293569 combination zp ZP_BYTE:72 [ mul8s::a#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:92 [ mul8s::$12 ]
Uplifting [mul8s] best 293561 combination reg byte a [ mul8s::$12 ]
Uplifting [mul8s] best 293563 combination reg byte a [ mul8s::$12 ]
Attempting to uplift remaining variables inzp ZP_BYTE:93 [ mul8s::$17 ]
Uplifting [mul8s] best 293555 combination reg byte a [ mul8s::$17 ]
Uplifting [mul8s] best 293557 combination reg byte a [ mul8s::$17 ]
Attempting to uplift remaining variables inzp ZP_BYTE:79 [ mul8s_error::b#0 ]
Uplifting [mul8s_error] best 293555 combination zp ZP_BYTE:79 [ mul8s_error::b#0 ]
Uplifting [mul8s_error] best 293557 combination zp ZP_BYTE:79 [ mul8s_error::b#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:95 [ mulf8s_prepared::b#0 ]
Uplifting [mulf8s_prepared] best 293555 combination zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ]
Uplifting [mulf8s_prepared] best 293557 combination zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:125 [ mul8u_error::b#0 ]
Uplifting [mul8u_error] best 293555 combination zp ZP_BYTE:125 [ mul8u_error::b#0 ]
Uplifting [mul8u_error] best 293557 combination zp ZP_BYTE:125 [ mul8u_error::b#0 ]
Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] ] with [ zp ZP_BYTE:60 [ muls8s::a#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 muls8s::a#0 ] ] with [ zp ZP_BYTE:72 [ mul8s::a#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] ] with [ zp ZP_BYTE:79 [ mul8s_error::b#0 ] ] - score: 1
@ -9140,6 +9142,7 @@ muls8u: {
.label a = 2
//SEG568 [273] if((byte) muls8u::a#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto muls8u::@1 -- vbuz1_eq_0_then_la1
lda a
cmp #0
beq b1_from_muls8u
//SEG569 [274] phi from muls8u to muls8u::@2 [phi:muls8u->muls8u::@2]
b2_from_muls8u:
@ -10640,7 +10643,7 @@ reg byte a [ mulf_init::$6 ]
FINAL ASSEMBLER
Score: 224678
Score: 224680
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -11820,6 +11823,7 @@ muls8u: {
.label a = 2
//SEG568 [273] if((byte) muls8u::a#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto muls8u::@1 -- vbuz1_eq_0_then_la1
lda a
cmp #0
beq b3
//SEG569 [274] phi from muls8u to muls8u::@2 [phi:muls8u->muls8u::@2]
//SEG570 [274] phi (byte) muls8u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:muls8u->muls8u::@2#0] -- vbuyy=vbuc1