From 0ad7984fe28fbce6dcfd5e2bf2ca2644a55159d7 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Tue, 3 Apr 2018 19:49:06 +0200 Subject: [PATCH] Added form field max values --- .../kickc/test/kc/c64dtv-gfxexplorer.kc | 11 +- .../kickc/test/ref/c64dtv-gfxexplorer.asm | 137 +- .../kickc/test/ref/c64dtv-gfxexplorer.cfg | 122 +- .../kickc/test/ref/c64dtv-gfxexplorer.log | 3417 +++++++++-------- .../kickc/test/ref/c64dtv-gfxexplorer.sym | 120 +- 5 files changed, 1981 insertions(+), 1826 deletions(-) diff --git a/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc b/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc index e442b9a85..2935d23ce 100644 --- a/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc +++ b/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc @@ -74,6 +74,8 @@ byte form_fields_cnt = 9; // Form fields x/y-positions byte[] form_fields_x = { 7, 7, 7, 7, 7, 7, 7, 17, 17 }; byte[] form_fields_y = { 2, 3, 4, 5, 6, 7, 8, 7, 8 }; +// Form field max values (all values are in the interval 0 .. max-1) +byte[] form_fields_max = { 1, 1, 1, 1, 1, 2, 1, 1, 1 }; // Form fields values byte[] form_fields_val = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -157,17 +159,20 @@ void form_control() { } // Change value with cursor left/right - // Navigation using cursor up/down byte key_right = keyboard_key_pressed(KEY_CRSR_RIGHT); if(key_right!=key_right_debounce) { key_right_debounce = key_right; if(key_right!=0) { if(keyboard_key_pressed(KEY_RSHIFT)==0) { // Increase value - form_fields_val[form_field_idx] = (form_fields_val[form_field_idx]+1) & $f; + if(++form_fields_val[form_field_idx]>form_fields_max[form_field_idx]) { + form_fields_val[form_field_idx] = 0; + } } else { // Decrease value - form_fields_val[form_field_idx] = (form_fields_val[form_field_idx]-1) & $f; + if(--form_fields_val[form_field_idx]==$ff) { + form_fields_val[form_field_idx] = form_fields_max[form_field_idx]; + } } // Render field value *field = print_hextab[form_fields_val[form_field_idx]]; diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm index 9dd288e56..db86899c2 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm @@ -32,7 +32,8 @@ .label print_char_cursor = 8 .label form_cursor_count = 2 .label key_down_debounce = 3 - .label key_right_debounce = 4 + .label form_field_idx = 4 + .label key_right_debounce = 5 .label print_line_cursor = $a jsr main main: { @@ -41,7 +42,7 @@ main: { sta DTV_FEATURE lda #0 sta key_right_debounce - tax + sta form_field_idx sta key_down_debounce lda #FORM_CURSOR_BLINK/2 sta form_cursor_count @@ -52,7 +53,7 @@ main: { menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label c = 5 + .label c = 6 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK lda #DTV_COLOR_BANK_DEFAULT/$400 @@ -70,12 +71,12 @@ menu: { sta VIC_CONTROL2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY - ldy #0 + ldx #0 b1: - lda DTV_PALETTE_DEFAULT,y - sta DTV_PALETTE,y - iny - cpy #$10 + lda DTV_PALETTE_DEFAULT,x + sta DTV_PALETTE,x + inx + cpx #$10 bne b1 lda #menu.SCREEN sta line+1 b1: lda line - sta form_line_lo,y + sta form_line_lo,x lda line+1 - sta form_line_hi,y + sta form_line_hi,x lda line clc adc #$28 @@ -282,13 +290,13 @@ form_set_screen: { bcc !+ inc line+1 !: - iny - cpy #$19 + inx + cpx #$19 bne b1 rts } print_str_lines: { - .label str = 5 + .label str = 6 lda #menu.SCREEN @@ -352,7 +360,7 @@ print_ln: { rts } print_cls: { - .label sc = 5 + .label sc = 6 lda #menu.SCREEN @@ -384,5 +392,6 @@ print_set_screen: { form_line_hi: .fill $19, 0 form_fields_x: .byte 7, 7, 7, 7, 7, 7, 7, $11, $11 form_fields_y: .byte 2, 3, 4, 5, 6, 7, 8, 7, 8 + form_fields_max: .byte 1, 1, 1, 1, 1, 2, 1, 1, 1 form_fields_val: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0 MENU_TEXT: .text " DTV GfxExplorer PRESET 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p1 patt p2 screen s3 @"+" mcm 0 start 00 start 00 gfx g4 @"+" ecm 0 step 00 step 00 colors c5 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @"+" chunk 0 overs 0 bgcol3 00 @"+"@" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg index d330eff67..3148fb316 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg @@ -90,111 +90,115 @@ form_control: scope:[form_control] from menu::@8 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) - to:form_control::@28 -form_control::@28: scope:[form_control] from form_control + to:form_control::@32 +form_control::@32: scope:[form_control] from form_control [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) - [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) + [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@37 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) to:form_control::@1 -form_control::@1: scope:[form_control] from form_control::@28 form_control::@33 - [51] (signed byte) form_cursor_count#15 ← phi( form_control::@28/(const signed byte) FORM_CURSOR_BLINK#0 form_control::@33/(signed byte) form_cursor_count#5 ) [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) +form_control::@1: scope:[form_control] from form_control::@32 form_control::@37 + [51] (signed byte) form_cursor_count#15 ← phi( form_control::@32/(const signed byte) FORM_CURSOR_BLINK#0 form_control::@37/(signed byte) form_cursor_count#5 ) [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - to:form_control::@15 -form_control::@15: scope:[form_control] from form_control::@1 + to:form_control::@17 +form_control::@17: scope:[form_control] from form_control::@1 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) to:form_control::@3 -form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 +form_control::@3: scope:[form_control] from form_control::@17 form_control::@2 [55] phi() [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) - to:form_control::@29 -form_control::@29: scope:[form_control] from form_control::@3 + to:form_control::@33 +form_control::@33: scope:[form_control] from form_control::@3 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) - to:form_control::@17 -form_control::@17: scope:[form_control] from form_control::@29 + to:form_control::@19 +form_control::@19: scope:[form_control] from form_control::@33 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) - to:form_control::@18 -form_control::@18: scope:[form_control] from form_control::@17 + to:form_control::@20 +form_control::@20: scope:[form_control] from form_control::@19 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) - to:form_control::@31 -form_control::@31: scope:[form_control] from form_control::@18 + to:form_control::@35 +form_control::@35: scope:[form_control] from form_control::@20 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) - to:form_control::@19 -form_control::@19: scope:[form_control] from form_control::@31 - [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) - [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) + to:form_control::@21 +form_control::@21: scope:[form_control] from form_control::@35 + [68] (byte) form_field_idx#41 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) + [69] if((byte) form_field_idx#41!=(const byte) form_fields_cnt#0) goto form_control::@38 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) to:form_control::@8 -form_control::@8: scope:[form_control] from form_control::@19 form_control::@34 form_control::@35 form_control::@6 - [70] (byte) form_field_idx#30 ← phi( form_control::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@6/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@34/(byte) form_field_idx#37 form_control::@35/(byte) form_field_idx#38 ) [ key_right_debounce#11 key_down_debounce#23 form_field_idx#30 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#30 ] ) +form_control::@8: scope:[form_control] from form_control::@21 form_control::@38 form_control::@39 form_control::@6 + [70] (byte) form_field_idx#32 ← phi( form_control::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@6/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@38/(byte) form_field_idx#41 form_control::@39/(byte) form_field_idx#42 ) [ key_right_debounce#11 key_down_debounce#23 form_field_idx#32 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#32 ] ) to:form_control::@return -form_control::@return: scope:[form_control] from form_control::@13 form_control::@24 form_control::@30 form_control::@8 - [71] (byte) key_right_debounce#13 ← phi( form_control::@30/(byte) key_right_debounce#11 form_control::@24/(byte) key_right_debounce#21 form_control::@13/(byte) key_right_debounce#21 form_control::@8/(byte) key_right_debounce#11 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [71] (byte) form_field_idx#18 ← phi( form_control::@30/(byte) form_field_idx#14 form_control::@24/(byte) form_field_idx#14 form_control::@13/(byte) form_field_idx#14 form_control::@8/(byte) form_field_idx#30 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [71] (byte) key_down_debounce#13 ← phi( form_control::@30/(byte) key_down_debounce#20 form_control::@24/(byte) key_down_debounce#20 form_control::@13/(byte) key_down_debounce#20 form_control::@8/(byte) key_down_debounce#23 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [71] (signed byte) form_cursor_count#16 ← phi( form_control::@30/(signed byte) form_cursor_count#15 form_control::@24/(signed byte) form_cursor_count#15 form_control::@13/(signed byte) form_cursor_count#15 form_control::@8/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) +form_control::@return: scope:[form_control] from form_control::@14 form_control::@26 form_control::@34 form_control::@8 + [71] (byte) key_right_debounce#13 ← phi( form_control::@34/(byte) key_right_debounce#11 form_control::@26/(byte) key_right_debounce#21 form_control::@14/(byte) key_right_debounce#21 form_control::@8/(byte) key_right_debounce#11 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (byte) form_field_idx#18 ← phi( form_control::@34/(byte) form_field_idx#14 form_control::@26/(byte) form_field_idx#14 form_control::@14/(byte) form_field_idx#14 form_control::@8/(byte) form_field_idx#32 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (byte) key_down_debounce#13 ← phi( form_control::@34/(byte) key_down_debounce#20 form_control::@26/(byte) key_down_debounce#20 form_control::@14/(byte) key_down_debounce#20 form_control::@8/(byte) key_down_debounce#23 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (signed byte) form_cursor_count#16 ← phi( form_control::@34/(signed byte) form_cursor_count#15 form_control::@26/(signed byte) form_cursor_count#15 form_control::@14/(signed byte) form_cursor_count#15 form_control::@8/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) to:@return -form_control::@34: scope:[form_control] from form_control::@19 - [73] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) +form_control::@38: scope:[form_control] from form_control::@21 + [73] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) to:form_control::@8 -form_control::@6: scope:[form_control] from form_control::@31 - [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) - [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) +form_control::@6: scope:[form_control] from form_control::@35 + [74] (byte) form_field_idx#42 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) + [75] if((byte) form_field_idx#42!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@39 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) to:form_control::@8 -form_control::@35: scope:[form_control] from form_control::@6 - [76] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) +form_control::@39: scope:[form_control] from form_control::@6 + [76] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) to:form_control::@8 -form_control::@4: scope:[form_control] from form_control::@17 form_control::@29 - [77] (byte) key_down_debounce#20 ← phi( form_control::@29/(byte) key_down_debounce#11 form_control::@17/(byte) key_down_debounce#23 ) [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ) +form_control::@4: scope:[form_control] from form_control::@19 form_control::@33 + [77] (byte) key_down_debounce#20 ← phi( form_control::@33/(byte) key_down_debounce#11 form_control::@19/(byte) key_down_debounce#23 ) [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ) [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) - to:form_control::@30 -form_control::@30: scope:[form_control] from form_control::@4 + to:form_control::@34 +form_control::@34: scope:[form_control] from form_control::@4 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) - to:form_control::@24 -form_control::@24: scope:[form_control] from form_control::@30 + to:form_control::@26 +form_control::@26: scope:[form_control] from form_control::@34 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@25 -form_control::@25: scope:[form_control] from form_control::@24 + to:form_control::@27 +form_control::@27: scope:[form_control] from form_control::@26 [84] phi() [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) - to:form_control::@32 -form_control::@32: scope:[form_control] from form_control::@25 + to:form_control::@36 +form_control::@36: scope:[form_control] from form_control::@27 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@26 -form_control::@26: scope:[form_control] from form_control::@32 - [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) - [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) - [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@13 -form_control::@13: scope:[form_control] from form_control::@12 form_control::@26 + to:form_control::@28 +form_control::@28: scope:[form_control] from form_control::@36 + [89] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← ++ *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + [90] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@29 +form_control::@29: scope:[form_control] from form_control::@28 + [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@14 +form_control::@14: scope:[form_control] from form_control::@12 form_control::@28 form_control::@29 form_control::@31 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) to:form_control::@return -form_control::@12: scope:[form_control] from form_control::@32 - [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) - [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) - [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@13 +form_control::@12: scope:[form_control] from form_control::@36 + [93] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + [94] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@31 +form_control::@31: scope:[form_control] from form_control::@12 + [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@14 form_control::@2: scope:[form_control] from form_control::@1 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) to:form_control::@3 -form_control::@33: scope:[form_control] from form_control::@28 +form_control::@37: scope:[form_control] from form_control::@32 [98] phi() [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) to:form_control::@1 -keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@18 form_control::@25 form_control::@3 form_control::@4 - [99] (byte) keyboard_key_pressed::key#4 ← phi( form_control::@18/(const byte) KEY_RSHIFT#0 form_control::@25/(const byte) KEY_RSHIFT#0 form_control::@3/(const byte) KEY_CRSR_DOWN#0 form_control::@4/(const byte) KEY_CRSR_RIGHT#0 ) [ keyboard_key_pressed::key#4 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 ] ) +keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@20 form_control::@27 form_control::@3 form_control::@4 + [99] (byte) keyboard_key_pressed::key#4 ← phi( form_control::@20/(const byte) KEY_RSHIFT#0 form_control::@27/(const byte) KEY_RSHIFT#0 form_control::@3/(const byte) KEY_CRSR_DOWN#0 form_control::@4/(const byte) KEY_CRSR_RIGHT#0 ) [ keyboard_key_pressed::key#4 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 ] ) [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log index 253bf6452..f0e392a76 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log @@ -75,6 +75,8 @@ byte form_fields_cnt = 9; // Form fields x/y-positions byte[] form_fields_x = { 7, 7, 7, 7, 7, 7, 7, 17, 17 }; byte[] form_fields_y = { 2, 3, 4, 5, 6, 7, 8, 7, 8 }; +// Form field max values (all values are in the interval 0 .. max-1) +byte[] form_fields_max = { 1, 1, 1, 1, 1, 2, 1, 1, 1 }; // Form fields values byte[] form_fields_val = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -158,17 +160,20 @@ void form_control() { } // Change value with cursor left/right - // Navigation using cursor up/down byte key_right = keyboard_key_pressed(KEY_CRSR_RIGHT); if(key_right!=key_right_debounce) { key_right_debounce = key_right; if(key_right!=0) { if(keyboard_key_pressed(KEY_RSHIFT)==0) { // Increase value - form_fields_val[form_field_idx] = (form_fields_val[form_field_idx]+1) & $f; + if(++form_fields_val[form_field_idx]>form_fields_max[form_field_idx]) { + form_fields_val[form_field_idx] = 0; + } } else { // Decrease value - form_fields_val[form_field_idx] = (form_fields_val[form_field_idx]-1) & $f; + if(--form_fields_val[form_field_idx]==$ff) { + form_fields_val[form_field_idx] = form_fields_max[form_field_idx]; + } } // Render field value *field = print_hextab[form_fields_val[form_field_idx]]; @@ -630,6 +635,8 @@ Adding pre/post-modifier (byte) form_render_values::idx ← ++ (byte) form_rende Adding pre/post-modifier (signed byte) form_cursor_count ← -- (signed byte) form_cursor_count Adding pre/post-modifier (byte) form_field_idx ← ++ (byte) form_field_idx Adding pre/post-modifier (byte) form_field_idx ← -- (byte) form_field_idx +Adding pre/post-modifier *((byte[]) form_fields_val + (byte) form_field_idx) ← ++ *((byte[]) form_fields_val + (byte) form_field_idx) +Adding pre/post-modifier *((byte[]) form_fields_val + (byte) form_field_idx) ← -- *((byte[]) form_fields_val + (byte) form_field_idx) STATEMENTS (byte*) PROCPORT_DDR ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1099,6 +1106,7 @@ endproc // menu() (byte) form_fields_cnt ← (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) form_fields_x ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 17 } (byte[]) form_fields_y ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8 } + (byte[]) form_fields_max ← { (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) 1, (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) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte[]) form_fields_val ← { (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) key_down_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) key_right_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1215,15 +1223,21 @@ form_control::@4: (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 if((boolean~) form_control::$30) goto form_control::@12 - (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((byte[]) form_fields_val + (byte) form_field_idx) + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 - *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$32 - goto form_control::@13 -form_control::@12: - (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((byte[]) form_fields_val + (byte) form_field_idx) - (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 - *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$34 + *((byte[]) form_fields_val + (byte) form_field_idx) ← ++ *((byte[]) form_fields_val + (byte) form_field_idx) + (boolean~) form_control::$31 ← *((byte[]) form_fields_val + (byte) form_field_idx) > *((byte[]) form_fields_max + (byte) form_field_idx) + (boolean~) form_control::$32 ← ! (boolean~) form_control::$31 + if((boolean~) form_control::$32) goto form_control::@13 + *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@13: + goto form_control::@14 +form_control::@12: + *((byte[]) form_fields_val + (byte) form_field_idx) ← -- *((byte[]) form_fields_val + (byte) form_field_idx) + (boolean~) form_control::$33 ← *((byte[]) form_fields_val + (byte) form_field_idx) == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$34 ← ! (boolean~) form_control::$33 + if((boolean~) form_control::$34) goto form_control::@15 + *((byte[]) form_fields_val + (byte) form_field_idx) ← *((byte[]) form_fields_max + (byte) form_field_idx) +form_control::@15: +form_control::@14: *((byte*) form_control::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_field_idx)) form_control::@11: form_control::@10: @@ -1435,10 +1449,10 @@ SYMBOLS (boolean~) form_control::$29 (signed word/signed byte/signed dword~) form_control::$3 (boolean~) form_control::$30 -(byte/signed word/word/dword/signed dword~) form_control::$31 -(byte/word/dword~) form_control::$32 -(byte/signed word/word/dword/signed dword~) form_control::$33 -(byte/word/dword~) form_control::$34 +(boolean~) form_control::$31 +(boolean~) form_control::$32 +(boolean~) form_control::$33 +(boolean~) form_control::$34 (boolean~) form_control::$4 (boolean~) form_control::$5 (byte/word/dword~) form_control::$6 @@ -1450,6 +1464,8 @@ SYMBOLS (label) form_control::@11 (label) form_control::@12 (label) form_control::@13 +(label) form_control::@14 +(label) form_control::@15 (label) form_control::@2 (label) form_control::@3 (label) form_control::@4 @@ -1475,6 +1491,7 @@ SYMBOLS (byte) form_field_ptr::x (byte) form_field_ptr::y (byte) form_fields_cnt +(byte[]) form_fields_max (byte[]) form_fields_val (byte[]) form_fields_x (byte[]) form_fields_y @@ -2348,6 +2365,7 @@ menu::@return: scope:[menu] from menu::@5 (byte) form_fields_cnt ← (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) form_fields_x ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 17 } (byte[]) form_fields_y ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8 } + (byte[]) form_fields_max ← { (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) 1, (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) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte[]) form_fields_val ← { (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) key_down_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) key_right_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2419,32 +2437,32 @@ form_control: scope:[form_control] from (boolean~) form_control::$1 ← (signed byte) form_cursor_count < (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$2 ← ! (boolean~) form_control::$1 if((boolean~) form_control::$2) goto form_control::@1 - to:form_control::@14 -form_control::@1: scope:[form_control] from form_control form_control::@14 + to:form_control::@16 +form_control::@1: scope:[form_control] from form_control form_control::@16 (signed word/signed byte/signed dword~) form_control::$3 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 (boolean~) form_control::$4 ← (signed byte) form_cursor_count < (signed word/signed byte/signed dword~) form_control::$3 (boolean~) form_control::$5 ← ! (boolean~) form_control::$4 if((boolean~) form_control::$5) goto form_control::@2 - to:form_control::@15 -form_control::@14: scope:[form_control] from form_control + to:form_control::@17 +form_control::@16: scope:[form_control] from form_control (signed byte) form_cursor_count ← (signed byte) FORM_CURSOR_BLINK to:form_control::@1 -form_control::@2: scope:[form_control] from form_control::@1 form_control::@16 +form_control::@2: scope:[form_control] from form_control::@1 form_control::@18 (byte~) form_control::$7 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 *((byte*) form_control::field) ← (byte~) form_control::$7 to:form_control::@3 -form_control::@15: scope:[form_control] from form_control::@1 +form_control::@17: scope:[form_control] from form_control::@1 (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field) | (byte/word/signed word/dword/signed dword) 128 *((byte*) form_control::field) ← (byte/word/dword~) form_control::$6 to:form_control::@3 -form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 +form_control::@3: scope:[form_control] from form_control::@17 form_control::@2 (byte~) form_control::$8 ← call keyboard_key_pressed (byte) KEY_CRSR_DOWN (byte) form_control::key_down ← (byte~) form_control::$8 (boolean~) form_control::$9 ← (byte) form_control::key_down != (byte) key_down_debounce (boolean~) form_control::$10 ← ! (boolean~) form_control::$9 if((boolean~) form_control::$10) goto form_control::@4 - to:form_control::@17 -form_control::@16: scope:[form_control] from + to:form_control::@19 +form_control::@18: scope:[form_control] from to:form_control::@2 form_control::@4: scope:[form_control] from form_control::@3 form_control::@5 (byte~) form_control::$23 ← call keyboard_key_pressed (byte) KEY_CRSR_RIGHT @@ -2452,88 +2470,100 @@ form_control::@4: scope:[form_control] from form_control::@3 form_control::@5 (boolean~) form_control::$24 ← (byte) form_control::key_right != (byte) key_right_debounce (boolean~) form_control::$25 ← ! (boolean~) form_control::$24 if((boolean~) form_control::$25) goto form_control::@10 - to:form_control::@24 -form_control::@17: scope:[form_control] from form_control::@3 + to:form_control::@26 +form_control::@19: scope:[form_control] from form_control::@3 (byte) key_down_debounce ← (byte) form_control::key_down (boolean~) form_control::$11 ← (byte) form_control::key_down != (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$12 ← ! (boolean~) form_control::$11 if((boolean~) form_control::$12) goto form_control::@5 - to:form_control::@18 -form_control::@5: scope:[form_control] from form_control::@17 form_control::@23 + to:form_control::@20 +form_control::@5: scope:[form_control] from form_control::@19 form_control::@25 to:form_control::@4 -form_control::@18: scope:[form_control] from form_control::@17 +form_control::@20: scope:[form_control] from form_control::@19 (byte~) form_control::$13 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 *((byte*) form_control::field) ← (byte~) form_control::$13 (byte~) form_control::$14 ← call keyboard_key_pressed (byte) KEY_RSHIFT (boolean~) form_control::$15 ← (byte~) form_control::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$16 ← ! (boolean~) form_control::$15 if((boolean~) form_control::$16) goto form_control::@6 - to:form_control::@19 -form_control::@6: scope:[form_control] from form_control::@18 form_control::@21 + to:form_control::@21 +form_control::@6: scope:[form_control] from form_control::@20 form_control::@23 (byte) form_field_idx ← -- (byte) form_field_idx (boolean~) form_control::$19 ← (byte) form_field_idx == (byte/word/signed word/dword/signed dword) 255 (boolean~) form_control::$20 ← ! (boolean~) form_control::$19 if((boolean~) form_control::$20) goto form_control::@9 - to:form_control::@22 -form_control::@19: scope:[form_control] from form_control::@18 + to:form_control::@24 +form_control::@21: scope:[form_control] from form_control::@20 (byte) form_field_idx ← ++ (byte) form_field_idx (boolean~) form_control::$17 ← (byte) form_field_idx == (byte) form_fields_cnt (boolean~) form_control::$18 ← ! (boolean~) form_control::$17 if((boolean~) form_control::$18) goto form_control::@7 - to:form_control::@20 -form_control::@7: scope:[form_control] from form_control::@19 form_control::@20 + to:form_control::@22 +form_control::@7: scope:[form_control] from form_control::@21 form_control::@22 to:form_control::@8 -form_control::@20: scope:[form_control] from form_control::@19 +form_control::@22: scope:[form_control] from form_control::@21 (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:form_control::@7 form_control::@8: scope:[form_control] from form_control::@7 form_control::@9 (signed word/signed byte/signed dword~) form_control::$22 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 (signed byte) form_cursor_count ← (signed word/signed byte/signed dword~) form_control::$22 to:form_control::@return -form_control::@21: scope:[form_control] from +form_control::@23: scope:[form_control] from to:form_control::@6 -form_control::@9: scope:[form_control] from form_control::@22 form_control::@6 +form_control::@9: scope:[form_control] from form_control::@24 form_control::@6 to:form_control::@8 -form_control::@22: scope:[form_control] from form_control::@6 +form_control::@24: scope:[form_control] from form_control::@6 (byte/signed word/word/dword/signed dword~) form_control::$21 ← (byte) form_fields_cnt - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) form_field_idx ← (byte/signed word/word/dword/signed dword~) form_control::$21 to:form_control::@9 form_control::@return: scope:[form_control] from form_control::@10 form_control::@8 return to:@return -form_control::@23: scope:[form_control] from +form_control::@25: scope:[form_control] from to:form_control::@5 form_control::@10: scope:[form_control] from form_control::@11 form_control::@4 to:form_control::@return -form_control::@24: scope:[form_control] from form_control::@4 +form_control::@26: scope:[form_control] from form_control::@4 (byte) key_right_debounce ← (byte) form_control::key_right (boolean~) form_control::$26 ← (byte) form_control::key_right != (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$27 ← ! (boolean~) form_control::$26 if((boolean~) form_control::$27) goto form_control::@11 - to:form_control::@25 -form_control::@11: scope:[form_control] from form_control::@13 form_control::@24 + to:form_control::@27 +form_control::@11: scope:[form_control] from form_control::@14 form_control::@26 to:form_control::@10 -form_control::@25: scope:[form_control] from form_control::@24 +form_control::@27: scope:[form_control] from form_control::@26 (byte~) form_control::$28 ← call keyboard_key_pressed (byte) KEY_RSHIFT (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 if((boolean~) form_control::$30) goto form_control::@12 - to:form_control::@26 -form_control::@12: scope:[form_control] from form_control::@25 form_control::@27 - (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((byte[]) form_fields_val + (byte) form_field_idx) - (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 - *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$34 + to:form_control::@28 +form_control::@12: scope:[form_control] from form_control::@27 form_control::@30 + *((byte[]) form_fields_val + (byte) form_field_idx) ← -- *((byte[]) form_fields_val + (byte) form_field_idx) + (boolean~) form_control::$33 ← *((byte[]) form_fields_val + (byte) form_field_idx) == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$34 ← ! (boolean~) form_control::$33 + if((boolean~) form_control::$34) goto form_control::@15 + to:form_control::@31 +form_control::@28: scope:[form_control] from form_control::@27 + *((byte[]) form_fields_val + (byte) form_field_idx) ← ++ *((byte[]) form_fields_val + (byte) form_field_idx) + (boolean~) form_control::$31 ← *((byte[]) form_fields_val + (byte) form_field_idx) > *((byte[]) form_fields_max + (byte) form_field_idx) + (boolean~) form_control::$32 ← ! (boolean~) form_control::$31 + if((boolean~) form_control::$32) goto form_control::@13 + to:form_control::@29 +form_control::@13: scope:[form_control] from form_control::@28 form_control::@29 + to:form_control::@14 +form_control::@29: scope:[form_control] from form_control::@28 + *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:form_control::@13 -form_control::@26: scope:[form_control] from form_control::@25 - (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((byte[]) form_fields_val + (byte) form_field_idx) + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 - *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$32 - to:form_control::@13 -form_control::@13: scope:[form_control] from form_control::@12 form_control::@26 +form_control::@14: scope:[form_control] from form_control::@13 form_control::@15 *((byte*) form_control::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_field_idx)) to:form_control::@11 -form_control::@27: scope:[form_control] from +form_control::@30: scope:[form_control] from to:form_control::@12 +form_control::@15: scope:[form_control] from form_control::@12 form_control::@31 + to:form_control::@14 +form_control::@31: scope:[form_control] from form_control::@12 + *((byte[]) form_fields_val + (byte) form_field_idx) ← *((byte[]) form_fields_max + (byte) form_field_idx) + to:form_control::@15 @25: scope:[] from @24 call main to:@end @@ -2744,10 +2774,10 @@ Removing empty block form_field_ptr::@1 Removing empty block @23 Removing empty block form_render_values::@2 Removing empty block @24 -Removing empty block form_control::@16 -Removing empty block form_control::@21 +Removing empty block form_control::@18 Removing empty block form_control::@23 -Removing empty block form_control::@27 +Removing empty block form_control::@25 +Removing empty block form_control::@30 PROCEDURE MODIFY VARIABLE ANALYSIS print_str_lines modifies print_char_cursor print_str_lines modifies print_line_cursor @@ -2980,8 +3010,8 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri (byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#3 return to:@return -keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@18 form_control::@25 form_control::@3 form_control::@4 - (byte) keyboard_key_pressed::key#4 ← phi( form_control::@18/(byte) keyboard_key_pressed::key#2 form_control::@25/(byte) keyboard_key_pressed::key#3 form_control::@3/(byte) keyboard_key_pressed::key#0 form_control::@4/(byte) keyboard_key_pressed::key#1 ) +keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@20 form_control::@27 form_control::@3 form_control::@4 + (byte) keyboard_key_pressed::key#4 ← phi( form_control::@20/(byte) keyboard_key_pressed::key#2 form_control::@27/(byte) keyboard_key_pressed::key#3 form_control::@3/(byte) keyboard_key_pressed::key#0 form_control::@4/(byte) keyboard_key_pressed::key#1 ) (byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) keyboard_key_pressed::colidx#0 ← (byte~) keyboard_key_pressed::$0 (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 @@ -3005,7 +3035,7 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p main: scope:[main] from @25 (byte) form_fields_cnt#34 ← phi( @25/(byte) form_fields_cnt#38 ) (byte) key_right_debounce#25 ← phi( @25/(byte) key_right_debounce#24 ) - (byte) form_field_idx#33 ← phi( @25/(byte) form_field_idx#32 ) + (byte) form_field_idx#37 ← phi( @25/(byte) form_field_idx#36 ) (byte) key_down_debounce#25 ← phi( @25/(byte) key_down_debounce#24 ) (signed byte) form_cursor_count#27 ← phi( @25/(signed byte) form_cursor_count#26 ) (byte*) print_char_cursor#43 ← phi( @25/(byte*) print_char_cursor#39 ) @@ -3017,7 +3047,7 @@ main: scope:[main] from @25 main::@1: scope:[main] from main main::@7 (byte) form_fields_cnt#32 ← phi( main/(byte) form_fields_cnt#34 main::@7/(byte) form_fields_cnt#35 ) (byte) key_right_debounce#16 ← phi( main/(byte) key_right_debounce#25 main::@7/(byte) key_right_debounce#0 ) - (byte) form_field_idx#24 ← phi( main/(byte) form_field_idx#33 main::@7/(byte) form_field_idx#0 ) + (byte) form_field_idx#26 ← phi( main/(byte) form_field_idx#37 main::@7/(byte) form_field_idx#0 ) (byte) key_down_debounce#16 ← phi( main/(byte) key_down_debounce#25 main::@7/(byte) key_down_debounce#0 ) (signed byte) form_cursor_count#19 ← phi( main/(signed byte) form_cursor_count#27 main::@7/(signed byte) form_cursor_count#0 ) (byte*) print_char_cursor#36 ← phi( main/(byte*) print_char_cursor#43 main::@7/(byte*) print_char_cursor#10 ) @@ -3028,7 +3058,7 @@ main::@1: scope:[main] from main main::@7 main::@2: scope:[main] from main::@1 (byte) form_fields_cnt#29 ← phi( main::@1/(byte) form_fields_cnt#32 ) (byte) key_right_debounce#15 ← phi( main::@1/(byte) key_right_debounce#16 ) - (byte) form_field_idx#23 ← phi( main::@1/(byte) form_field_idx#24 ) + (byte) form_field_idx#25 ← phi( main::@1/(byte) form_field_idx#26 ) (byte) key_down_debounce#15 ← phi( main::@1/(byte) key_down_debounce#16 ) (signed byte) form_cursor_count#18 ← phi( main::@1/(signed byte) form_cursor_count#19 ) (byte*) print_char_cursor#35 ← phi( main::@1/(byte*) print_char_cursor#36 ) @@ -3055,7 +3085,7 @@ main::@7: scope:[main] from main::@2 to:main::@1 main::@return: scope:[main] from main::@1 (byte) key_right_debounce#9 ← phi( main::@1/(byte) key_right_debounce#16 ) - (byte) form_field_idx#12 ← phi( main::@1/(byte) form_field_idx#24 ) + (byte) form_field_idx#12 ← phi( main::@1/(byte) form_field_idx#26 ) (byte) key_down_debounce#9 ← phi( main::@1/(byte) key_down_debounce#16 ) (signed byte) form_cursor_count#11 ← phi( main::@1/(signed byte) form_cursor_count#19 ) (byte*) print_char_cursor#25 ← phi( main::@1/(byte*) print_char_cursor#36 ) @@ -3087,10 +3117,10 @@ main::@return: scope:[main] from main::@1 to:@21 menu: scope:[menu] from main::@2 (byte) form_fields_cnt#27 ← phi( main::@2/(byte) form_fields_cnt#29 ) - (byte) key_right_debounce#60 ← phi( main::@2/(byte) key_right_debounce#15 ) - (byte) form_field_idx#62 ← phi( main::@2/(byte) form_field_idx#23 ) - (byte) key_down_debounce#60 ← phi( main::@2/(byte) key_down_debounce#15 ) - (signed byte) form_cursor_count#53 ← phi( main::@2/(signed byte) form_cursor_count#18 ) + (byte) key_right_debounce#64 ← phi( main::@2/(byte) key_right_debounce#15 ) + (byte) form_field_idx#66 ← phi( main::@2/(byte) form_field_idx#25 ) + (byte) key_down_debounce#64 ← phi( main::@2/(byte) key_down_debounce#15 ) + (signed byte) form_cursor_count#57 ← phi( main::@2/(signed byte) form_cursor_count#18 ) (byte*) print_char_cursor#56 ← phi( main::@2/(byte*) print_char_cursor#35 ) (byte*) print_line_cursor#56 ← phi( main::@2/(byte*) print_line_cursor#33 ) (byte*) print_screen#36 ← phi( main::@2/(byte*) print_screen#17 ) @@ -3132,10 +3162,10 @@ menu: scope:[menu] from main::@2 to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 (byte) form_fields_cnt#25 ← phi( menu/(byte) form_fields_cnt#27 menu::@1/(byte) form_fields_cnt#25 ) - (byte) key_right_debounce#59 ← phi( menu/(byte) key_right_debounce#60 menu::@1/(byte) key_right_debounce#59 ) - (byte) form_field_idx#61 ← phi( menu/(byte) form_field_idx#62 menu::@1/(byte) form_field_idx#61 ) - (byte) key_down_debounce#59 ← phi( menu/(byte) key_down_debounce#60 menu::@1/(byte) key_down_debounce#59 ) - (signed byte) form_cursor_count#52 ← phi( menu/(signed byte) form_cursor_count#53 menu::@1/(signed byte) form_cursor_count#52 ) + (byte) key_right_debounce#63 ← phi( menu/(byte) key_right_debounce#64 menu::@1/(byte) key_right_debounce#63 ) + (byte) form_field_idx#65 ← phi( menu/(byte) form_field_idx#66 menu::@1/(byte) form_field_idx#65 ) + (byte) key_down_debounce#63 ← phi( menu/(byte) key_down_debounce#64 menu::@1/(byte) key_down_debounce#63 ) + (signed byte) form_cursor_count#56 ← phi( menu/(signed byte) form_cursor_count#57 menu::@1/(signed byte) form_cursor_count#56 ) (byte*) print_char_cursor#53 ← phi( menu/(byte*) print_char_cursor#56 menu::@1/(byte*) print_char_cursor#53 ) (byte*) print_line_cursor#53 ← phi( menu/(byte*) print_line_cursor#56 menu::@1/(byte*) print_line_cursor#53 ) (byte*) print_screen#32 ← phi( menu/(byte*) print_screen#36 menu::@1/(byte*) print_screen#32 ) @@ -3147,10 +3177,10 @@ menu::@1: scope:[menu] from menu menu::@1 to:menu::@9 menu::@9: scope:[menu] from menu::@1 (byte) form_fields_cnt#23 ← phi( menu::@1/(byte) form_fields_cnt#25 ) - (byte) key_right_debounce#58 ← phi( menu::@1/(byte) key_right_debounce#59 ) - (byte) form_field_idx#60 ← phi( menu::@1/(byte) form_field_idx#61 ) - (byte) key_down_debounce#58 ← phi( menu::@1/(byte) key_down_debounce#59 ) - (signed byte) form_cursor_count#51 ← phi( menu::@1/(signed byte) form_cursor_count#52 ) + (byte) key_right_debounce#62 ← phi( menu::@1/(byte) key_right_debounce#63 ) + (byte) form_field_idx#64 ← phi( menu::@1/(byte) form_field_idx#65 ) + (byte) key_down_debounce#62 ← phi( menu::@1/(byte) key_down_debounce#63 ) + (signed byte) form_cursor_count#55 ← phi( menu::@1/(signed byte) form_cursor_count#56 ) (byte*) print_char_cursor#48 ← phi( menu::@1/(byte*) print_char_cursor#53 ) (byte*) print_line_cursor#47 ← phi( menu::@1/(byte*) print_line_cursor#53 ) (byte*) print_screen#27 ← phi( menu::@1/(byte*) print_screen#32 ) @@ -3158,10 +3188,10 @@ menu::@9: scope:[menu] from menu::@1 to:menu::@2 menu::@2: scope:[menu] from menu::@2 menu::@9 (byte) form_fields_cnt#20 ← phi( menu::@2/(byte) form_fields_cnt#20 menu::@9/(byte) form_fields_cnt#23 ) - (byte) key_right_debounce#57 ← phi( menu::@2/(byte) key_right_debounce#57 menu::@9/(byte) key_right_debounce#58 ) - (byte) form_field_idx#57 ← phi( menu::@2/(byte) form_field_idx#57 menu::@9/(byte) form_field_idx#60 ) - (byte) key_down_debounce#57 ← phi( menu::@2/(byte) key_down_debounce#57 menu::@9/(byte) key_down_debounce#58 ) - (signed byte) form_cursor_count#50 ← phi( menu::@2/(signed byte) form_cursor_count#50 menu::@9/(signed byte) form_cursor_count#51 ) + (byte) key_right_debounce#61 ← phi( menu::@2/(byte) key_right_debounce#61 menu::@9/(byte) key_right_debounce#62 ) + (byte) form_field_idx#61 ← phi( menu::@2/(byte) form_field_idx#61 menu::@9/(byte) form_field_idx#64 ) + (byte) key_down_debounce#61 ← phi( menu::@2/(byte) key_down_debounce#61 menu::@9/(byte) key_down_debounce#62 ) + (signed byte) form_cursor_count#54 ← phi( menu::@2/(signed byte) form_cursor_count#54 menu::@9/(signed byte) form_cursor_count#55 ) (byte*) print_char_cursor#44 ← phi( menu::@2/(byte*) print_char_cursor#44 menu::@9/(byte*) print_char_cursor#48 ) (byte*) print_line_cursor#41 ← phi( menu::@2/(byte*) print_line_cursor#41 menu::@9/(byte*) print_line_cursor#47 ) (byte*) print_screen#23 ← phi( menu::@2/(byte*) print_screen#23 menu::@9/(byte*) print_screen#27 ) @@ -3174,10 +3204,10 @@ menu::@2: scope:[menu] from menu::@2 menu::@9 to:menu::@10 menu::@10: scope:[menu] from menu::@2 (byte) form_fields_cnt#18 ← phi( menu::@2/(byte) form_fields_cnt#20 ) - (byte) key_right_debounce#55 ← phi( menu::@2/(byte) key_right_debounce#57 ) - (byte) form_field_idx#55 ← phi( menu::@2/(byte) form_field_idx#57 ) - (byte) key_down_debounce#56 ← phi( menu::@2/(byte) key_down_debounce#57 ) - (signed byte) form_cursor_count#49 ← phi( menu::@2/(signed byte) form_cursor_count#50 ) + (byte) key_right_debounce#59 ← phi( menu::@2/(byte) key_right_debounce#61 ) + (byte) form_field_idx#59 ← phi( menu::@2/(byte) form_field_idx#61 ) + (byte) key_down_debounce#60 ← phi( menu::@2/(byte) key_down_debounce#61 ) + (signed byte) form_cursor_count#53 ← phi( menu::@2/(signed byte) form_cursor_count#54 ) (byte*) print_char_cursor#37 ← phi( menu::@2/(byte*) print_char_cursor#44 ) (byte*) print_line_cursor#35 ← phi( menu::@2/(byte*) print_line_cursor#41 ) (byte*) print_screen#19 ← phi( menu::@2/(byte*) print_screen#23 ) @@ -3188,10 +3218,10 @@ menu::@10: scope:[menu] from menu::@2 to:menu::@17 menu::@17: scope:[menu] from menu::@10 (byte) form_fields_cnt#15 ← phi( menu::@10/(byte) form_fields_cnt#18 ) - (byte) key_right_debounce#52 ← phi( menu::@10/(byte) key_right_debounce#55 ) - (byte) form_field_idx#52 ← phi( menu::@10/(byte) form_field_idx#55 ) - (byte) key_down_debounce#55 ← phi( menu::@10/(byte) key_down_debounce#56 ) - (signed byte) form_cursor_count#46 ← phi( menu::@10/(signed byte) form_cursor_count#49 ) + (byte) key_right_debounce#56 ← phi( menu::@10/(byte) key_right_debounce#59 ) + (byte) form_field_idx#56 ← phi( menu::@10/(byte) form_field_idx#59 ) + (byte) key_down_debounce#59 ← phi( menu::@10/(byte) key_down_debounce#60 ) + (signed byte) form_cursor_count#50 ← phi( menu::@10/(signed byte) form_cursor_count#53 ) (byte*) print_char_cursor#26 ← phi( menu::@10/(byte*) print_char_cursor#9 ) (byte*) print_line_cursor#25 ← phi( menu::@10/(byte*) print_line_cursor#8 ) (byte*) print_screen#14 ← phi( menu::@10/(byte*) print_screen#2 ) @@ -3202,10 +3232,10 @@ menu::@17: scope:[menu] from menu::@10 to:menu::@18 menu::@18: scope:[menu] from menu::@17 (byte) form_fields_cnt#13 ← phi( menu::@17/(byte) form_fields_cnt#15 ) - (byte) key_right_debounce#49 ← phi( menu::@17/(byte) key_right_debounce#52 ) - (byte) form_field_idx#50 ← phi( menu::@17/(byte) form_field_idx#52 ) - (byte) key_down_debounce#52 ← phi( menu::@17/(byte) key_down_debounce#55 ) - (signed byte) form_cursor_count#43 ← phi( menu::@17/(signed byte) form_cursor_count#46 ) + (byte) key_right_debounce#52 ← phi( menu::@17/(byte) key_right_debounce#56 ) + (byte) form_field_idx#54 ← phi( menu::@17/(byte) form_field_idx#56 ) + (byte) key_down_debounce#55 ← phi( menu::@17/(byte) key_down_debounce#59 ) + (signed byte) form_cursor_count#46 ← phi( menu::@17/(signed byte) form_cursor_count#50 ) (byte*) print_screen#37 ← phi( menu::@17/(byte*) print_screen#5 ) (byte*) print_char_cursor#27 ← phi( menu::@17/(byte*) print_char_cursor#7 ) (byte*) print_line_cursor#26 ← phi( menu::@17/(byte*) print_line_cursor#6 ) @@ -3216,10 +3246,10 @@ menu::@18: scope:[menu] from menu::@17 to:menu::@19 menu::@19: scope:[menu] from menu::@18 (byte) form_fields_cnt#11 ← phi( menu::@18/(byte) form_fields_cnt#13 ) - (byte) key_right_debounce#44 ← phi( menu::@18/(byte) key_right_debounce#49 ) - (byte) form_field_idx#47 ← phi( menu::@18/(byte) form_field_idx#50 ) - (byte) key_down_debounce#46 ← phi( menu::@18/(byte) key_down_debounce#52 ) - (signed byte) form_cursor_count#39 ← phi( menu::@18/(signed byte) form_cursor_count#43 ) + (byte) key_right_debounce#47 ← phi( menu::@18/(byte) key_right_debounce#52 ) + (byte) form_field_idx#51 ← phi( menu::@18/(byte) form_field_idx#54 ) + (byte) key_down_debounce#49 ← phi( menu::@18/(byte) key_down_debounce#55 ) + (signed byte) form_cursor_count#42 ← phi( menu::@18/(signed byte) form_cursor_count#46 ) (byte*) print_screen#33 ← phi( menu::@18/(byte*) print_screen#37 ) (byte*) print_line_cursor#27 ← phi( menu::@18/(byte*) print_line_cursor#2 ) (byte*) print_char_cursor#28 ← phi( menu::@18/(byte*) print_char_cursor#3 ) @@ -3230,10 +3260,10 @@ menu::@19: scope:[menu] from menu::@18 to:menu::@20 menu::@20: scope:[menu] from menu::@19 (byte) form_fields_cnt#9 ← phi( menu::@19/(byte) form_fields_cnt#11 ) - (byte) key_right_debounce#36 ← phi( menu::@19/(byte) key_right_debounce#44 ) - (byte) form_field_idx#42 ← phi( menu::@19/(byte) form_field_idx#47 ) - (byte) key_down_debounce#38 ← phi( menu::@19/(byte) key_down_debounce#46 ) - (signed byte) form_cursor_count#34 ← phi( menu::@19/(signed byte) form_cursor_count#39 ) + (byte) key_right_debounce#38 ← phi( menu::@19/(byte) key_right_debounce#47 ) + (byte) form_field_idx#46 ← phi( menu::@19/(byte) form_field_idx#51 ) + (byte) key_down_debounce#40 ← phi( menu::@19/(byte) key_down_debounce#49 ) + (signed byte) form_cursor_count#36 ← phi( menu::@19/(signed byte) form_cursor_count#42 ) (byte*) print_char_cursor#49 ← phi( menu::@19/(byte*) print_char_cursor#14 ) (byte*) print_line_cursor#48 ← phi( menu::@19/(byte*) print_line_cursor#13 ) (byte*) print_screen#28 ← phi( menu::@19/(byte*) print_screen#33 ) @@ -3241,10 +3271,10 @@ menu::@20: scope:[menu] from menu::@19 to:menu::@21 menu::@21: scope:[menu] from menu::@20 (byte) form_fields_cnt#36 ← phi( menu::@20/(byte) form_fields_cnt#9 ) - (byte) key_right_debounce#26 ← phi( menu::@20/(byte) key_right_debounce#36 ) - (byte) form_field_idx#34 ← phi( menu::@20/(byte) form_field_idx#42 ) - (byte) key_down_debounce#26 ← phi( menu::@20/(byte) key_down_debounce#38 ) - (signed byte) form_cursor_count#28 ← phi( menu::@20/(signed byte) form_cursor_count#34 ) + (byte) key_right_debounce#26 ← phi( menu::@20/(byte) key_right_debounce#38 ) + (byte) form_field_idx#38 ← phi( menu::@20/(byte) form_field_idx#46 ) + (byte) key_down_debounce#26 ← phi( menu::@20/(byte) key_down_debounce#40 ) + (signed byte) form_cursor_count#28 ← phi( menu::@20/(signed byte) form_cursor_count#36 ) (byte*) print_char_cursor#45 ← phi( menu::@20/(byte*) print_char_cursor#49 ) (byte*) print_line_cursor#42 ← phi( menu::@20/(byte*) print_line_cursor#48 ) (byte*) print_screen#24 ← phi( menu::@20/(byte*) print_screen#28 ) @@ -3252,7 +3282,7 @@ menu::@21: scope:[menu] from menu::@20 menu::@3: scope:[menu] from menu::@21 menu::@22 (byte) form_fields_cnt#33 ← phi( menu::@21/(byte) form_fields_cnt#36 menu::@22/(byte) form_fields_cnt#37 ) (byte) key_right_debounce#18 ← phi( menu::@21/(byte) key_right_debounce#26 menu::@22/(byte) key_right_debounce#2 ) - (byte) form_field_idx#26 ← phi( menu::@21/(byte) form_field_idx#34 menu::@22/(byte) form_field_idx#2 ) + (byte) form_field_idx#28 ← phi( menu::@21/(byte) form_field_idx#38 menu::@22/(byte) form_field_idx#2 ) (byte) key_down_debounce#18 ← phi( menu::@21/(byte) key_down_debounce#26 menu::@22/(byte) key_down_debounce#2 ) (signed byte) form_cursor_count#21 ← phi( menu::@21/(signed byte) form_cursor_count#28 menu::@22/(signed byte) form_cursor_count#2 ) (byte*) print_char_cursor#38 ← phi( menu::@21/(byte*) print_char_cursor#45 menu::@22/(byte*) print_char_cursor#46 ) @@ -3265,20 +3295,20 @@ menu::@4: scope:[menu] from menu::@3 (byte*) print_char_cursor#57 ← phi( menu::@3/(byte*) print_char_cursor#38 ) (byte*) print_line_cursor#57 ← phi( menu::@3/(byte*) print_line_cursor#36 ) (byte*) print_screen#38 ← phi( menu::@3/(byte*) print_screen#20 ) - (byte) key_right_debounce#37 ← phi( menu::@3/(byte) key_right_debounce#18 ) - (byte) form_field_idx#43 ← phi( menu::@3/(byte) form_field_idx#26 ) - (byte) key_down_debounce#39 ← phi( menu::@3/(byte) key_down_debounce#18 ) - (signed byte) form_cursor_count#35 ← phi( menu::@3/(signed byte) form_cursor_count#21 ) + (byte) key_right_debounce#39 ← phi( menu::@3/(byte) key_right_debounce#18 ) + (byte) form_field_idx#47 ← phi( menu::@3/(byte) form_field_idx#28 ) + (byte) key_down_debounce#41 ← phi( menu::@3/(byte) key_down_debounce#18 ) + (signed byte) form_cursor_count#37 ← phi( menu::@3/(signed byte) form_cursor_count#21 ) to:menu::@6 menu::@6: scope:[menu] from menu::@4 menu::@7 (byte) form_fields_cnt#28 ← phi( menu::@4/(byte) form_fields_cnt#30 menu::@7/(byte) form_fields_cnt#31 ) (byte*) print_char_cursor#54 ← phi( menu::@4/(byte*) print_char_cursor#57 menu::@7/(byte*) print_char_cursor#58 ) (byte*) print_line_cursor#54 ← phi( menu::@4/(byte*) print_line_cursor#57 menu::@7/(byte*) print_line_cursor#58 ) (byte*) print_screen#34 ← phi( menu::@4/(byte*) print_screen#38 menu::@7/(byte*) print_screen#39 ) - (byte) key_right_debounce#27 ← phi( menu::@4/(byte) key_right_debounce#37 menu::@7/(byte) key_right_debounce#38 ) - (byte) form_field_idx#35 ← phi( menu::@4/(byte) form_field_idx#43 menu::@7/(byte) form_field_idx#44 ) - (byte) key_down_debounce#27 ← phi( menu::@4/(byte) key_down_debounce#39 menu::@7/(byte) key_down_debounce#40 ) - (signed byte) form_cursor_count#29 ← phi( menu::@4/(signed byte) form_cursor_count#35 menu::@7/(signed byte) form_cursor_count#36 ) + (byte) key_right_debounce#27 ← phi( menu::@4/(byte) key_right_debounce#39 menu::@7/(byte) key_right_debounce#40 ) + (byte) form_field_idx#39 ← phi( menu::@4/(byte) form_field_idx#47 menu::@7/(byte) form_field_idx#48 ) + (byte) key_down_debounce#27 ← phi( menu::@4/(byte) key_down_debounce#41 menu::@7/(byte) key_down_debounce#42 ) + (signed byte) form_cursor_count#29 ← phi( menu::@4/(signed byte) form_cursor_count#37 menu::@7/(signed byte) form_cursor_count#38 ) (boolean~) menu::$31 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 if((boolean~) menu::$31) goto menu::@7 to:menu::@8 @@ -3287,10 +3317,10 @@ menu::@7: scope:[menu] from menu::@6 (byte*) print_char_cursor#58 ← phi( menu::@6/(byte*) print_char_cursor#54 ) (byte*) print_line_cursor#58 ← phi( menu::@6/(byte*) print_line_cursor#54 ) (byte*) print_screen#39 ← phi( menu::@6/(byte*) print_screen#34 ) - (byte) key_right_debounce#38 ← phi( menu::@6/(byte) key_right_debounce#27 ) - (byte) form_field_idx#44 ← phi( menu::@6/(byte) form_field_idx#35 ) - (byte) key_down_debounce#40 ← phi( menu::@6/(byte) key_down_debounce#27 ) - (signed byte) form_cursor_count#36 ← phi( menu::@6/(signed byte) form_cursor_count#29 ) + (byte) key_right_debounce#40 ← phi( menu::@6/(byte) key_right_debounce#27 ) + (byte) form_field_idx#48 ← phi( menu::@6/(byte) form_field_idx#39 ) + (byte) key_down_debounce#42 ← phi( menu::@6/(byte) key_down_debounce#27 ) + (signed byte) form_cursor_count#38 ← phi( menu::@6/(signed byte) form_cursor_count#29 ) to:menu::@6 menu::@8: scope:[menu] from menu::@6 (byte) form_fields_cnt#26 ← phi( menu::@6/(byte) form_fields_cnt#28 ) @@ -3298,7 +3328,7 @@ menu::@8: scope:[menu] from menu::@6 (byte*) print_line_cursor#49 ← phi( menu::@6/(byte*) print_line_cursor#54 ) (byte*) print_screen#29 ← phi( menu::@6/(byte*) print_screen#34 ) (byte) key_right_debounce#17 ← phi( menu::@6/(byte) key_right_debounce#27 ) - (byte) form_field_idx#25 ← phi( menu::@6/(byte) form_field_idx#35 ) + (byte) form_field_idx#27 ← phi( menu::@6/(byte) form_field_idx#39 ) (byte) key_down_debounce#17 ← phi( menu::@6/(byte) key_down_debounce#27 ) (signed byte) form_cursor_count#20 ← phi( menu::@6/(signed byte) form_cursor_count#29 ) call form_control param-assignment @@ -3319,7 +3349,7 @@ menu::@22: scope:[menu] from menu::@8 to:menu::@3 menu::@return: scope:[menu] from menu::@3 (byte) key_right_debounce#11 ← phi( menu::@3/(byte) key_right_debounce#18 ) - (byte) form_field_idx#14 ← phi( menu::@3/(byte) form_field_idx#26 ) + (byte) form_field_idx#14 ← phi( menu::@3/(byte) form_field_idx#28 ) (byte) key_down_debounce#11 ← phi( menu::@3/(byte) key_down_debounce#18 ) (signed byte) form_cursor_count#13 ← phi( menu::@3/(signed byte) form_cursor_count#21 ) (byte*) print_char_cursor#29 ← phi( menu::@3/(byte*) print_char_cursor#38 ) @@ -3344,6 +3374,7 @@ menu::@return: scope:[menu] from menu::@3 (byte) form_fields_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) form_fields_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 17 } (byte[]) form_fields_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8 } + (byte[]) form_fields_max#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) 1, (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) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte[]) form_fields_val#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) key_down_debounce#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) key_right_debounce#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3414,19 +3445,19 @@ form_render_values::@return: scope:[form_render_values] from form_render_values to:@return form_control: scope:[form_control] from menu::@8 (byte) form_fields_cnt#24 ← phi( menu::@8/(byte) form_fields_cnt#26 ) - (byte) key_right_debounce#56 ← phi( menu::@8/(byte) key_right_debounce#17 ) - (byte) key_down_debounce#53 ← phi( menu::@8/(byte) key_down_debounce#17 ) + (byte) key_right_debounce#60 ← phi( menu::@8/(byte) key_right_debounce#17 ) + (byte) key_down_debounce#56 ← phi( menu::@8/(byte) key_down_debounce#17 ) (signed byte) form_cursor_count#22 ← phi( menu::@8/(signed byte) form_cursor_count#20 ) - (byte) form_field_idx#15 ← phi( menu::@8/(byte) form_field_idx#25 ) + (byte) form_field_idx#15 ← phi( menu::@8/(byte) form_field_idx#27 ) (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#15 call form_field_ptr param-assignment (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#1 - to:form_control::@28 -form_control::@28: scope:[form_control] from form_control + to:form_control::@32 +form_control::@32: scope:[form_control] from form_control (byte) form_fields_cnt#22 ← phi( form_control/(byte) form_fields_cnt#24 ) - (byte) form_field_idx#59 ← phi( form_control/(byte) form_field_idx#15 ) - (byte) key_right_debounce#54 ← phi( form_control/(byte) key_right_debounce#56 ) - (byte) key_down_debounce#48 ← phi( form_control/(byte) key_down_debounce#53 ) + (byte) form_field_idx#63 ← phi( form_control/(byte) form_field_idx#15 ) + (byte) key_right_debounce#58 ← phi( form_control/(byte) key_right_debounce#60 ) + (byte) key_down_debounce#51 ← phi( form_control/(byte) key_down_debounce#56 ) (signed byte) form_cursor_count#14 ← phi( form_control/(signed byte) form_cursor_count#22 ) (byte*) form_field_ptr::return#6 ← phi( form_control/(byte*) form_field_ptr::return#3 ) (byte*~) form_control::$0 ← (byte*) form_field_ptr::return#6 @@ -3435,64 +3466,64 @@ form_control::@28: scope:[form_control] from form_control (boolean~) form_control::$1 ← (signed byte) form_cursor_count#5 < (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$2 ← ! (boolean~) form_control::$1 if((boolean~) form_control::$2) goto form_control::@1 - to:form_control::@14 -form_control::@1: scope:[form_control] from form_control::@14 form_control::@28 - (byte) form_fields_cnt#19 ← phi( form_control::@14/(byte) form_fields_cnt#21 form_control::@28/(byte) form_fields_cnt#22 ) - (byte) form_field_idx#56 ← phi( form_control::@14/(byte) form_field_idx#58 form_control::@28/(byte) form_field_idx#59 ) - (byte) key_right_debounce#50 ← phi( form_control::@14/(byte) key_right_debounce#53 form_control::@28/(byte) key_right_debounce#54 ) - (byte) key_down_debounce#41 ← phi( form_control::@14/(byte) key_down_debounce#47 form_control::@28/(byte) key_down_debounce#48 ) - (byte*) form_control::field#5 ← phi( form_control::@14/(byte*) form_control::field#9 form_control::@28/(byte*) form_control::field#0 ) - (signed byte) form_cursor_count#15 ← phi( form_control::@14/(signed byte) form_cursor_count#6 form_control::@28/(signed byte) form_cursor_count#5 ) + to:form_control::@16 +form_control::@1: scope:[form_control] from form_control::@16 form_control::@32 + (byte) form_fields_cnt#19 ← phi( form_control::@16/(byte) form_fields_cnt#21 form_control::@32/(byte) form_fields_cnt#22 ) + (byte) form_field_idx#60 ← phi( form_control::@16/(byte) form_field_idx#62 form_control::@32/(byte) form_field_idx#63 ) + (byte) key_right_debounce#53 ← phi( form_control::@16/(byte) key_right_debounce#57 form_control::@32/(byte) key_right_debounce#58 ) + (byte) key_down_debounce#43 ← phi( form_control::@16/(byte) key_down_debounce#50 form_control::@32/(byte) key_down_debounce#51 ) + (byte*) form_control::field#5 ← phi( form_control::@16/(byte*) form_control::field#11 form_control::@32/(byte*) form_control::field#0 ) + (signed byte) form_cursor_count#15 ← phi( form_control::@16/(signed byte) form_cursor_count#6 form_control::@32/(signed byte) form_cursor_count#5 ) (signed word/signed byte/signed dword~) form_control::$3 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 (boolean~) form_control::$4 ← (signed byte) form_cursor_count#15 < (signed word/signed byte/signed dword~) form_control::$3 (boolean~) form_control::$5 ← ! (boolean~) form_control::$4 if((boolean~) form_control::$5) goto form_control::@2 - to:form_control::@15 -form_control::@14: scope:[form_control] from form_control::@28 - (byte) form_fields_cnt#21 ← phi( form_control::@28/(byte) form_fields_cnt#22 ) - (byte) form_field_idx#58 ← phi( form_control::@28/(byte) form_field_idx#59 ) - (byte) key_right_debounce#53 ← phi( form_control::@28/(byte) key_right_debounce#54 ) - (byte) key_down_debounce#47 ← phi( form_control::@28/(byte) key_down_debounce#48 ) - (byte*) form_control::field#9 ← phi( form_control::@28/(byte*) form_control::field#0 ) + to:form_control::@17 +form_control::@16: scope:[form_control] from form_control::@32 + (byte) form_fields_cnt#21 ← phi( form_control::@32/(byte) form_fields_cnt#22 ) + (byte) form_field_idx#62 ← phi( form_control::@32/(byte) form_field_idx#63 ) + (byte) key_right_debounce#57 ← phi( form_control::@32/(byte) key_right_debounce#58 ) + (byte) key_down_debounce#50 ← phi( form_control::@32/(byte) key_down_debounce#51 ) + (byte*) form_control::field#11 ← phi( form_control::@32/(byte*) form_control::field#0 ) (signed byte) form_cursor_count#6 ← (signed byte) FORM_CURSOR_BLINK#0 to:form_control::@1 form_control::@2: scope:[form_control] from form_control::@1 (byte) form_fields_cnt#17 ← phi( form_control::@1/(byte) form_fields_cnt#19 ) - (byte) form_field_idx#54 ← phi( form_control::@1/(byte) form_field_idx#56 ) - (signed byte) form_cursor_count#48 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) - (byte) key_right_debounce#46 ← phi( form_control::@1/(byte) key_right_debounce#50 ) - (byte) key_down_debounce#29 ← phi( form_control::@1/(byte) key_down_debounce#41 ) + (byte) form_field_idx#58 ← phi( form_control::@1/(byte) form_field_idx#60 ) + (signed byte) form_cursor_count#52 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) + (byte) key_right_debounce#49 ← phi( form_control::@1/(byte) key_right_debounce#53 ) + (byte) key_down_debounce#29 ← phi( form_control::@1/(byte) key_down_debounce#43 ) (byte*) form_control::field#1 ← phi( form_control::@1/(byte*) form_control::field#5 ) (byte~) form_control::$7 ← *((byte*) form_control::field#1) & (byte/signed byte/word/signed word/dword/signed dword) 127 *((byte*) form_control::field#1) ← (byte~) form_control::$7 to:form_control::@3 -form_control::@15: scope:[form_control] from form_control::@1 +form_control::@17: scope:[form_control] from form_control::@1 (byte) form_fields_cnt#16 ← phi( form_control::@1/(byte) form_fields_cnt#19 ) - (byte) form_field_idx#53 ← phi( form_control::@1/(byte) form_field_idx#56 ) - (signed byte) form_cursor_count#47 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) - (byte) key_right_debounce#45 ← phi( form_control::@1/(byte) key_right_debounce#50 ) - (byte) key_down_debounce#28 ← phi( form_control::@1/(byte) key_down_debounce#41 ) + (byte) form_field_idx#57 ← phi( form_control::@1/(byte) form_field_idx#60 ) + (signed byte) form_cursor_count#51 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) + (byte) key_right_debounce#48 ← phi( form_control::@1/(byte) key_right_debounce#53 ) + (byte) key_down_debounce#28 ← phi( form_control::@1/(byte) key_down_debounce#43 ) (byte*) form_control::field#2 ← phi( form_control::@1/(byte*) form_control::field#5 ) (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#2) | (byte/word/signed word/dword/signed dword) 128 *((byte*) form_control::field#2) ← (byte/word/dword~) form_control::$6 to:form_control::@3 -form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 - (byte) form_fields_cnt#14 ← phi( form_control::@15/(byte) form_fields_cnt#16 form_control::@2/(byte) form_fields_cnt#17 ) - (byte) form_field_idx#51 ← phi( form_control::@15/(byte) form_field_idx#53 form_control::@2/(byte) form_field_idx#54 ) - (signed byte) form_cursor_count#44 ← phi( form_control::@15/(signed byte) form_cursor_count#47 form_control::@2/(signed byte) form_cursor_count#48 ) - (byte*) form_control::field#12 ← phi( form_control::@15/(byte*) form_control::field#2 form_control::@2/(byte*) form_control::field#1 ) - (byte) key_right_debounce#39 ← phi( form_control::@15/(byte) key_right_debounce#45 form_control::@2/(byte) key_right_debounce#46 ) - (byte) key_down_debounce#19 ← phi( form_control::@15/(byte) key_down_debounce#28 form_control::@2/(byte) key_down_debounce#29 ) +form_control::@3: scope:[form_control] from form_control::@17 form_control::@2 + (byte) form_fields_cnt#14 ← phi( form_control::@17/(byte) form_fields_cnt#16 form_control::@2/(byte) form_fields_cnt#17 ) + (byte) form_field_idx#55 ← phi( form_control::@17/(byte) form_field_idx#57 form_control::@2/(byte) form_field_idx#58 ) + (signed byte) form_cursor_count#47 ← phi( form_control::@17/(signed byte) form_cursor_count#51 form_control::@2/(signed byte) form_cursor_count#52 ) + (byte*) form_control::field#15 ← phi( form_control::@17/(byte*) form_control::field#2 form_control::@2/(byte*) form_control::field#1 ) + (byte) key_right_debounce#41 ← phi( form_control::@17/(byte) key_right_debounce#48 form_control::@2/(byte) key_right_debounce#49 ) + (byte) key_down_debounce#19 ← phi( form_control::@17/(byte) key_down_debounce#28 form_control::@2/(byte) key_down_debounce#29 ) (byte) keyboard_key_pressed::key#0 ← (byte) KEY_CRSR_DOWN#0 call keyboard_key_pressed param-assignment (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#1 - to:form_control::@29 -form_control::@29: scope:[form_control] from form_control::@3 + to:form_control::@33 +form_control::@33: scope:[form_control] from form_control::@3 (byte) form_fields_cnt#12 ← phi( form_control::@3/(byte) form_fields_cnt#14 ) - (byte) form_field_idx#48 ← phi( form_control::@3/(byte) form_field_idx#51 ) - (signed byte) form_cursor_count#40 ← phi( form_control::@3/(signed byte) form_cursor_count#44 ) - (byte*) form_control::field#10 ← phi( form_control::@3/(byte*) form_control::field#12 ) - (byte) key_right_debounce#28 ← phi( form_control::@3/(byte) key_right_debounce#39 ) + (byte) form_field_idx#52 ← phi( form_control::@3/(byte) form_field_idx#55 ) + (signed byte) form_cursor_count#43 ← phi( form_control::@3/(signed byte) form_cursor_count#47 ) + (byte*) form_control::field#12 ← phi( form_control::@3/(byte*) form_control::field#15 ) + (byte) key_right_debounce#28 ← phi( form_control::@3/(byte) key_right_debounce#41 ) (byte) key_down_debounce#12 ← phi( form_control::@3/(byte) key_down_debounce#19 ) (byte) keyboard_key_pressed::return#7 ← phi( form_control::@3/(byte) keyboard_key_pressed::return#2 ) (byte~) form_control::$8 ← (byte) keyboard_key_pressed::return#7 @@ -3500,22 +3531,22 @@ form_control::@29: scope:[form_control] from form_control::@3 (boolean~) form_control::$9 ← (byte) form_control::key_down#0 != (byte) key_down_debounce#12 (boolean~) form_control::$10 ← ! (boolean~) form_control::$9 if((boolean~) form_control::$10) goto form_control::@4 - to:form_control::@17 -form_control::@4: scope:[form_control] from form_control::@29 form_control::@5 - (byte*) form_control::field#16 ← phi( form_control::@29/(byte*) form_control::field#10 form_control::@5/(byte*) form_control::field#17 ) - (byte) form_field_idx#45 ← phi( form_control::@29/(byte) form_field_idx#48 form_control::@5/(byte) form_field_idx#49 ) - (byte) key_down_debounce#42 ← phi( form_control::@29/(byte) key_down_debounce#12 form_control::@5/(byte) key_down_debounce#49 ) - (signed byte) form_cursor_count#37 ← phi( form_control::@29/(signed byte) form_cursor_count#40 form_control::@5/(signed byte) form_cursor_count#41 ) - (byte) key_right_debounce#19 ← phi( form_control::@29/(byte) key_right_debounce#28 form_control::@5/(byte) key_right_debounce#29 ) + to:form_control::@19 +form_control::@4: scope:[form_control] from form_control::@33 form_control::@5 + (byte*) form_control::field#20 ← phi( form_control::@33/(byte*) form_control::field#12 form_control::@5/(byte*) form_control::field#21 ) + (byte) form_field_idx#49 ← phi( form_control::@33/(byte) form_field_idx#52 form_control::@5/(byte) form_field_idx#53 ) + (byte) key_down_debounce#44 ← phi( form_control::@33/(byte) key_down_debounce#12 form_control::@5/(byte) key_down_debounce#52 ) + (signed byte) form_cursor_count#39 ← phi( form_control::@33/(signed byte) form_cursor_count#43 form_control::@5/(signed byte) form_cursor_count#44 ) + (byte) key_right_debounce#19 ← phi( form_control::@33/(byte) key_right_debounce#28 form_control::@5/(byte) key_right_debounce#29 ) (byte) keyboard_key_pressed::key#1 ← (byte) KEY_CRSR_RIGHT#0 call keyboard_key_pressed param-assignment (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#1 - to:form_control::@30 -form_control::@30: scope:[form_control] from form_control::@4 - (byte*) form_control::field#15 ← phi( form_control::@4/(byte*) form_control::field#16 ) - (byte) form_field_idx#39 ← phi( form_control::@4/(byte) form_field_idx#45 ) - (byte) key_down_debounce#34 ← phi( form_control::@4/(byte) key_down_debounce#42 ) - (signed byte) form_cursor_count#30 ← phi( form_control::@4/(signed byte) form_cursor_count#37 ) + to:form_control::@34 +form_control::@34: scope:[form_control] from form_control::@4 + (byte*) form_control::field#19 ← phi( form_control::@4/(byte*) form_control::field#20 ) + (byte) form_field_idx#43 ← phi( form_control::@4/(byte) form_field_idx#49 ) + (byte) key_down_debounce#34 ← phi( form_control::@4/(byte) key_down_debounce#44 ) + (signed byte) form_cursor_count#30 ← phi( form_control::@4/(signed byte) form_cursor_count#39 ) (byte) key_right_debounce#12 ← phi( form_control::@4/(byte) key_right_debounce#19 ) (byte) keyboard_key_pressed::return#8 ← phi( form_control::@4/(byte) keyboard_key_pressed::return#3 ) (byte~) form_control::$23 ← (byte) keyboard_key_pressed::return#8 @@ -3523,186 +3554,218 @@ form_control::@30: scope:[form_control] from form_control::@4 (boolean~) form_control::$24 ← (byte) form_control::key_right#0 != (byte) key_right_debounce#12 (boolean~) form_control::$25 ← ! (boolean~) form_control::$24 if((boolean~) form_control::$25) goto form_control::@10 - to:form_control::@24 -form_control::@17: scope:[form_control] from form_control::@29 - (signed byte) form_cursor_count#45 ← phi( form_control::@29/(signed byte) form_cursor_count#40 ) - (byte) form_fields_cnt#10 ← phi( form_control::@29/(byte) form_fields_cnt#12 ) - (byte) form_field_idx#46 ← phi( form_control::@29/(byte) form_field_idx#48 ) - (byte) key_right_debounce#40 ← phi( form_control::@29/(byte) key_right_debounce#28 ) - (byte*) form_control::field#6 ← phi( form_control::@29/(byte*) form_control::field#10 ) - (byte) form_control::key_down#1 ← phi( form_control::@29/(byte) form_control::key_down#0 ) + to:form_control::@26 +form_control::@19: scope:[form_control] from form_control::@33 + (signed byte) form_cursor_count#48 ← phi( form_control::@33/(signed byte) form_cursor_count#43 ) + (byte) form_fields_cnt#10 ← phi( form_control::@33/(byte) form_fields_cnt#12 ) + (byte) form_field_idx#50 ← phi( form_control::@33/(byte) form_field_idx#52 ) + (byte) key_right_debounce#42 ← phi( form_control::@33/(byte) key_right_debounce#28 ) + (byte*) form_control::field#6 ← phi( form_control::@33/(byte*) form_control::field#12 ) + (byte) form_control::key_down#1 ← phi( form_control::@33/(byte) form_control::key_down#0 ) (byte) key_down_debounce#5 ← (byte) form_control::key_down#1 (boolean~) form_control::$11 ← (byte) form_control::key_down#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$12 ← ! (boolean~) form_control::$11 if((boolean~) form_control::$12) goto form_control::@5 - to:form_control::@18 -form_control::@5: scope:[form_control] from form_control::@17 - (byte*) form_control::field#17 ← phi( form_control::@17/(byte*) form_control::field#6 ) - (byte) form_field_idx#49 ← phi( form_control::@17/(byte) form_field_idx#46 ) - (byte) key_down_debounce#49 ← phi( form_control::@17/(byte) key_down_debounce#5 ) - (signed byte) form_cursor_count#41 ← phi( form_control::@17/(signed byte) form_cursor_count#45 ) - (byte) key_right_debounce#29 ← phi( form_control::@17/(byte) key_right_debounce#40 ) + to:form_control::@20 +form_control::@5: scope:[form_control] from form_control::@19 + (byte*) form_control::field#21 ← phi( form_control::@19/(byte*) form_control::field#6 ) + (byte) form_field_idx#53 ← phi( form_control::@19/(byte) form_field_idx#50 ) + (byte) key_down_debounce#52 ← phi( form_control::@19/(byte) key_down_debounce#5 ) + (signed byte) form_cursor_count#44 ← phi( form_control::@19/(signed byte) form_cursor_count#48 ) + (byte) key_right_debounce#29 ← phi( form_control::@19/(byte) key_right_debounce#42 ) to:form_control::@4 -form_control::@18: scope:[form_control] from form_control::@17 - (byte) key_right_debounce#51 ← phi( form_control::@17/(byte) key_right_debounce#40 ) - (byte) key_down_debounce#54 ← phi( form_control::@17/(byte) key_down_debounce#5 ) - (byte) form_fields_cnt#8 ← phi( form_control::@17/(byte) form_fields_cnt#10 ) - (byte) form_field_idx#36 ← phi( form_control::@17/(byte) form_field_idx#46 ) - (byte*) form_control::field#3 ← phi( form_control::@17/(byte*) form_control::field#6 ) +form_control::@20: scope:[form_control] from form_control::@19 + (byte) key_right_debounce#54 ← phi( form_control::@19/(byte) key_right_debounce#42 ) + (byte) key_down_debounce#57 ← phi( form_control::@19/(byte) key_down_debounce#5 ) + (byte) form_fields_cnt#8 ← phi( form_control::@19/(byte) form_fields_cnt#10 ) + (byte) form_field_idx#40 ← phi( form_control::@19/(byte) form_field_idx#50 ) + (byte*) form_control::field#3 ← phi( form_control::@19/(byte*) form_control::field#6 ) (byte~) form_control::$13 ← *((byte*) form_control::field#3) & (byte/signed byte/word/signed word/dword/signed dword) 127 *((byte*) form_control::field#3) ← (byte~) form_control::$13 (byte) keyboard_key_pressed::key#2 ← (byte) KEY_RSHIFT#0 call keyboard_key_pressed param-assignment (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#1 - to:form_control::@31 -form_control::@31: scope:[form_control] from form_control::@18 - (byte) key_right_debounce#47 ← phi( form_control::@18/(byte) key_right_debounce#51 ) - (byte) key_down_debounce#50 ← phi( form_control::@18/(byte) key_down_debounce#54 ) - (byte) form_fields_cnt#5 ← phi( form_control::@18/(byte) form_fields_cnt#8 ) - (byte) form_field_idx#27 ← phi( form_control::@18/(byte) form_field_idx#36 ) - (byte) keyboard_key_pressed::return#9 ← phi( form_control::@18/(byte) keyboard_key_pressed::return#4 ) + to:form_control::@35 +form_control::@35: scope:[form_control] from form_control::@20 + (byte) key_right_debounce#50 ← phi( form_control::@20/(byte) key_right_debounce#54 ) + (byte) key_down_debounce#53 ← phi( form_control::@20/(byte) key_down_debounce#57 ) + (byte) form_fields_cnt#5 ← phi( form_control::@20/(byte) form_fields_cnt#8 ) + (byte) form_field_idx#29 ← phi( form_control::@20/(byte) form_field_idx#40 ) + (byte) keyboard_key_pressed::return#9 ← phi( form_control::@20/(byte) keyboard_key_pressed::return#4 ) (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#9 (boolean~) form_control::$15 ← (byte~) form_control::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$16 ← ! (boolean~) form_control::$15 if((boolean~) form_control::$16) goto form_control::@6 - to:form_control::@19 -form_control::@6: scope:[form_control] from form_control::@31 - (byte) key_right_debounce#42 ← phi( form_control::@31/(byte) key_right_debounce#47 ) - (byte) key_down_debounce#44 ← phi( form_control::@31/(byte) key_down_debounce#50 ) - (byte) form_fields_cnt#6 ← phi( form_control::@31/(byte) form_fields_cnt#5 ) - (byte) form_field_idx#16 ← phi( form_control::@31/(byte) form_field_idx#27 ) + to:form_control::@21 +form_control::@6: scope:[form_control] from form_control::@35 + (byte) key_right_debounce#44 ← phi( form_control::@35/(byte) key_right_debounce#50 ) + (byte) key_down_debounce#46 ← phi( form_control::@35/(byte) key_down_debounce#53 ) + (byte) form_fields_cnt#6 ← phi( form_control::@35/(byte) form_fields_cnt#5 ) + (byte) form_field_idx#16 ← phi( form_control::@35/(byte) form_field_idx#29 ) (byte) form_field_idx#5 ← -- (byte) form_field_idx#16 (boolean~) form_control::$19 ← (byte) form_field_idx#5 == (byte/word/signed word/dword/signed dword) 255 (boolean~) form_control::$20 ← ! (boolean~) form_control::$19 if((boolean~) form_control::$20) goto form_control::@9 - to:form_control::@22 -form_control::@19: scope:[form_control] from form_control::@31 - (byte) key_right_debounce#41 ← phi( form_control::@31/(byte) key_right_debounce#47 ) - (byte) key_down_debounce#43 ← phi( form_control::@31/(byte) key_down_debounce#50 ) - (byte) form_fields_cnt#2 ← phi( form_control::@31/(byte) form_fields_cnt#5 ) - (byte) form_field_idx#17 ← phi( form_control::@31/(byte) form_field_idx#27 ) + to:form_control::@24 +form_control::@21: scope:[form_control] from form_control::@35 + (byte) key_right_debounce#43 ← phi( form_control::@35/(byte) key_right_debounce#50 ) + (byte) key_down_debounce#45 ← phi( form_control::@35/(byte) key_down_debounce#53 ) + (byte) form_fields_cnt#2 ← phi( form_control::@35/(byte) form_fields_cnt#5 ) + (byte) form_field_idx#17 ← phi( form_control::@35/(byte) form_field_idx#29 ) (byte) form_field_idx#6 ← ++ (byte) form_field_idx#17 (boolean~) form_control::$17 ← (byte) form_field_idx#6 == (byte) form_fields_cnt#2 (boolean~) form_control::$18 ← ! (boolean~) form_control::$17 if((boolean~) form_control::$18) goto form_control::@7 - to:form_control::@20 -form_control::@7: scope:[form_control] from form_control::@19 - (byte) key_right_debounce#32 ← phi( form_control::@19/(byte) key_right_debounce#41 ) - (byte) form_field_idx#37 ← phi( form_control::@19/(byte) form_field_idx#6 ) - (byte) key_down_debounce#32 ← phi( form_control::@19/(byte) key_down_debounce#43 ) + to:form_control::@22 +form_control::@7: scope:[form_control] from form_control::@21 + (byte) key_right_debounce#32 ← phi( form_control::@21/(byte) key_right_debounce#43 ) + (byte) form_field_idx#41 ← phi( form_control::@21/(byte) form_field_idx#6 ) + (byte) key_down_debounce#32 ← phi( form_control::@21/(byte) key_down_debounce#45 ) to:form_control::@8 -form_control::@20: scope:[form_control] from form_control::@19 - (byte) key_right_debounce#30 ← phi( form_control::@19/(byte) key_right_debounce#41 ) - (byte) key_down_debounce#30 ← phi( form_control::@19/(byte) key_down_debounce#43 ) +form_control::@22: scope:[form_control] from form_control::@21 + (byte) key_right_debounce#30 ← phi( form_control::@21/(byte) key_right_debounce#43 ) + (byte) key_down_debounce#30 ← phi( form_control::@21/(byte) key_down_debounce#45 ) (byte) form_field_idx#7 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:form_control::@8 -form_control::@8: scope:[form_control] from form_control::@20 form_control::@22 form_control::@7 form_control::@9 - (byte) key_right_debounce#23 ← phi( form_control::@20/(byte) key_right_debounce#30 form_control::@22/(byte) key_right_debounce#31 form_control::@7/(byte) key_right_debounce#32 form_control::@9/(byte) key_right_debounce#33 ) - (byte) form_field_idx#30 ← phi( form_control::@20/(byte) form_field_idx#7 form_control::@22/(byte) form_field_idx#8 form_control::@7/(byte) form_field_idx#37 form_control::@9/(byte) form_field_idx#38 ) - (byte) key_down_debounce#23 ← phi( form_control::@20/(byte) key_down_debounce#30 form_control::@22/(byte) key_down_debounce#31 form_control::@7/(byte) key_down_debounce#32 form_control::@9/(byte) key_down_debounce#33 ) +form_control::@8: scope:[form_control] from form_control::@22 form_control::@24 form_control::@7 form_control::@9 + (byte) key_right_debounce#23 ← phi( form_control::@22/(byte) key_right_debounce#30 form_control::@24/(byte) key_right_debounce#31 form_control::@7/(byte) key_right_debounce#32 form_control::@9/(byte) key_right_debounce#33 ) + (byte) form_field_idx#32 ← phi( form_control::@22/(byte) form_field_idx#7 form_control::@24/(byte) form_field_idx#8 form_control::@7/(byte) form_field_idx#41 form_control::@9/(byte) form_field_idx#42 ) + (byte) key_down_debounce#23 ← phi( form_control::@22/(byte) key_down_debounce#30 form_control::@24/(byte) key_down_debounce#31 form_control::@7/(byte) key_down_debounce#32 form_control::@9/(byte) key_down_debounce#33 ) (signed word/signed byte/signed dword~) form_control::$22 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 (signed byte) form_cursor_count#7 ← (signed word/signed byte/signed dword~) form_control::$22 to:form_control::@return form_control::@9: scope:[form_control] from form_control::@6 - (byte) key_right_debounce#33 ← phi( form_control::@6/(byte) key_right_debounce#42 ) - (byte) form_field_idx#38 ← phi( form_control::@6/(byte) form_field_idx#5 ) - (byte) key_down_debounce#33 ← phi( form_control::@6/(byte) key_down_debounce#44 ) + (byte) key_right_debounce#33 ← phi( form_control::@6/(byte) key_right_debounce#44 ) + (byte) form_field_idx#42 ← phi( form_control::@6/(byte) form_field_idx#5 ) + (byte) key_down_debounce#33 ← phi( form_control::@6/(byte) key_down_debounce#46 ) to:form_control::@8 -form_control::@22: scope:[form_control] from form_control::@6 - (byte) key_right_debounce#31 ← phi( form_control::@6/(byte) key_right_debounce#42 ) - (byte) key_down_debounce#31 ← phi( form_control::@6/(byte) key_down_debounce#44 ) +form_control::@24: scope:[form_control] from form_control::@6 + (byte) key_right_debounce#31 ← phi( form_control::@6/(byte) key_right_debounce#44 ) + (byte) key_down_debounce#31 ← phi( form_control::@6/(byte) key_down_debounce#46 ) (byte) form_fields_cnt#3 ← phi( form_control::@6/(byte) form_fields_cnt#6 ) (byte/signed word/word/dword/signed dword~) form_control::$21 ← (byte) form_fields_cnt#3 - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) form_field_idx#8 ← (byte/signed word/word/dword/signed dword~) form_control::$21 to:form_control::@8 -form_control::@return: scope:[form_control] from form_control::@10 form_control::@11 form_control::@13 form_control::@8 - (byte) key_right_debounce#13 ← phi( form_control::@10/(byte) key_right_debounce#20 form_control::@11/(byte) key_right_debounce#21 form_control::@13/(byte) key_right_debounce#22 form_control::@8/(byte) key_right_debounce#23 ) - (byte) form_field_idx#18 ← phi( form_control::@10/(byte) form_field_idx#28 form_control::@11/(byte) form_field_idx#29 form_control::@13/(byte) form_field_idx#21 form_control::@8/(byte) form_field_idx#30 ) - (byte) key_down_debounce#13 ← phi( form_control::@10/(byte) key_down_debounce#20 form_control::@11/(byte) key_down_debounce#21 form_control::@13/(byte) key_down_debounce#22 form_control::@8/(byte) key_down_debounce#23 ) - (signed byte) form_cursor_count#16 ← phi( form_control::@10/(signed byte) form_cursor_count#23 form_control::@11/(signed byte) form_cursor_count#24 form_control::@13/(signed byte) form_cursor_count#25 form_control::@8/(signed byte) form_cursor_count#7 ) +form_control::@return: scope:[form_control] from form_control::@10 form_control::@11 form_control::@14 form_control::@8 + (byte) key_right_debounce#13 ← phi( form_control::@10/(byte) key_right_debounce#20 form_control::@11/(byte) key_right_debounce#21 form_control::@14/(byte) key_right_debounce#22 form_control::@8/(byte) key_right_debounce#23 ) + (byte) form_field_idx#18 ← phi( form_control::@10/(byte) form_field_idx#30 form_control::@11/(byte) form_field_idx#31 form_control::@14/(byte) form_field_idx#22 form_control::@8/(byte) form_field_idx#32 ) + (byte) key_down_debounce#13 ← phi( form_control::@10/(byte) key_down_debounce#20 form_control::@11/(byte) key_down_debounce#21 form_control::@14/(byte) key_down_debounce#22 form_control::@8/(byte) key_down_debounce#23 ) + (signed byte) form_cursor_count#16 ← phi( form_control::@10/(signed byte) form_cursor_count#23 form_control::@11/(signed byte) form_cursor_count#24 form_control::@14/(signed byte) form_cursor_count#25 form_control::@8/(signed byte) form_cursor_count#7 ) (signed byte) form_cursor_count#8 ← (signed byte) form_cursor_count#16 (byte) key_down_debounce#6 ← (byte) key_down_debounce#13 (byte) form_field_idx#9 ← (byte) form_field_idx#18 (byte) key_right_debounce#5 ← (byte) key_right_debounce#13 return to:@return -form_control::@10: scope:[form_control] from form_control::@30 - (byte) key_right_debounce#20 ← phi( form_control::@30/(byte) key_right_debounce#12 ) - (byte) form_field_idx#28 ← phi( form_control::@30/(byte) form_field_idx#39 ) - (byte) key_down_debounce#20 ← phi( form_control::@30/(byte) key_down_debounce#34 ) - (signed byte) form_cursor_count#23 ← phi( form_control::@30/(signed byte) form_cursor_count#30 ) +form_control::@10: scope:[form_control] from form_control::@34 + (byte) key_right_debounce#20 ← phi( form_control::@34/(byte) key_right_debounce#12 ) + (byte) form_field_idx#30 ← phi( form_control::@34/(byte) form_field_idx#43 ) + (byte) key_down_debounce#20 ← phi( form_control::@34/(byte) key_down_debounce#34 ) + (signed byte) form_cursor_count#23 ← phi( form_control::@34/(signed byte) form_cursor_count#30 ) to:form_control::@return -form_control::@24: scope:[form_control] from form_control::@30 - (byte*) form_control::field#14 ← phi( form_control::@30/(byte*) form_control::field#15 ) - (byte) form_field_idx#40 ← phi( form_control::@30/(byte) form_field_idx#39 ) - (byte) key_down_debounce#35 ← phi( form_control::@30/(byte) key_down_debounce#34 ) - (signed byte) form_cursor_count#31 ← phi( form_control::@30/(signed byte) form_cursor_count#30 ) - (byte) form_control::key_right#1 ← phi( form_control::@30/(byte) form_control::key_right#0 ) +form_control::@26: scope:[form_control] from form_control::@34 + (byte*) form_control::field#18 ← phi( form_control::@34/(byte*) form_control::field#19 ) + (byte) form_field_idx#44 ← phi( form_control::@34/(byte) form_field_idx#43 ) + (byte) key_down_debounce#35 ← phi( form_control::@34/(byte) key_down_debounce#34 ) + (signed byte) form_cursor_count#31 ← phi( form_control::@34/(signed byte) form_cursor_count#30 ) + (byte) form_control::key_right#1 ← phi( form_control::@34/(byte) form_control::key_right#0 ) (byte) key_right_debounce#6 ← (byte) form_control::key_right#1 (boolean~) form_control::$26 ← (byte) form_control::key_right#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$27 ← ! (boolean~) form_control::$26 if((boolean~) form_control::$27) goto form_control::@11 - to:form_control::@25 -form_control::@11: scope:[form_control] from form_control::@24 - (byte) key_right_debounce#21 ← phi( form_control::@24/(byte) key_right_debounce#6 ) - (byte) form_field_idx#29 ← phi( form_control::@24/(byte) form_field_idx#40 ) - (byte) key_down_debounce#21 ← phi( form_control::@24/(byte) key_down_debounce#35 ) - (signed byte) form_cursor_count#24 ← phi( form_control::@24/(signed byte) form_cursor_count#31 ) + to:form_control::@27 +form_control::@11: scope:[form_control] from form_control::@26 + (byte) key_right_debounce#21 ← phi( form_control::@26/(byte) key_right_debounce#6 ) + (byte) form_field_idx#31 ← phi( form_control::@26/(byte) form_field_idx#44 ) + (byte) key_down_debounce#21 ← phi( form_control::@26/(byte) key_down_debounce#35 ) + (signed byte) form_cursor_count#24 ← phi( form_control::@26/(signed byte) form_cursor_count#31 ) to:form_control::@return -form_control::@25: scope:[form_control] from form_control::@24 - (byte) key_right_debounce#48 ← phi( form_control::@24/(byte) key_right_debounce#6 ) - (byte) key_down_debounce#51 ← phi( form_control::@24/(byte) key_down_debounce#35 ) - (signed byte) form_cursor_count#42 ← phi( form_control::@24/(signed byte) form_cursor_count#31 ) - (byte*) form_control::field#13 ← phi( form_control::@24/(byte*) form_control::field#14 ) - (byte) form_field_idx#41 ← phi( form_control::@24/(byte) form_field_idx#40 ) +form_control::@27: scope:[form_control] from form_control::@26 + (byte) key_right_debounce#55 ← phi( form_control::@26/(byte) key_right_debounce#6 ) + (byte) key_down_debounce#58 ← phi( form_control::@26/(byte) key_down_debounce#35 ) + (signed byte) form_cursor_count#49 ← phi( form_control::@26/(signed byte) form_cursor_count#31 ) + (byte*) form_control::field#17 ← phi( form_control::@26/(byte*) form_control::field#18 ) + (byte) form_field_idx#45 ← phi( form_control::@26/(byte) form_field_idx#44 ) (byte) keyboard_key_pressed::key#3 ← (byte) KEY_RSHIFT#0 call keyboard_key_pressed param-assignment (byte) keyboard_key_pressed::return#5 ← (byte) keyboard_key_pressed::return#1 - to:form_control::@32 -form_control::@32: scope:[form_control] from form_control::@25 - (byte) key_right_debounce#43 ← phi( form_control::@25/(byte) key_right_debounce#48 ) - (byte) key_down_debounce#45 ← phi( form_control::@25/(byte) key_down_debounce#51 ) - (signed byte) form_cursor_count#38 ← phi( form_control::@25/(signed byte) form_cursor_count#42 ) - (byte*) form_control::field#11 ← phi( form_control::@25/(byte*) form_control::field#13 ) - (byte) form_field_idx#31 ← phi( form_control::@25/(byte) form_field_idx#41 ) - (byte) keyboard_key_pressed::return#10 ← phi( form_control::@25/(byte) keyboard_key_pressed::return#5 ) + to:form_control::@36 +form_control::@36: scope:[form_control] from form_control::@27 + (byte) key_right_debounce#51 ← phi( form_control::@27/(byte) key_right_debounce#55 ) + (byte) key_down_debounce#54 ← phi( form_control::@27/(byte) key_down_debounce#58 ) + (signed byte) form_cursor_count#45 ← phi( form_control::@27/(signed byte) form_cursor_count#49 ) + (byte*) form_control::field#16 ← phi( form_control::@27/(byte*) form_control::field#17 ) + (byte) form_field_idx#33 ← phi( form_control::@27/(byte) form_field_idx#45 ) + (byte) keyboard_key_pressed::return#10 ← phi( form_control::@27/(byte) keyboard_key_pressed::return#5 ) (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 if((boolean~) form_control::$30) goto form_control::@12 - to:form_control::@26 -form_control::@12: scope:[form_control] from form_control::@32 - (byte) key_right_debounce#34 ← phi( form_control::@32/(byte) key_right_debounce#43 ) - (byte) key_down_debounce#36 ← phi( form_control::@32/(byte) key_down_debounce#45 ) - (signed byte) form_cursor_count#32 ← phi( form_control::@32/(signed byte) form_cursor_count#38 ) - (byte*) form_control::field#7 ← phi( form_control::@32/(byte*) form_control::field#11 ) - (byte) form_field_idx#19 ← phi( form_control::@32/(byte) form_field_idx#31 ) - (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) - (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 - *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) ← (byte/word/dword~) form_control::$34 - to:form_control::@13 -form_control::@26: scope:[form_control] from form_control::@32 - (byte) key_right_debounce#35 ← phi( form_control::@32/(byte) key_right_debounce#43 ) - (byte) key_down_debounce#37 ← phi( form_control::@32/(byte) key_down_debounce#45 ) - (signed byte) form_cursor_count#33 ← phi( form_control::@32/(signed byte) form_cursor_count#38 ) - (byte*) form_control::field#8 ← phi( form_control::@32/(byte*) form_control::field#11 ) - (byte) form_field_idx#20 ← phi( form_control::@32/(byte) form_field_idx#31 ) - (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 - *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) ← (byte/word/dword~) form_control::$32 - to:form_control::@13 -form_control::@13: scope:[form_control] from form_control::@12 form_control::@26 - (byte) key_right_debounce#22 ← phi( form_control::@12/(byte) key_right_debounce#34 form_control::@26/(byte) key_right_debounce#35 ) - (byte) key_down_debounce#22 ← phi( form_control::@12/(byte) key_down_debounce#36 form_control::@26/(byte) key_down_debounce#37 ) - (signed byte) form_cursor_count#25 ← phi( form_control::@12/(signed byte) form_cursor_count#32 form_control::@26/(signed byte) form_cursor_count#33 ) - (byte*) form_control::field#4 ← phi( form_control::@12/(byte*) form_control::field#7 form_control::@26/(byte*) form_control::field#8 ) - (byte) form_field_idx#21 ← phi( form_control::@12/(byte) form_field_idx#19 form_control::@26/(byte) form_field_idx#20 ) - *((byte*) form_control::field#4) ← *((byte[]) print_hextab#0 + *((byte[]) form_fields_val#0 + (byte) form_field_idx#21)) + to:form_control::@28 +form_control::@12: scope:[form_control] from form_control::@36 + (byte) key_right_debounce#46 ← phi( form_control::@36/(byte) key_right_debounce#51 ) + (byte) key_down_debounce#48 ← phi( form_control::@36/(byte) key_down_debounce#54 ) + (signed byte) form_cursor_count#41 ← phi( form_control::@36/(signed byte) form_cursor_count#45 ) + (byte*) form_control::field#14 ← phi( form_control::@36/(byte*) form_control::field#16 ) + (byte) form_field_idx#19 ← phi( form_control::@36/(byte) form_field_idx#33 ) + *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) ← -- *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) + (boolean~) form_control::$33 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$34 ← ! (boolean~) form_control::$33 + if((boolean~) form_control::$34) goto form_control::@15 + to:form_control::@31 +form_control::@28: scope:[form_control] from form_control::@36 + (byte) key_right_debounce#45 ← phi( form_control::@36/(byte) key_right_debounce#51 ) + (byte) key_down_debounce#47 ← phi( form_control::@36/(byte) key_down_debounce#54 ) + (signed byte) form_cursor_count#40 ← phi( form_control::@36/(signed byte) form_cursor_count#45 ) + (byte*) form_control::field#13 ← phi( form_control::@36/(byte*) form_control::field#16 ) + (byte) form_field_idx#20 ← phi( form_control::@36/(byte) form_field_idx#33 ) + *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) ← ++ *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) + (boolean~) form_control::$31 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) > *((byte[]) form_fields_max#0 + (byte) form_field_idx#20) + (boolean~) form_control::$32 ← ! (boolean~) form_control::$31 + if((boolean~) form_control::$32) goto form_control::@13 + to:form_control::@29 +form_control::@13: scope:[form_control] from form_control::@28 + (byte) key_right_debounce#34 ← phi( form_control::@28/(byte) key_right_debounce#45 ) + (byte) key_down_debounce#36 ← phi( form_control::@28/(byte) key_down_debounce#47 ) + (signed byte) form_cursor_count#32 ← phi( form_control::@28/(signed byte) form_cursor_count#40 ) + (byte*) form_control::field#7 ← phi( form_control::@28/(byte*) form_control::field#13 ) + (byte) form_field_idx#34 ← phi( form_control::@28/(byte) form_field_idx#20 ) + to:form_control::@14 +form_control::@29: scope:[form_control] from form_control::@28 + (byte) key_right_debounce#36 ← phi( form_control::@28/(byte) key_right_debounce#45 ) + (byte) key_down_debounce#38 ← phi( form_control::@28/(byte) key_down_debounce#47 ) + (signed byte) form_cursor_count#34 ← phi( form_control::@28/(signed byte) form_cursor_count#40 ) + (byte*) form_control::field#9 ← phi( form_control::@28/(byte*) form_control::field#13 ) + (byte) form_field_idx#21 ← phi( form_control::@28/(byte) form_field_idx#20 ) + *((byte[]) form_fields_val#0 + (byte) form_field_idx#21) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_control::@14 +form_control::@14: scope:[form_control] from form_control::@13 form_control::@15 form_control::@29 form_control::@31 + (byte) key_right_debounce#22 ← phi( form_control::@13/(byte) key_right_debounce#34 form_control::@15/(byte) key_right_debounce#35 form_control::@29/(byte) key_right_debounce#36 form_control::@31/(byte) key_right_debounce#37 ) + (byte) key_down_debounce#22 ← phi( form_control::@13/(byte) key_down_debounce#36 form_control::@15/(byte) key_down_debounce#37 form_control::@29/(byte) key_down_debounce#38 form_control::@31/(byte) key_down_debounce#39 ) + (signed byte) form_cursor_count#25 ← phi( form_control::@13/(signed byte) form_cursor_count#32 form_control::@15/(signed byte) form_cursor_count#33 form_control::@29/(signed byte) form_cursor_count#34 form_control::@31/(signed byte) form_cursor_count#35 ) + (byte*) form_control::field#4 ← phi( form_control::@13/(byte*) form_control::field#7 form_control::@15/(byte*) form_control::field#8 form_control::@29/(byte*) form_control::field#9 form_control::@31/(byte*) form_control::field#10 ) + (byte) form_field_idx#22 ← phi( form_control::@13/(byte) form_field_idx#34 form_control::@15/(byte) form_field_idx#35 form_control::@29/(byte) form_field_idx#21 form_control::@31/(byte) form_field_idx#23 ) + *((byte*) form_control::field#4) ← *((byte[]) print_hextab#0 + *((byte[]) form_fields_val#0 + (byte) form_field_idx#22)) to:form_control::@return +form_control::@15: scope:[form_control] from form_control::@12 + (byte) key_right_debounce#35 ← phi( form_control::@12/(byte) key_right_debounce#46 ) + (byte) key_down_debounce#37 ← phi( form_control::@12/(byte) key_down_debounce#48 ) + (signed byte) form_cursor_count#33 ← phi( form_control::@12/(signed byte) form_cursor_count#41 ) + (byte*) form_control::field#8 ← phi( form_control::@12/(byte*) form_control::field#14 ) + (byte) form_field_idx#35 ← phi( form_control::@12/(byte) form_field_idx#19 ) + to:form_control::@14 +form_control::@31: scope:[form_control] from form_control::@12 + (byte) key_right_debounce#37 ← phi( form_control::@12/(byte) key_right_debounce#46 ) + (byte) key_down_debounce#39 ← phi( form_control::@12/(byte) key_down_debounce#48 ) + (signed byte) form_cursor_count#35 ← phi( form_control::@12/(signed byte) form_cursor_count#41 ) + (byte*) form_control::field#10 ← phi( form_control::@12/(byte*) form_control::field#14 ) + (byte) form_field_idx#23 ← phi( form_control::@12/(byte) form_field_idx#19 ) + *((byte[]) form_fields_val#0 + (byte) form_field_idx#23) ← *((byte[]) form_fields_max#0 + (byte) form_field_idx#23) + to:form_control::@14 @25: scope:[] from @21 (byte) form_fields_cnt#38 ← phi( @21/(byte) form_fields_cnt#0 ) (byte) key_right_debounce#24 ← phi( @21/(byte) key_right_debounce#4 ) - (byte) form_field_idx#32 ← phi( @21/(byte) form_field_idx#4 ) + (byte) form_field_idx#36 ← phi( @21/(byte) form_field_idx#4 ) (byte) key_down_debounce#24 ← phi( @21/(byte) key_down_debounce#4 ) (signed byte) form_cursor_count#26 ← phi( @21/(signed byte) form_cursor_count#4 ) (byte*) print_char_cursor#39 ← phi( @21/(byte*) print_char_cursor#47 ) @@ -3712,7 +3775,7 @@ form_control::@13: scope:[form_control] from form_control::@12 form_control::@2 to:@26 @26: scope:[] from @25 (byte) key_right_debounce#14 ← phi( @25/(byte) key_right_debounce#1 ) - (byte) form_field_idx#22 ← phi( @25/(byte) form_field_idx#1 ) + (byte) form_field_idx#24 ← phi( @25/(byte) form_field_idx#1 ) (byte) key_down_debounce#14 ← phi( @25/(byte) key_down_debounce#1 ) (signed byte) form_cursor_count#17 ← phi( @25/(signed byte) form_cursor_count#1 ) (byte*) print_char_cursor#30 ← phi( @25/(byte*) print_char_cursor#11 ) @@ -3723,7 +3786,7 @@ form_control::@13: scope:[form_control] from form_control::@12 form_control::@2 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#30 (signed byte) form_cursor_count#9 ← (signed byte) form_cursor_count#17 (byte) key_down_debounce#7 ← (byte) key_down_debounce#14 - (byte) form_field_idx#10 ← (byte) form_field_idx#22 + (byte) form_field_idx#10 ← (byte) form_field_idx#24 (byte) key_right_debounce#7 ← (byte) key_right_debounce#14 to:@end @end: scope:[] from @26 @@ -3843,10 +3906,10 @@ SYMBOL TABLE SSA (boolean~) form_control::$29 (signed word/signed byte/signed dword~) form_control::$3 (boolean~) form_control::$30 -(byte/signed word/word/dword/signed dword~) form_control::$31 -(byte/word/dword~) form_control::$32 -(byte/signed word/word/dword/signed dword~) form_control::$33 -(byte/word/dword~) form_control::$34 +(boolean~) form_control::$31 +(boolean~) form_control::$32 +(boolean~) form_control::$33 +(boolean~) form_control::$34 (boolean~) form_control::$4 (boolean~) form_control::$5 (byte/word/dword~) form_control::$6 @@ -3860,21 +3923,25 @@ SYMBOL TABLE SSA (label) form_control::@13 (label) form_control::@14 (label) form_control::@15 +(label) form_control::@16 (label) form_control::@17 -(label) form_control::@18 (label) form_control::@19 (label) form_control::@2 (label) form_control::@20 +(label) form_control::@21 (label) form_control::@22 (label) form_control::@24 -(label) form_control::@25 (label) form_control::@26 +(label) form_control::@27 (label) form_control::@28 (label) form_control::@29 (label) form_control::@3 -(label) form_control::@30 (label) form_control::@31 (label) form_control::@32 +(label) form_control::@33 +(label) form_control::@34 +(label) form_control::@35 +(label) form_control::@36 (label) form_control::@4 (label) form_control::@5 (label) form_control::@6 @@ -3893,7 +3960,11 @@ SYMBOL TABLE SSA (byte*) form_control::field#15 (byte*) form_control::field#16 (byte*) form_control::field#17 +(byte*) form_control::field#18 +(byte*) form_control::field#19 (byte*) form_control::field#2 +(byte*) form_control::field#20 +(byte*) form_control::field#21 (byte*) form_control::field#3 (byte*) form_control::field#4 (byte*) form_control::field#5 @@ -3958,6 +4029,10 @@ SYMBOL TABLE SSA (signed byte) form_cursor_count#51 (signed byte) form_cursor_count#52 (signed byte) form_cursor_count#53 +(signed byte) form_cursor_count#54 +(signed byte) form_cursor_count#55 +(signed byte) form_cursor_count#56 +(signed byte) form_cursor_count#57 (signed byte) form_cursor_count#6 (signed byte) form_cursor_count#7 (signed byte) form_cursor_count#8 @@ -4023,6 +4098,10 @@ SYMBOL TABLE SSA (byte) form_field_idx#60 (byte) form_field_idx#61 (byte) form_field_idx#62 +(byte) form_field_idx#63 +(byte) form_field_idx#64 +(byte) form_field_idx#65 +(byte) form_field_idx#66 (byte) form_field_idx#7 (byte) form_field_idx#8 (byte) form_field_idx#9 @@ -4090,6 +4169,8 @@ SYMBOL TABLE SSA (byte) form_fields_cnt#7 (byte) form_fields_cnt#8 (byte) form_fields_cnt#9 +(byte[]) form_fields_max +(byte[]) form_fields_max#0 (byte[]) form_fields_val (byte[]) form_fields_val#0 (byte[]) form_fields_x @@ -4190,6 +4271,10 @@ SYMBOL TABLE SSA (byte) key_down_debounce#59 (byte) key_down_debounce#6 (byte) key_down_debounce#60 +(byte) key_down_debounce#61 +(byte) key_down_debounce#62 +(byte) key_down_debounce#63 +(byte) key_down_debounce#64 (byte) key_down_debounce#7 (byte) key_down_debounce#8 (byte) key_down_debounce#9 @@ -4252,6 +4337,10 @@ SYMBOL TABLE SSA (byte) key_right_debounce#59 (byte) key_right_debounce#6 (byte) key_right_debounce#60 +(byte) key_right_debounce#61 +(byte) key_right_debounce#62 +(byte) key_right_debounce#63 +(byte) key_right_debounce#64 (byte) key_right_debounce#7 (byte) key_right_debounce#8 (byte) key_right_debounce#9 @@ -4589,6 +4678,8 @@ Inversing boolean not (boolean~) form_control::$20 ← (byte) form_field_idx#5 ! Inversing boolean not (boolean~) form_control::$18 ← (byte) form_field_idx#6 != (byte) form_fields_cnt#2 from (boolean~) form_control::$17 ← (byte) form_field_idx#6 == (byte) form_fields_cnt#2 Inversing boolean not (boolean~) form_control::$27 ← (byte) form_control::key_right#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$26 ← (byte) form_control::key_right#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) form_control::$30 ← (byte~) form_control::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$34 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) != (byte/word/signed word/dword/signed dword) 255 from (boolean~) form_control::$33 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) == (byte/word/signed word/dword/signed dword) 255 +Inversing boolean not (boolean~) form_control::$32 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) <= *((byte[]) form_fields_max#0 + (byte) form_field_idx#20) from (boolean~) form_control::$31 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) > *((byte[]) form_fields_max#0 + (byte) form_field_idx#20) Succesful SSA optimization Pass2UnaryNotSimplification Not aliassing across scopes: print_str_lines::str#4 print_str_lines::str#1 Not aliassing across scopes: print_char_cursor#40 print_char_cursor#13 @@ -4611,7 +4702,7 @@ Not aliassing across scopes: print_line_cursor#40 print_line_cursor#37 Not aliassing across scopes: print_char_cursor#43 print_char_cursor#39 Not aliassing across scopes: form_cursor_count#27 form_cursor_count#26 Not aliassing across scopes: key_down_debounce#25 key_down_debounce#24 -Not aliassing across scopes: form_field_idx#33 form_field_idx#32 +Not aliassing across scopes: form_field_idx#37 form_field_idx#36 Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 Not aliassing across scopes: form_fields_cnt#34 form_fields_cnt#38 Not aliassing across scopes: print_screen#12 print_screen#6 @@ -4624,19 +4715,19 @@ Not aliassing across scopes: key_right_debounce#8 key_right_debounce#3 Not aliassing across scopes: print_screen#36 print_screen#17 Not aliassing across scopes: print_line_cursor#56 print_line_cursor#33 Not aliassing across scopes: print_char_cursor#56 print_char_cursor#35 -Not aliassing across scopes: form_cursor_count#53 form_cursor_count#18 -Not aliassing across scopes: key_down_debounce#60 key_down_debounce#15 -Not aliassing across scopes: form_field_idx#62 form_field_idx#23 -Not aliassing across scopes: key_right_debounce#60 key_right_debounce#15 +Not aliassing across scopes: form_cursor_count#57 form_cursor_count#18 +Not aliassing across scopes: key_down_debounce#64 key_down_debounce#15 +Not aliassing across scopes: form_field_idx#66 form_field_idx#25 +Not aliassing across scopes: key_right_debounce#64 key_right_debounce#15 Not aliassing across scopes: form_fields_cnt#27 form_fields_cnt#29 Not aliassing across scopes: menu::c#0 COLS#0 Not aliassing identity: print_screen#23 print_screen#23 Not aliassing identity: print_line_cursor#41 print_line_cursor#41 Not aliassing identity: print_char_cursor#44 print_char_cursor#44 -Not aliassing identity: form_cursor_count#50 form_cursor_count#50 -Not aliassing identity: key_down_debounce#57 key_down_debounce#57 -Not aliassing identity: form_field_idx#57 form_field_idx#57 -Not aliassing identity: key_right_debounce#57 key_right_debounce#57 +Not aliassing identity: form_cursor_count#54 form_cursor_count#54 +Not aliassing identity: key_down_debounce#61 key_down_debounce#61 +Not aliassing identity: form_field_idx#61 form_field_idx#61 +Not aliassing identity: key_right_debounce#61 key_right_debounce#61 Not aliassing identity: form_fields_cnt#20 form_fields_cnt#20 Not aliassing across scopes: print_set_screen::screen#0 menu::SCREEN#0 Not aliassing across scopes: print_screen#14 print_screen#2 @@ -4658,10 +4749,10 @@ Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#9 Not aliassing across scopes: form_field_ptr::field_idx#0 form_render_values::idx#2 Not aliassing across scopes: form_field_ptr::return#2 form_field_ptr::return#1 Not aliassing across scopes: form_render_values::$0 form_field_ptr::return#5 -Not aliassing across scopes: form_field_idx#15 form_field_idx#25 +Not aliassing across scopes: form_field_idx#15 form_field_idx#27 Not aliassing across scopes: form_cursor_count#22 form_cursor_count#20 -Not aliassing across scopes: key_down_debounce#53 key_down_debounce#17 -Not aliassing across scopes: key_right_debounce#56 key_right_debounce#17 +Not aliassing across scopes: key_down_debounce#56 key_down_debounce#17 +Not aliassing across scopes: key_right_debounce#60 key_right_debounce#17 Not aliassing across scopes: form_fields_cnt#24 form_fields_cnt#26 Not aliassing across scopes: form_field_ptr::field_idx#1 form_field_idx#15 Not aliassing across scopes: form_field_ptr::return#3 form_field_ptr::return#1 @@ -4686,7 +4777,7 @@ Not aliassing across scopes: print_line_cursor#29 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#30 print_char_cursor#11 Not aliassing across scopes: form_cursor_count#17 form_cursor_count#1 Not aliassing across scopes: key_down_debounce#14 key_down_debounce#1 -Not aliassing across scopes: form_field_idx#22 form_field_idx#1 +Not aliassing across scopes: form_field_idx#24 form_field_idx#1 Not aliassing across scopes: key_right_debounce#14 key_right_debounce#1 Alias (byte*) print_screen#0 = (byte*) print_line_cursor#0 (byte*) print_char_cursor#0 (byte*) print_screen#35 (byte*) print_line_cursor#55 (byte*) print_char_cursor#55 (byte*) print_screen#31 (byte*) print_line_cursor#52 (byte*) print_char_cursor#52 (byte*) print_screen#30 (byte*) print_line_cursor#50 (byte*) print_char_cursor#51 (byte*) print_screen#26 (byte*) print_line_cursor#44 (byte*) print_char_cursor#47 (byte*) print_screen#21 (byte*) print_line_cursor#37 (byte*) print_char_cursor#39 Alias (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#6 @@ -4714,7 +4805,7 @@ Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#33 (byte*) print_ Alias (byte*) print_char_cursor#11 = (byte*) print_char_cursor#35 (byte*) print_char_cursor#36 (byte*) print_char_cursor#25 Alias (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#18 (signed byte) form_cursor_count#19 (signed byte) form_cursor_count#11 Alias (byte) key_down_debounce#1 = (byte) key_down_debounce#15 (byte) key_down_debounce#16 (byte) key_down_debounce#9 -Alias (byte) form_field_idx#1 = (byte) form_field_idx#23 (byte) form_field_idx#24 (byte) form_field_idx#12 +Alias (byte) form_field_idx#1 = (byte) form_field_idx#25 (byte) form_field_idx#26 (byte) form_field_idx#12 Alias (byte) key_right_debounce#1 = (byte) key_right_debounce#15 (byte) key_right_debounce#16 (byte) key_right_debounce#9 Alias (byte) form_fields_cnt#29 = (byte) form_fields_cnt#32 (byte) form_fields_cnt#35 Alias (byte*) print_screen#12 = (byte*) print_screen#3 @@ -4728,18 +4819,18 @@ Alias (byte[]) MENU_TEXT#0 = (string~) $8 Alias (byte*) print_screen#27 = (byte*) print_screen#32 Alias (byte*) print_line_cursor#47 = (byte*) print_line_cursor#53 Alias (byte*) print_char_cursor#48 = (byte*) print_char_cursor#53 -Alias (signed byte) form_cursor_count#51 = (signed byte) form_cursor_count#52 -Alias (byte) key_down_debounce#58 = (byte) key_down_debounce#59 -Alias (byte) form_field_idx#60 = (byte) form_field_idx#61 -Alias (byte) key_right_debounce#58 = (byte) key_right_debounce#59 +Alias (signed byte) form_cursor_count#55 = (signed byte) form_cursor_count#56 +Alias (byte) key_down_debounce#62 = (byte) key_down_debounce#63 +Alias (byte) form_field_idx#64 = (byte) form_field_idx#65 +Alias (byte) key_right_debounce#62 = (byte) key_right_debounce#63 Alias (byte) form_fields_cnt#23 = (byte) form_fields_cnt#25 Alias (byte*) print_screen#19 = (byte*) print_screen#23 Alias (byte*) print_line_cursor#35 = (byte*) print_line_cursor#41 Alias (byte*) print_char_cursor#37 = (byte*) print_char_cursor#44 -Alias (signed byte) form_cursor_count#28 = (signed byte) form_cursor_count#49 (signed byte) form_cursor_count#50 (signed byte) form_cursor_count#46 (signed byte) form_cursor_count#43 (signed byte) form_cursor_count#39 (signed byte) form_cursor_count#34 -Alias (byte) key_down_debounce#26 = (byte) key_down_debounce#56 (byte) key_down_debounce#57 (byte) key_down_debounce#55 (byte) key_down_debounce#52 (byte) key_down_debounce#46 (byte) key_down_debounce#38 -Alias (byte) form_field_idx#34 = (byte) form_field_idx#55 (byte) form_field_idx#57 (byte) form_field_idx#52 (byte) form_field_idx#50 (byte) form_field_idx#47 (byte) form_field_idx#42 -Alias (byte) key_right_debounce#26 = (byte) key_right_debounce#55 (byte) key_right_debounce#57 (byte) key_right_debounce#52 (byte) key_right_debounce#49 (byte) key_right_debounce#44 (byte) key_right_debounce#36 +Alias (signed byte) form_cursor_count#28 = (signed byte) form_cursor_count#53 (signed byte) form_cursor_count#54 (signed byte) form_cursor_count#50 (signed byte) form_cursor_count#46 (signed byte) form_cursor_count#42 (signed byte) form_cursor_count#36 +Alias (byte) key_down_debounce#26 = (byte) key_down_debounce#60 (byte) key_down_debounce#61 (byte) key_down_debounce#59 (byte) key_down_debounce#55 (byte) key_down_debounce#49 (byte) key_down_debounce#40 +Alias (byte) form_field_idx#38 = (byte) form_field_idx#59 (byte) form_field_idx#61 (byte) form_field_idx#56 (byte) form_field_idx#54 (byte) form_field_idx#51 (byte) form_field_idx#46 +Alias (byte) key_right_debounce#26 = (byte) key_right_debounce#59 (byte) key_right_debounce#61 (byte) key_right_debounce#56 (byte) key_right_debounce#52 (byte) key_right_debounce#47 (byte) key_right_debounce#38 Alias (byte) form_fields_cnt#11 = (byte) form_fields_cnt#18 (byte) form_fields_cnt#20 (byte) form_fields_cnt#15 (byte) form_fields_cnt#13 (byte) form_fields_cnt#9 (byte) form_fields_cnt#36 Alias (byte*) print_screen#14 = (byte*) print_screen#5 (byte*) print_screen#37 (byte*) print_screen#33 (byte*) print_screen#28 (byte*) print_screen#24 Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#25 @@ -4748,18 +4839,18 @@ Alias (byte*) print_line_cursor#12 = (byte*) print_line_cursor#26 Alias (byte*) print_char_cursor#13 = (byte*) print_char_cursor#27 Alias (byte*) print_char_cursor#14 = (byte*) print_char_cursor#28 (byte*) print_char_cursor#49 (byte*) print_char_cursor#45 Alias (byte*) print_line_cursor#13 = (byte*) print_line_cursor#27 (byte*) print_line_cursor#48 (byte*) print_line_cursor#42 -Alias (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#35 (signed byte) form_cursor_count#21 (signed byte) form_cursor_count#3 -Alias (byte) key_down_debounce#11 = (byte) key_down_debounce#39 (byte) key_down_debounce#18 (byte) key_down_debounce#3 -Alias (byte) form_field_idx#14 = (byte) form_field_idx#43 (byte) form_field_idx#26 (byte) form_field_idx#3 -Alias (byte) key_right_debounce#11 = (byte) key_right_debounce#37 (byte) key_right_debounce#18 (byte) key_right_debounce#3 +Alias (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#37 (signed byte) form_cursor_count#21 (signed byte) form_cursor_count#3 +Alias (byte) key_down_debounce#11 = (byte) key_down_debounce#41 (byte) key_down_debounce#18 (byte) key_down_debounce#3 +Alias (byte) form_field_idx#14 = (byte) form_field_idx#47 (byte) form_field_idx#28 (byte) form_field_idx#3 +Alias (byte) key_right_debounce#11 = (byte) key_right_debounce#39 (byte) key_right_debounce#18 (byte) key_right_debounce#3 Alias (byte*) print_screen#15 = (byte*) print_screen#38 (byte*) print_screen#20 (byte*) print_screen#6 Alias (byte*) print_line_cursor#14 = (byte*) print_line_cursor#57 (byte*) print_line_cursor#36 (byte*) print_line_cursor#28 Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#57 (byte*) print_char_cursor#38 (byte*) print_char_cursor#29 Alias (byte) form_fields_cnt#30 = (byte) form_fields_cnt#33 -Alias (signed byte) form_cursor_count#20 = (signed byte) form_cursor_count#36 (signed byte) form_cursor_count#29 -Alias (byte) key_down_debounce#17 = (byte) key_down_debounce#40 (byte) key_down_debounce#27 -Alias (byte) form_field_idx#25 = (byte) form_field_idx#44 (byte) form_field_idx#35 -Alias (byte) key_right_debounce#17 = (byte) key_right_debounce#38 (byte) key_right_debounce#27 +Alias (signed byte) form_cursor_count#20 = (signed byte) form_cursor_count#38 (signed byte) form_cursor_count#29 +Alias (byte) key_down_debounce#17 = (byte) key_down_debounce#42 (byte) key_down_debounce#27 +Alias (byte) form_field_idx#27 = (byte) form_field_idx#48 (byte) form_field_idx#39 +Alias (byte) key_right_debounce#17 = (byte) key_right_debounce#40 (byte) key_right_debounce#27 Alias (byte*) print_screen#25 = (byte*) print_screen#39 (byte*) print_screen#34 (byte*) print_screen#29 Alias (byte*) print_line_cursor#43 = (byte*) print_line_cursor#58 (byte*) print_line_cursor#54 (byte*) print_line_cursor#49 Alias (byte*) print_char_cursor#46 = (byte*) print_char_cursor#58 (byte*) print_char_cursor#54 (byte*) print_char_cursor#50 @@ -4779,46 +4870,46 @@ Alias (byte) form_fields_cnt#1 = (byte) form_fields_cnt#4 Alias (byte*) form_render_values::field#0 = (byte*~) form_render_values::$0 Alias (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#6 Alias (signed byte) form_cursor_count#14 = (signed byte) form_cursor_count#22 -Alias (byte) key_down_debounce#47 = (byte) key_down_debounce#48 (byte) key_down_debounce#53 -Alias (byte) key_right_debounce#53 = (byte) key_right_debounce#54 (byte) key_right_debounce#56 -Alias (byte) form_field_idx#15 = (byte) form_field_idx#59 (byte) form_field_idx#58 +Alias (byte) key_down_debounce#50 = (byte) key_down_debounce#51 (byte) key_down_debounce#56 +Alias (byte) key_right_debounce#57 = (byte) key_right_debounce#58 (byte) key_right_debounce#60 +Alias (byte) form_field_idx#15 = (byte) form_field_idx#63 (byte) form_field_idx#62 Alias (byte) form_fields_cnt#21 = (byte) form_fields_cnt#22 (byte) form_fields_cnt#24 -Alias (byte*) form_control::field#0 = (byte*~) form_control::$0 (byte*) form_control::field#9 +Alias (byte*) form_control::field#0 = (byte*~) form_control::$0 (byte*) form_control::field#11 Alias (byte*) form_control::field#1 = (byte*) form_control::field#5 (byte*) form_control::field#2 -Alias (byte) key_down_debounce#28 = (byte) key_down_debounce#29 (byte) key_down_debounce#41 -Alias (byte) key_right_debounce#45 = (byte) key_right_debounce#46 (byte) key_right_debounce#50 -Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#48 (signed byte) form_cursor_count#47 -Alias (byte) form_field_idx#53 = (byte) form_field_idx#54 (byte) form_field_idx#56 +Alias (byte) key_down_debounce#28 = (byte) key_down_debounce#29 (byte) key_down_debounce#43 +Alias (byte) key_right_debounce#48 = (byte) key_right_debounce#49 (byte) key_right_debounce#53 +Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#52 (signed byte) form_cursor_count#51 +Alias (byte) form_field_idx#57 = (byte) form_field_idx#58 (byte) form_field_idx#60 Alias (byte) form_fields_cnt#16 = (byte) form_fields_cnt#17 (byte) form_fields_cnt#19 Alias (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#7 Alias (byte) key_down_debounce#12 = (byte) key_down_debounce#19 -Alias (byte) key_right_debounce#28 = (byte) key_right_debounce#39 (byte) key_right_debounce#40 (byte) key_right_debounce#29 (byte) key_right_debounce#51 (byte) key_right_debounce#47 (byte) key_right_debounce#42 (byte) key_right_debounce#41 (byte) key_right_debounce#32 (byte) key_right_debounce#30 (byte) key_right_debounce#33 (byte) key_right_debounce#31 -Alias (byte*) form_control::field#10 = (byte*) form_control::field#12 (byte*) form_control::field#6 (byte*) form_control::field#17 (byte*) form_control::field#3 -Alias (signed byte) form_cursor_count#40 = (signed byte) form_cursor_count#44 (signed byte) form_cursor_count#45 (signed byte) form_cursor_count#41 -Alias (byte) form_field_idx#16 = (byte) form_field_idx#48 (byte) form_field_idx#51 (byte) form_field_idx#46 (byte) form_field_idx#49 (byte) form_field_idx#36 (byte) form_field_idx#27 (byte) form_field_idx#17 +Alias (byte) key_right_debounce#28 = (byte) key_right_debounce#41 (byte) key_right_debounce#42 (byte) key_right_debounce#29 (byte) key_right_debounce#54 (byte) key_right_debounce#50 (byte) key_right_debounce#44 (byte) key_right_debounce#43 (byte) key_right_debounce#32 (byte) key_right_debounce#30 (byte) key_right_debounce#33 (byte) key_right_debounce#31 +Alias (byte*) form_control::field#12 = (byte*) form_control::field#15 (byte*) form_control::field#6 (byte*) form_control::field#21 (byte*) form_control::field#3 +Alias (signed byte) form_cursor_count#43 = (signed byte) form_cursor_count#47 (signed byte) form_cursor_count#48 (signed byte) form_cursor_count#44 +Alias (byte) form_field_idx#16 = (byte) form_field_idx#52 (byte) form_field_idx#55 (byte) form_field_idx#50 (byte) form_field_idx#53 (byte) form_field_idx#40 (byte) form_field_idx#29 (byte) form_field_idx#17 Alias (byte) form_fields_cnt#10 = (byte) form_fields_cnt#12 (byte) form_fields_cnt#14 (byte) form_fields_cnt#8 (byte) form_fields_cnt#5 (byte) form_fields_cnt#6 (byte) form_fields_cnt#2 (byte) form_fields_cnt#3 Alias (byte) form_control::key_down#0 = (byte~) form_control::$8 (byte) form_control::key_down#1 Alias (byte) keyboard_key_pressed::return#3 = (byte) keyboard_key_pressed::return#8 Alias (byte) key_right_debounce#12 = (byte) key_right_debounce#19 (byte) key_right_debounce#20 -Alias (signed byte) form_cursor_count#23 = (signed byte) form_cursor_count#30 (signed byte) form_cursor_count#37 (signed byte) form_cursor_count#31 (signed byte) form_cursor_count#24 (signed byte) form_cursor_count#42 (signed byte) form_cursor_count#38 (signed byte) form_cursor_count#32 (signed byte) form_cursor_count#33 -Alias (byte) key_down_debounce#20 = (byte) key_down_debounce#34 (byte) key_down_debounce#42 (byte) key_down_debounce#35 (byte) key_down_debounce#21 (byte) key_down_debounce#51 (byte) key_down_debounce#45 (byte) key_down_debounce#36 (byte) key_down_debounce#37 -Alias (byte) form_field_idx#19 = (byte) form_field_idx#39 (byte) form_field_idx#45 (byte) form_field_idx#28 (byte) form_field_idx#40 (byte) form_field_idx#29 (byte) form_field_idx#41 (byte) form_field_idx#31 (byte) form_field_idx#20 -Alias (byte*) form_control::field#11 = (byte*) form_control::field#15 (byte*) form_control::field#16 (byte*) form_control::field#14 (byte*) form_control::field#13 (byte*) form_control::field#7 (byte*) form_control::field#8 +Alias (signed byte) form_cursor_count#23 = (signed byte) form_cursor_count#30 (signed byte) form_cursor_count#39 (signed byte) form_cursor_count#31 (signed byte) form_cursor_count#24 (signed byte) form_cursor_count#49 (signed byte) form_cursor_count#45 (signed byte) form_cursor_count#41 (signed byte) form_cursor_count#40 (signed byte) form_cursor_count#32 (signed byte) form_cursor_count#34 (signed byte) form_cursor_count#33 (signed byte) form_cursor_count#35 +Alias (byte) key_down_debounce#20 = (byte) key_down_debounce#34 (byte) key_down_debounce#44 (byte) key_down_debounce#35 (byte) key_down_debounce#21 (byte) key_down_debounce#58 (byte) key_down_debounce#54 (byte) key_down_debounce#48 (byte) key_down_debounce#47 (byte) key_down_debounce#36 (byte) key_down_debounce#38 (byte) key_down_debounce#37 (byte) key_down_debounce#39 +Alias (byte) form_field_idx#19 = (byte) form_field_idx#43 (byte) form_field_idx#49 (byte) form_field_idx#30 (byte) form_field_idx#44 (byte) form_field_idx#31 (byte) form_field_idx#45 (byte) form_field_idx#33 (byte) form_field_idx#20 (byte) form_field_idx#34 (byte) form_field_idx#21 (byte) form_field_idx#35 (byte) form_field_idx#23 +Alias (byte*) form_control::field#10 = (byte*) form_control::field#19 (byte*) form_control::field#20 (byte*) form_control::field#18 (byte*) form_control::field#17 (byte*) form_control::field#16 (byte*) form_control::field#14 (byte*) form_control::field#13 (byte*) form_control::field#7 (byte*) form_control::field#9 (byte*) form_control::field#8 Alias (byte) form_control::key_right#0 = (byte~) form_control::$23 (byte) form_control::key_right#1 -Alias (byte) key_down_debounce#30 = (byte) key_down_debounce#49 (byte) key_down_debounce#5 (byte) key_down_debounce#54 (byte) key_down_debounce#50 (byte) key_down_debounce#44 (byte) key_down_debounce#43 (byte) key_down_debounce#32 (byte) key_down_debounce#33 (byte) key_down_debounce#31 +Alias (byte) key_down_debounce#30 = (byte) key_down_debounce#52 (byte) key_down_debounce#5 (byte) key_down_debounce#57 (byte) key_down_debounce#53 (byte) key_down_debounce#46 (byte) key_down_debounce#45 (byte) key_down_debounce#32 (byte) key_down_debounce#33 (byte) key_down_debounce#31 Alias (byte) keyboard_key_pressed::return#4 = (byte) keyboard_key_pressed::return#9 -Alias (byte) form_field_idx#37 = (byte) form_field_idx#6 +Alias (byte) form_field_idx#41 = (byte) form_field_idx#6 Alias (signed byte) form_cursor_count#7 = (signed word/signed byte/signed dword~) form_control::$22 -Alias (byte) form_field_idx#38 = (byte) form_field_idx#5 +Alias (byte) form_field_idx#42 = (byte) form_field_idx#5 Alias (byte) form_field_idx#8 = (byte/signed word/word/dword/signed dword~) form_control::$21 Alias (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#8 Alias (byte) key_down_debounce#13 = (byte) key_down_debounce#6 Alias (byte) form_field_idx#18 = (byte) form_field_idx#9 Alias (byte) key_right_debounce#13 = (byte) key_right_debounce#5 -Alias (byte) key_right_debounce#21 = (byte) key_right_debounce#6 (byte) key_right_debounce#48 (byte) key_right_debounce#43 (byte) key_right_debounce#34 (byte) key_right_debounce#35 +Alias (byte) key_right_debounce#21 = (byte) key_right_debounce#6 (byte) key_right_debounce#55 (byte) key_right_debounce#51 (byte) key_right_debounce#46 (byte) key_right_debounce#45 (byte) key_right_debounce#34 (byte) key_right_debounce#36 (byte) key_right_debounce#35 (byte) key_right_debounce#37 Alias (byte) keyboard_key_pressed::return#10 = (byte) keyboard_key_pressed::return#5 Alias (byte) key_down_debounce#24 = (byte) key_down_debounce#4 -Alias (byte) form_field_idx#32 = (byte) form_field_idx#4 +Alias (byte) form_field_idx#36 = (byte) form_field_idx#4 Alias (byte) key_right_debounce#24 = (byte) key_right_debounce#4 Alias (byte) form_fields_cnt#0 = (byte) form_fields_cnt#38 Alias (byte*) print_screen#16 = (byte*) print_screen#7 @@ -4826,7 +4917,7 @@ Alias (byte*) print_line_cursor#15 = (byte*) print_line_cursor#29 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#30 Alias (signed byte) form_cursor_count#17 = (signed byte) form_cursor_count#9 Alias (byte) key_down_debounce#14 = (byte) key_down_debounce#7 -Alias (byte) form_field_idx#10 = (byte) form_field_idx#22 +Alias (byte) form_field_idx#10 = (byte) form_field_idx#24 Alias (byte) key_right_debounce#14 = (byte) key_right_debounce#7 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: print_str_lines::str#4 print_str_lines::str#1 @@ -4850,7 +4941,7 @@ Not aliassing across scopes: print_line_cursor#40 print_screen#0 Not aliassing across scopes: print_char_cursor#43 print_screen#0 Not aliassing across scopes: form_cursor_count#27 form_cursor_count#26 Not aliassing across scopes: key_down_debounce#25 key_down_debounce#24 -Not aliassing across scopes: form_field_idx#33 form_field_idx#32 +Not aliassing across scopes: form_field_idx#37 form_field_idx#36 Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 Not aliassing across scopes: form_fields_cnt#34 form_fields_cnt#0 Not aliassing across scopes: print_screen#12 print_screen#15 @@ -4863,10 +4954,10 @@ Not aliassing across scopes: key_right_debounce#0 key_right_debounce#11 Not aliassing across scopes: print_screen#36 print_screen#13 Not aliassing across scopes: print_line_cursor#56 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#56 print_char_cursor#11 -Not aliassing across scopes: form_cursor_count#53 form_cursor_count#1 -Not aliassing across scopes: key_down_debounce#60 key_down_debounce#1 -Not aliassing across scopes: form_field_idx#62 form_field_idx#1 -Not aliassing across scopes: key_right_debounce#60 key_right_debounce#1 +Not aliassing across scopes: form_cursor_count#57 form_cursor_count#1 +Not aliassing across scopes: key_down_debounce#64 key_down_debounce#1 +Not aliassing across scopes: form_field_idx#66 form_field_idx#1 +Not aliassing across scopes: key_right_debounce#64 key_right_debounce#1 Not aliassing across scopes: form_fields_cnt#27 form_fields_cnt#29 Not aliassing across scopes: menu::c#0 COLS#0 Not aliassing identity: print_screen#19 print_screen#19 @@ -4874,7 +4965,7 @@ Not aliassing identity: print_line_cursor#35 print_line_cursor#35 Not aliassing identity: print_char_cursor#37 print_char_cursor#37 Not aliassing identity: form_cursor_count#28 form_cursor_count#28 Not aliassing identity: key_down_debounce#26 key_down_debounce#26 -Not aliassing identity: form_field_idx#34 form_field_idx#34 +Not aliassing identity: form_field_idx#38 form_field_idx#38 Not aliassing identity: key_right_debounce#26 key_right_debounce#26 Not aliassing identity: form_fields_cnt#11 form_fields_cnt#11 Not aliassing across scopes: print_set_screen::screen#0 menu::SCREEN#0 @@ -4897,10 +4988,10 @@ Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#11 Not aliassing across scopes: form_field_ptr::field_idx#0 form_render_values::idx#2 Not aliassing across scopes: form_field_ptr::return#2 form_field_ptr::return#0 Not aliassing across scopes: form_render_values::field#0 form_field_ptr::return#2 -Not aliassing across scopes: form_field_idx#15 form_field_idx#25 +Not aliassing across scopes: form_field_idx#15 form_field_idx#27 Not aliassing across scopes: form_cursor_count#14 form_cursor_count#20 -Not aliassing across scopes: key_down_debounce#47 key_down_debounce#17 -Not aliassing across scopes: key_right_debounce#53 key_right_debounce#17 +Not aliassing across scopes: key_down_debounce#50 key_down_debounce#17 +Not aliassing across scopes: key_right_debounce#57 key_right_debounce#17 Not aliassing across scopes: form_fields_cnt#21 form_fields_cnt#26 Not aliassing across scopes: form_field_ptr::field_idx#1 form_field_idx#15 Not aliassing across scopes: form_field_ptr::return#3 form_field_ptr::return#0 @@ -4930,12 +5021,12 @@ Not aliassing across scopes: key_right_debounce#14 key_right_debounce#1 Alias (byte) print_str_lines::ch#0 = (byte) print_str_lines::ch#1 Alias (byte*) print_str_lines::str#0 = (byte*) print_str_lines::str#5 Alias (byte*) print_line_cursor#30 = (byte*) print_line_cursor#45 -Alias (byte*) form_control::field#0 = (byte*) form_control::field#1 (byte*) form_control::field#10 (byte*) form_control::field#11 (byte*) form_control::field#4 -Alias (byte) key_down_debounce#12 = (byte) key_down_debounce#28 (byte) key_down_debounce#47 -Alias (byte) key_right_debounce#12 = (byte) key_right_debounce#45 (byte) key_right_debounce#53 (byte) key_right_debounce#28 (byte) key_right_debounce#23 -Alias (byte) form_field_idx#15 = (byte) form_field_idx#53 (byte) form_field_idx#16 (byte) form_field_idx#19 (byte) form_field_idx#21 +Alias (byte*) form_control::field#0 = (byte*) form_control::field#1 (byte*) form_control::field#12 (byte*) form_control::field#10 (byte*) form_control::field#4 +Alias (byte) key_down_debounce#12 = (byte) key_down_debounce#28 (byte) key_down_debounce#50 +Alias (byte) key_right_debounce#12 = (byte) key_right_debounce#48 (byte) key_right_debounce#57 (byte) key_right_debounce#28 (byte) key_right_debounce#23 +Alias (byte) form_field_idx#15 = (byte) form_field_idx#57 (byte) form_field_idx#16 (byte) form_field_idx#19 (byte) form_field_idx#22 Alias (byte) form_fields_cnt#10 = (byte) form_fields_cnt#16 (byte) form_fields_cnt#21 -Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#40 (signed byte) form_cursor_count#23 (signed byte) form_cursor_count#25 +Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#43 (signed byte) form_cursor_count#23 (signed byte) form_cursor_count#25 Alias (byte) key_down_debounce#23 = (byte) key_down_debounce#30 Alias (byte) key_down_debounce#20 = (byte) key_down_debounce#22 Alias (byte) key_right_debounce#21 = (byte) key_right_debounce#22 @@ -4961,7 +5052,7 @@ Not aliassing across scopes: print_line_cursor#40 print_screen#0 Not aliassing across scopes: print_char_cursor#43 print_screen#0 Not aliassing across scopes: form_cursor_count#27 form_cursor_count#26 Not aliassing across scopes: key_down_debounce#25 key_down_debounce#24 -Not aliassing across scopes: form_field_idx#33 form_field_idx#32 +Not aliassing across scopes: form_field_idx#37 form_field_idx#36 Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 Not aliassing across scopes: form_fields_cnt#34 form_fields_cnt#0 Not aliassing across scopes: print_screen#12 print_screen#15 @@ -4974,10 +5065,10 @@ Not aliassing across scopes: key_right_debounce#0 key_right_debounce#11 Not aliassing across scopes: print_screen#36 print_screen#13 Not aliassing across scopes: print_line_cursor#56 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#56 print_char_cursor#11 -Not aliassing across scopes: form_cursor_count#53 form_cursor_count#1 -Not aliassing across scopes: key_down_debounce#60 key_down_debounce#1 -Not aliassing across scopes: form_field_idx#62 form_field_idx#1 -Not aliassing across scopes: key_right_debounce#60 key_right_debounce#1 +Not aliassing across scopes: form_cursor_count#57 form_cursor_count#1 +Not aliassing across scopes: key_down_debounce#64 key_down_debounce#1 +Not aliassing across scopes: form_field_idx#66 form_field_idx#1 +Not aliassing across scopes: key_right_debounce#64 key_right_debounce#1 Not aliassing across scopes: form_fields_cnt#27 form_fields_cnt#29 Not aliassing across scopes: menu::c#0 COLS#0 Not aliassing identity: print_screen#19 print_screen#19 @@ -4985,7 +5076,7 @@ Not aliassing identity: print_line_cursor#35 print_line_cursor#35 Not aliassing identity: print_char_cursor#37 print_char_cursor#37 Not aliassing identity: form_cursor_count#28 form_cursor_count#28 Not aliassing identity: key_down_debounce#26 key_down_debounce#26 -Not aliassing identity: form_field_idx#34 form_field_idx#34 +Not aliassing identity: form_field_idx#38 form_field_idx#38 Not aliassing identity: key_right_debounce#26 key_right_debounce#26 Not aliassing identity: form_fields_cnt#11 form_fields_cnt#11 Not aliassing across scopes: print_set_screen::screen#0 menu::SCREEN#0 @@ -5008,7 +5099,7 @@ Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#11 Not aliassing across scopes: form_field_ptr::field_idx#0 form_render_values::idx#2 Not aliassing across scopes: form_field_ptr::return#2 form_field_ptr::return#0 Not aliassing across scopes: form_render_values::field#0 form_field_ptr::return#2 -Not aliassing across scopes: form_field_idx#15 form_field_idx#25 +Not aliassing across scopes: form_field_idx#15 form_field_idx#27 Not aliassing across scopes: form_cursor_count#14 form_cursor_count#20 Not aliassing across scopes: key_down_debounce#12 key_down_debounce#17 Not aliassing across scopes: key_right_debounce#12 key_right_debounce#17 @@ -5045,22 +5136,22 @@ Self Phi Eliminated (byte) form_fields_cnt#29 Self Phi Eliminated (byte*) print_screen#27 Self Phi Eliminated (byte*) print_line_cursor#47 Self Phi Eliminated (byte*) print_char_cursor#48 -Self Phi Eliminated (signed byte) form_cursor_count#51 -Self Phi Eliminated (byte) key_down_debounce#58 -Self Phi Eliminated (byte) form_field_idx#60 -Self Phi Eliminated (byte) key_right_debounce#58 +Self Phi Eliminated (signed byte) form_cursor_count#55 +Self Phi Eliminated (byte) key_down_debounce#62 +Self Phi Eliminated (byte) form_field_idx#64 +Self Phi Eliminated (byte) key_right_debounce#62 Self Phi Eliminated (byte) form_fields_cnt#23 Self Phi Eliminated (byte*) print_screen#19 Self Phi Eliminated (byte*) print_line_cursor#35 Self Phi Eliminated (byte*) print_char_cursor#37 Self Phi Eliminated (signed byte) form_cursor_count#28 Self Phi Eliminated (byte) key_down_debounce#26 -Self Phi Eliminated (byte) form_field_idx#34 +Self Phi Eliminated (byte) form_field_idx#38 Self Phi Eliminated (byte) key_right_debounce#26 Self Phi Eliminated (byte) form_fields_cnt#11 Self Phi Eliminated (signed byte) form_cursor_count#20 Self Phi Eliminated (byte) key_down_debounce#17 -Self Phi Eliminated (byte) form_field_idx#25 +Self Phi Eliminated (byte) form_field_idx#27 Self Phi Eliminated (byte) key_right_debounce#17 Self Phi Eliminated (byte*) print_screen#25 Self Phi Eliminated (byte*) print_line_cursor#43 @@ -5086,7 +5177,7 @@ Redundant Phi (byte*) print_line_cursor#40 (byte*) print_screen#0 Redundant Phi (byte*) print_char_cursor#43 (byte*) print_screen#0 Redundant Phi (signed byte) form_cursor_count#27 (signed byte) form_cursor_count#26 Redundant Phi (byte) key_down_debounce#25 (byte) key_down_debounce#24 -Redundant Phi (byte) form_field_idx#33 (byte) form_field_idx#32 +Redundant Phi (byte) form_field_idx#37 (byte) form_field_idx#36 Redundant Phi (byte) key_right_debounce#25 (byte) key_right_debounce#24 Redundant Phi (byte) form_fields_cnt#34 (byte) form_fields_cnt#0 Redundant Phi (byte) form_fields_cnt#29 (byte) form_fields_cnt#34 @@ -5100,26 +5191,26 @@ Redundant Phi (byte) key_right_debounce#0 (byte) key_right_debounce#11 Redundant Phi (byte*) print_screen#36 (byte*) print_screen#13 Redundant Phi (byte*) print_line_cursor#56 (byte*) print_line_cursor#10 Redundant Phi (byte*) print_char_cursor#56 (byte*) print_char_cursor#11 -Redundant Phi (signed byte) form_cursor_count#53 (signed byte) form_cursor_count#1 -Redundant Phi (byte) key_down_debounce#60 (byte) key_down_debounce#1 -Redundant Phi (byte) form_field_idx#62 (byte) form_field_idx#1 -Redundant Phi (byte) key_right_debounce#60 (byte) key_right_debounce#1 +Redundant Phi (signed byte) form_cursor_count#57 (signed byte) form_cursor_count#1 +Redundant Phi (byte) key_down_debounce#64 (byte) key_down_debounce#1 +Redundant Phi (byte) form_field_idx#66 (byte) form_field_idx#1 +Redundant Phi (byte) key_right_debounce#64 (byte) key_right_debounce#1 Redundant Phi (byte) form_fields_cnt#27 (byte) form_fields_cnt#29 Redundant Phi (byte*) print_screen#27 (byte*) print_screen#36 Redundant Phi (byte*) print_line_cursor#47 (byte*) print_line_cursor#56 Redundant Phi (byte*) print_char_cursor#48 (byte*) print_char_cursor#56 -Redundant Phi (signed byte) form_cursor_count#51 (signed byte) form_cursor_count#53 -Redundant Phi (byte) key_down_debounce#58 (byte) key_down_debounce#60 -Redundant Phi (byte) form_field_idx#60 (byte) form_field_idx#62 -Redundant Phi (byte) key_right_debounce#58 (byte) key_right_debounce#60 +Redundant Phi (signed byte) form_cursor_count#55 (signed byte) form_cursor_count#57 +Redundant Phi (byte) key_down_debounce#62 (byte) key_down_debounce#64 +Redundant Phi (byte) form_field_idx#64 (byte) form_field_idx#66 +Redundant Phi (byte) key_right_debounce#62 (byte) key_right_debounce#64 Redundant Phi (byte) form_fields_cnt#23 (byte) form_fields_cnt#27 Redundant Phi (byte*) print_screen#19 (byte*) print_screen#27 Redundant Phi (byte*) print_line_cursor#35 (byte*) print_line_cursor#47 Redundant Phi (byte*) print_char_cursor#37 (byte*) print_char_cursor#48 -Redundant Phi (signed byte) form_cursor_count#28 (signed byte) form_cursor_count#51 -Redundant Phi (byte) key_down_debounce#26 (byte) key_down_debounce#58 -Redundant Phi (byte) form_field_idx#34 (byte) form_field_idx#60 -Redundant Phi (byte) key_right_debounce#26 (byte) key_right_debounce#58 +Redundant Phi (signed byte) form_cursor_count#28 (signed byte) form_cursor_count#55 +Redundant Phi (byte) key_down_debounce#26 (byte) key_down_debounce#62 +Redundant Phi (byte) form_field_idx#38 (byte) form_field_idx#64 +Redundant Phi (byte) key_right_debounce#26 (byte) key_right_debounce#62 Redundant Phi (byte) form_fields_cnt#11 (byte) form_fields_cnt#23 Redundant Phi (byte*) print_screen#14 (byte*) print_screen#1 Redundant Phi (byte*) print_line_cursor#11 (byte*) print_screen#1 @@ -5130,7 +5221,7 @@ Redundant Phi (byte*) print_char_cursor#14 (byte*) print_char_cursor#19 Redundant Phi (byte*) print_line_cursor#13 (byte*) print_line_cursor#17 Redundant Phi (signed byte) form_cursor_count#20 (signed byte) form_cursor_count#13 Redundant Phi (byte) key_down_debounce#17 (byte) key_down_debounce#11 -Redundant Phi (byte) form_field_idx#25 (byte) form_field_idx#14 +Redundant Phi (byte) form_field_idx#27 (byte) form_field_idx#14 Redundant Phi (byte) key_right_debounce#17 (byte) key_right_debounce#11 Redundant Phi (byte*) print_screen#25 (byte*) print_screen#15 Redundant Phi (byte*) print_line_cursor#43 (byte*) print_line_cursor#14 @@ -5143,7 +5234,7 @@ Redundant Phi (byte) key_right_debounce#10 (byte) key_right_debounce#13 Redundant Phi (byte*) form_set_screen::line#0 (byte*) form_set_screen::screen#0 Redundant Phi (byte) form_fields_cnt#7 (byte) form_fields_cnt#11 Redundant Phi (byte) form_fields_cnt#1 (byte) form_fields_cnt#7 -Redundant Phi (byte) form_field_idx#15 (byte) form_field_idx#25 +Redundant Phi (byte) form_field_idx#15 (byte) form_field_idx#27 Redundant Phi (signed byte) form_cursor_count#14 (signed byte) form_cursor_count#20 Redundant Phi (byte) key_down_debounce#12 (byte) key_down_debounce#17 Redundant Phi (byte) key_right_debounce#12 (byte) key_right_debounce#17 @@ -5172,10 +5263,12 @@ Simple Condition (boolean~) form_control::$10 if((byte) form_control::key_down#0 Simple Condition (boolean~) form_control::$25 if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@10 Simple Condition (boolean~) form_control::$12 if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 Simple Condition (boolean~) form_control::$16 if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 -Simple Condition (boolean~) form_control::$20 if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@9 -Simple Condition (boolean~) form_control::$18 if((byte) form_field_idx#37!=(byte) form_fields_cnt#30) goto form_control::@7 +Simple Condition (boolean~) form_control::$20 if((byte) form_field_idx#42!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@9 +Simple Condition (boolean~) form_control::$18 if((byte) form_field_idx#41!=(byte) form_fields_cnt#30) goto form_control::@7 Simple Condition (boolean~) form_control::$27 if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@11 Simple Condition (boolean~) form_control::$30 if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 +Simple Condition (boolean~) form_control::$34 if(*((byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@15 +Simple Condition (boolean~) form_control::$32 if(*((byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@13 Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) RASTER#0 = ((byte*))53266 Constant (const byte*) BORDERCOL#0 = ((byte*))53280 @@ -5214,10 +5307,11 @@ Constant (const byte*) menu::CHARSET#0 = ((byte*))38912 Constant (const byte) menu::i#0 = 0 Constant (const byte[25]) form_line_lo#0 = { fill( 25, 0) } Constant (const byte[25]) form_line_hi#0 = { fill( 25, 0) } -Constant (const byte) form_field_idx#32 = 0 +Constant (const byte) form_field_idx#36 = 0 Constant (const byte) form_fields_cnt#0 = 9 Constant (const byte[]) form_fields_x#0 = { 7, 7, 7, 7, 7, 7, 7, 17, 17 } Constant (const byte[]) form_fields_y#0 = { 2, 3, 4, 5, 6, 7, 8, 7, 8 } +Constant (const byte[]) form_fields_max#0 = { 1, 1, 1, 1, 1, 2, 1, 1, 1 } Constant (const byte[]) form_fields_val#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte) key_down_debounce#24 = 0 Constant (const byte) key_right_debounce#24 = 0 @@ -5287,6 +5381,12 @@ Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx# Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 Fixing inline constructor with form_field_ptr::$2 ← *(form_line_hi#0 + form_field_ptr::y#0) w= *(form_line_lo#0 + form_field_ptr::y#0) Succesful SSA optimization Pass2FixInlineConstructors Eliminating unused variable - keeping the phi block (byte*) print_screen#13 @@ -5333,17 +5433,19 @@ Culled Empty Block (label) menu::@4 Culled Empty Block (label) menu::@7 Culled Empty Block (label) menu::@22 Culled Empty Block (label) @21 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@14 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@16 Culled Empty Block (label) form_control::@5 Culled Empty Block (label) form_control::@7 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@20 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@22 Culled Empty Block (label) form_control::@9 Culled Empty Block (label) form_control::@10 Culled Empty Block (label) form_control::@11 +Culled Empty Block (label) form_control::@13 +Culled Empty Block (label) form_control::@15 Culled Empty Block (label) @26 Succesful SSA optimization Pass2CullEmptyBlocks -Not culling empty block because it shares successor with its predecessor. (label) form_control::@14 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@20 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@16 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@22 Not aliassing across scopes: print_line_cursor#18 print_line_cursor#17 Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 @@ -5383,9 +5485,15 @@ Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx# Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@14 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@20 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@16 Not culling empty block because it shares successor with its predecessor. (label) form_control::@22 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@24 Not aliassing across scopes: print_line_cursor#18 print_line_cursor#17 Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 @@ -5419,6 +5527,12 @@ Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx# Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 +Multiple usages for variable. Not optimizing sub-constant (byte) form_field_idx#14 OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const string) print_str_lines::str#1 Inlining constant with var siblings (const string) print_str_lines::str#1 @@ -5437,13 +5551,13 @@ Inlining constant with var siblings (const byte) form_set_screen::y#0 Inlining constant with var siblings (const byte) form_set_screen::y#0 Inlining constant with var siblings (const byte) form_render_values::idx#0 Inlining constant with var siblings (const byte) form_render_values::idx#0 -Inlining constant with var siblings (const byte) form_field_idx#32 -Inlining constant with var siblings (const byte) form_field_idx#32 -Inlining constant with var siblings (const byte) form_field_idx#32 -Inlining constant with var siblings (const byte) form_field_idx#32 -Inlining constant with var siblings (const byte) form_field_idx#32 -Inlining constant with var siblings (const byte) form_field_idx#32 -Inlining constant with different constant siblings (const byte) form_field_idx#32 +Inlining constant with var siblings (const byte) form_field_idx#36 +Inlining constant with var siblings (const byte) form_field_idx#36 +Inlining constant with var siblings (const byte) form_field_idx#36 +Inlining constant with var siblings (const byte) form_field_idx#36 +Inlining constant with var siblings (const byte) form_field_idx#36 +Inlining constant with var siblings (const byte) form_field_idx#36 +Inlining constant with different constant siblings (const byte) form_field_idx#36 Inlining constant with var siblings (const byte) key_down_debounce#24 Inlining constant with var siblings (const byte) key_down_debounce#24 Inlining constant with var siblings (const byte) key_down_debounce#24 @@ -5487,6 +5601,7 @@ Inlining constant with var siblings (const byte) form_field_idx#8 Inlining constant with var siblings (const byte) form_field_idx#8 Inlining constant with different constant siblings (const byte) form_field_idx#8 Inlining constant with different constant siblings (const byte) form_field_idx#8 +Constant inlined form_field_idx#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined key_down_debounce#24 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined menu::$9 = ((word))(const byte*) menu::CHARSET#0 Constant inlined form_control::$3 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 @@ -5501,7 +5616,6 @@ Constant inlined menu::c#0 = (const byte*) COLS#0 Constant inlined print_screen#1 = (const byte*) menu::SCREEN#0 Constant inlined form_field_idx#7 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined menu::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined form_field_idx#32 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined form_set_screen::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined form_set_screen::screen#0 = (const byte*) menu::SCREEN#0 Constant inlined menu::$16 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383 @@ -5536,16 +5650,16 @@ Constant inlined form_cursor_count#7 = (const signed byte) FORM_CURSOR_BLINK#0/( Constant inlined menu::$21 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 Constant inlined menu::$22 = ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 Succesful SSA optimization Pass2ConstantInlining -Block Sequence Planned @begin @25 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@10 menu::@17 menu::@18 menu::@19 menu::@20 menu::@3 menu::@return menu::@6 menu::@8 form_control form_control::@28 form_control::@14 form_control::@1 form_control::@15 form_control::@3 form_control::@29 form_control::@17 form_control::@18 form_control::@31 form_control::@19 form_control::@20 form_control::@8 form_control::@return form_control::@6 form_control::@22 form_control::@4 form_control::@30 form_control::@24 form_control::@25 form_control::@32 form_control::@26 form_control::@13 form_control::@12 form_control::@2 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return form_field_ptr form_field_ptr::@return form_render_values form_render_values::@1 form_render_values::@3 form_render_values::@return form_set_screen form_set_screen::@1 form_set_screen::@return print_str_lines print_str_lines::@1 print_str_lines::@return print_str_lines::@4 print_str_lines::@8 print_str_lines::@5 print_str_lines::@9 print_ln print_ln::@1 print_ln::@return print_cls print_cls::@1 print_cls::@return print_set_screen print_set_screen::@return +Block Sequence Planned @begin @25 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@10 menu::@17 menu::@18 menu::@19 menu::@20 menu::@3 menu::@return menu::@6 menu::@8 form_control form_control::@32 form_control::@16 form_control::@1 form_control::@17 form_control::@3 form_control::@33 form_control::@19 form_control::@20 form_control::@35 form_control::@21 form_control::@22 form_control::@8 form_control::@return form_control::@6 form_control::@24 form_control::@4 form_control::@34 form_control::@26 form_control::@27 form_control::@36 form_control::@28 form_control::@29 form_control::@14 form_control::@12 form_control::@31 form_control::@2 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return form_field_ptr form_field_ptr::@return form_render_values form_render_values::@1 form_render_values::@3 form_render_values::@return form_set_screen form_set_screen::@1 form_set_screen::@return print_str_lines print_str_lines::@1 print_str_lines::@return print_str_lines::@4 print_str_lines::@8 print_str_lines::@5 print_str_lines::@9 print_ln print_ln::@1 print_ln::@return print_cls print_cls::@1 print_cls::@return print_set_screen print_set_screen::@return Added new block during phi lifting menu::@23(between menu::@1 and menu::@1) Added new block during phi lifting menu::@24(between menu::@2 and menu::@2) -Added new block during phi lifting form_control::@33(between form_control::@28 and form_control::@1) -Added new block during phi lifting form_control::@34(between form_control::@19 and form_control::@8) -Added new block during phi lifting form_control::@35(between form_control::@6 and form_control::@8) -Added new block during phi lifting form_control::@36(between form_control::@30 and form_control::@return) -Added new block during phi lifting form_control::@37(between form_control::@24 and form_control::@return) -Added new block during phi lifting form_control::@38(between form_control::@29 and form_control::@4) -Added new block during phi lifting form_control::@39(between form_control::@17 and form_control::@4) +Added new block during phi lifting form_control::@37(between form_control::@32 and form_control::@1) +Added new block during phi lifting form_control::@38(between form_control::@21 and form_control::@8) +Added new block during phi lifting form_control::@39(between form_control::@6 and form_control::@8) +Added new block during phi lifting form_control::@40(between form_control::@34 and form_control::@return) +Added new block during phi lifting form_control::@41(between form_control::@26 and form_control::@return) +Added new block during phi lifting form_control::@42(between form_control::@33 and form_control::@4) +Added new block during phi lifting form_control::@43(between form_control::@19 and form_control::@4) Added new block during phi lifting form_render_values::@4(between form_render_values::@3 and form_render_values::@1) Added new block during phi lifting form_set_screen::@3(between form_set_screen::@1 and form_set_screen::@1) Added new block during phi lifting print_str_lines::@12(between print_str_lines::@1 and print_str_lines::@4) @@ -5553,7 +5667,7 @@ Added new block during phi lifting print_str_lines::@13(between print_str_lines: Added new block during phi lifting print_str_lines::@14(between print_str_lines::@4 and print_str_lines::@5) Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1) -Block Sequence Planned @begin @25 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@10 menu::@17 menu::@18 menu::@19 menu::@20 menu::@3 menu::@return menu::@6 menu::@8 menu::@24 menu::@23 form_control form_control::@28 form_control::@14 form_control::@1 form_control::@15 form_control::@3 form_control::@29 form_control::@17 form_control::@18 form_control::@31 form_control::@19 form_control::@20 form_control::@8 form_control::@return form_control::@34 form_control::@6 form_control::@22 form_control::@35 form_control::@39 form_control::@4 form_control::@30 form_control::@24 form_control::@25 form_control::@32 form_control::@26 form_control::@13 form_control::@12 form_control::@37 form_control::@36 form_control::@38 form_control::@2 form_control::@33 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return form_field_ptr form_field_ptr::@return form_render_values form_render_values::@1 form_render_values::@3 form_render_values::@return form_render_values::@4 form_set_screen form_set_screen::@1 form_set_screen::@return form_set_screen::@3 print_str_lines print_str_lines::@1 print_str_lines::@return print_str_lines::@12 print_str_lines::@4 print_str_lines::@8 print_str_lines::@5 print_str_lines::@9 print_str_lines::@13 print_str_lines::@14 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_cls print_cls::@1 print_cls::@return print_cls::@3 print_set_screen print_set_screen::@return +Block Sequence Planned @begin @25 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@10 menu::@17 menu::@18 menu::@19 menu::@20 menu::@3 menu::@return menu::@6 menu::@8 menu::@24 menu::@23 form_control form_control::@32 form_control::@16 form_control::@1 form_control::@17 form_control::@3 form_control::@33 form_control::@19 form_control::@20 form_control::@35 form_control::@21 form_control::@22 form_control::@8 form_control::@return form_control::@38 form_control::@6 form_control::@24 form_control::@39 form_control::@43 form_control::@4 form_control::@34 form_control::@26 form_control::@27 form_control::@36 form_control::@28 form_control::@29 form_control::@14 form_control::@12 form_control::@31 form_control::@41 form_control::@40 form_control::@42 form_control::@2 form_control::@37 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return form_field_ptr form_field_ptr::@return form_render_values form_render_values::@1 form_render_values::@3 form_render_values::@return form_render_values::@4 form_set_screen form_set_screen::@1 form_set_screen::@return form_set_screen::@3 print_str_lines print_str_lines::@1 print_str_lines::@return print_str_lines::@12 print_str_lines::@4 print_str_lines::@8 print_str_lines::@5 print_str_lines::@9 print_str_lines::@13 print_str_lines::@14 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_cls print_cls::@1 print_cls::@return print_cls::@3 print_set_screen print_set_screen::@return Adding NOP phi() at start of @begin Adding NOP phi() at start of @25 Adding NOP phi() at start of @end @@ -5563,11 +5677,11 @@ Adding NOP phi() at start of menu::@18 Adding NOP phi() at start of menu::@19 Adding NOP phi() at start of menu::@20 Adding NOP phi() at start of menu::@8 -Adding NOP phi() at start of form_control::@14 +Adding NOP phi() at start of form_control::@16 Adding NOP phi() at start of form_control::@3 -Adding NOP phi() at start of form_control::@20 Adding NOP phi() at start of form_control::@22 -Adding NOP phi() at start of form_control::@25 +Adding NOP phi() at start of form_control::@24 +Adding NOP phi() at start of form_control::@27 Adding NOP phi() at start of form_render_values Adding NOP phi() at start of form_set_screen Adding NOP phi() at start of print_str_lines @@ -5619,41 +5733,41 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 30 initial phi equivalence classes -Coalesced [11] form_cursor_count#54 ← form_cursor_count#13 -Coalesced [12] key_down_debounce#61 ← key_down_debounce#11 -Coalesced [13] form_field_idx#63 ← form_field_idx#14 -Coalesced [14] key_right_debounce#61 ← key_right_debounce#11 -Coalesced (already) [43] form_cursor_count#55 ← form_cursor_count#1 -Coalesced (already) [44] key_down_debounce#62 ← key_down_debounce#1 -Coalesced (already) [45] form_field_idx#64 ← form_field_idx#1 -Coalesced (already) [46] key_right_debounce#62 ← key_right_debounce#1 -Coalesced [53] form_cursor_count#56 ← form_cursor_count#16 -Coalesced [54] key_down_debounce#63 ← key_down_debounce#13 -Coalesced [55] form_field_idx#65 ← form_field_idx#18 -Coalesced [56] key_right_debounce#63 ← key_right_debounce#13 +Coalesced [11] form_cursor_count#58 ← form_cursor_count#13 +Coalesced [12] key_down_debounce#65 ← key_down_debounce#11 +Coalesced [13] form_field_idx#67 ← form_field_idx#14 +Coalesced [14] key_right_debounce#65 ← key_right_debounce#11 +Coalesced (already) [43] form_cursor_count#59 ← form_cursor_count#1 +Coalesced (already) [44] key_down_debounce#66 ← key_down_debounce#1 +Coalesced (already) [45] form_field_idx#68 ← form_field_idx#1 +Coalesced (already) [46] key_right_debounce#66 ← key_right_debounce#1 +Coalesced [53] form_cursor_count#60 ← form_cursor_count#16 +Coalesced [54] key_down_debounce#67 ← key_down_debounce#13 +Coalesced [55] form_field_idx#69 ← form_field_idx#18 +Coalesced [56] key_right_debounce#67 ← key_right_debounce#13 Coalesced [57] menu::c#3 ← menu::c#1 Coalesced [58] menu::i#3 ← menu::i#1 Coalesced [60] form_field_ptr::field_idx#3 ← form_field_ptr::field_idx#1 -Coalesced [88] key_down_debounce#67 ← key_down_debounce#23 -Coalesced [89] form_field_idx#71 ← form_field_idx#30 -Coalesced (already) [90] key_right_debounce#67 ← key_right_debounce#11 -Coalesced [93] form_field_idx#66 ← form_field_idx#37 -Coalesced [97] form_field_idx#67 ← form_field_idx#38 -Coalesced [98] key_down_debounce#69 ← key_down_debounce#23 -Coalesced [115] form_cursor_count#60 ← form_cursor_count#15 -Coalesced (already) [116] key_down_debounce#66 ← key_down_debounce#20 -Coalesced (already) [117] form_field_idx#70 ← form_field_idx#14 -Coalesced [118] key_right_debounce#66 ← key_right_debounce#21 -Coalesced (already) [122] form_cursor_count#59 ← form_cursor_count#15 -Coalesced (already) [123] key_down_debounce#65 ← key_down_debounce#20 -Coalesced (already) [124] form_field_idx#69 ← form_field_idx#14 -Coalesced (already) [125] key_right_debounce#65 ← key_right_debounce#21 -Coalesced (already) [126] form_cursor_count#58 ← form_cursor_count#15 -Coalesced (already) [127] key_down_debounce#64 ← key_down_debounce#20 -Coalesced (already) [128] form_field_idx#68 ← form_field_idx#14 -Coalesced (already) [129] key_right_debounce#64 ← key_right_debounce#11 -Coalesced (already) [130] key_down_debounce#68 ← key_down_debounce#11 -Coalesced [133] form_cursor_count#57 ← form_cursor_count#5 +Coalesced [88] key_down_debounce#71 ← key_down_debounce#23 +Coalesced [89] form_field_idx#75 ← form_field_idx#32 +Coalesced (already) [90] key_right_debounce#71 ← key_right_debounce#11 +Coalesced [93] form_field_idx#70 ← form_field_idx#41 +Coalesced [97] form_field_idx#71 ← form_field_idx#42 +Coalesced [98] key_down_debounce#73 ← key_down_debounce#23 +Coalesced [115] form_cursor_count#64 ← form_cursor_count#15 +Coalesced (already) [116] key_down_debounce#70 ← key_down_debounce#20 +Coalesced (already) [117] form_field_idx#74 ← form_field_idx#14 +Coalesced [118] key_right_debounce#70 ← key_right_debounce#21 +Coalesced (already) [122] form_cursor_count#63 ← form_cursor_count#15 +Coalesced (already) [123] key_down_debounce#69 ← key_down_debounce#20 +Coalesced (already) [124] form_field_idx#73 ← form_field_idx#14 +Coalesced (already) [125] key_right_debounce#69 ← key_right_debounce#21 +Coalesced (already) [126] form_cursor_count#62 ← form_cursor_count#15 +Coalesced (already) [127] key_down_debounce#68 ← key_down_debounce#20 +Coalesced (already) [128] form_field_idx#72 ← form_field_idx#14 +Coalesced (already) [129] key_right_debounce#68 ← key_right_debounce#11 +Coalesced (already) [130] key_down_debounce#72 ← key_down_debounce#11 +Coalesced [133] form_cursor_count#61 ← form_cursor_count#5 Coalesced [155] form_field_ptr::field_idx#4 ← form_field_ptr::field_idx#0 Coalesced [163] form_render_values::idx#4 ← form_render_values::idx#1 Coalesced [174] form_set_screen::line#3 ← form_set_screen::line#1 @@ -5673,16 +5787,16 @@ Coalesced [211] print_cls::sc#3 ← print_cls::sc#1 Coalesced down to 15 phi equivalence classes Culled Empty Block (label) menu::@24 Culled Empty Block (label) menu::@23 -Culled Empty Block (label) form_control::@14 -Culled Empty Block (label) form_control::@20 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@34 +Culled Empty Block (label) form_control::@16 Culled Empty Block (label) form_control::@22 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@35 -Culled Empty Block (label) form_control::@39 -Culled Empty Block (label) form_control::@37 -Culled Empty Block (label) form_control::@36 -Culled Empty Block (label) form_control::@38 -Not culling empty block because it shares successor with its predecessor. (label) form_control::@33 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@38 +Culled Empty Block (label) form_control::@24 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@39 +Culled Empty Block (label) form_control::@43 +Culled Empty Block (label) form_control::@41 +Culled Empty Block (label) form_control::@40 +Culled Empty Block (label) form_control::@42 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@37 Culled Empty Block (label) form_render_values::@4 Culled Empty Block (label) form_set_screen::@3 Culled Empty Block (label) print_str_lines::@12 @@ -5690,7 +5804,7 @@ Culled Empty Block (label) print_str_lines::@13 Culled Empty Block (label) print_str_lines::@14 Culled Empty Block (label) print_ln::@3 Culled Empty Block (label) print_cls::@3 -Block Sequence Planned @begin @25 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@10 menu::@17 menu::@18 menu::@19 menu::@20 menu::@3 menu::@return menu::@6 menu::@8 form_control form_control::@28 form_control::@1 form_control::@15 form_control::@3 form_control::@29 form_control::@17 form_control::@18 form_control::@31 form_control::@19 form_control::@8 form_control::@return form_control::@34 form_control::@6 form_control::@35 form_control::@4 form_control::@30 form_control::@24 form_control::@25 form_control::@32 form_control::@26 form_control::@13 form_control::@12 form_control::@2 form_control::@33 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return form_field_ptr form_field_ptr::@return form_render_values form_render_values::@1 form_render_values::@3 form_render_values::@return form_set_screen form_set_screen::@1 form_set_screen::@return print_str_lines print_str_lines::@1 print_str_lines::@return print_str_lines::@4 print_str_lines::@8 print_str_lines::@5 print_str_lines::@9 print_ln print_ln::@1 print_ln::@return print_cls print_cls::@1 print_cls::@return print_set_screen print_set_screen::@return +Block Sequence Planned @begin @25 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@10 menu::@17 menu::@18 menu::@19 menu::@20 menu::@3 menu::@return menu::@6 menu::@8 form_control form_control::@32 form_control::@1 form_control::@17 form_control::@3 form_control::@33 form_control::@19 form_control::@20 form_control::@35 form_control::@21 form_control::@8 form_control::@return form_control::@38 form_control::@6 form_control::@39 form_control::@4 form_control::@34 form_control::@26 form_control::@27 form_control::@36 form_control::@28 form_control::@29 form_control::@14 form_control::@12 form_control::@31 form_control::@2 form_control::@37 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return form_field_ptr form_field_ptr::@return form_render_values form_render_values::@1 form_render_values::@3 form_render_values::@return form_set_screen form_set_screen::@1 form_set_screen::@return print_str_lines print_str_lines::@1 print_str_lines::@return print_str_lines::@4 print_str_lines::@8 print_str_lines::@5 print_str_lines::@9 print_ln print_ln::@1 print_ln::@return print_cls print_cls::@1 print_cls::@return print_set_screen print_set_screen::@return Adding NOP phi() at start of @begin Adding NOP phi() at start of @25 Adding NOP phi() at start of @end @@ -5701,10 +5815,10 @@ Adding NOP phi() at start of menu::@19 Adding NOP phi() at start of menu::@20 Adding NOP phi() at start of menu::@8 Adding NOP phi() at start of form_control::@3 -Adding NOP phi() at start of form_control::@34 -Adding NOP phi() at start of form_control::@35 -Adding NOP phi() at start of form_control::@25 -Adding NOP phi() at start of form_control::@33 +Adding NOP phi() at start of form_control::@38 +Adding NOP phi() at start of form_control::@39 +Adding NOP phi() at start of form_control::@27 +Adding NOP phi() at start of form_control::@37 Adding NOP phi() at start of form_render_values Adding NOP phi() at start of form_set_screen Adding NOP phi() at start of print_str_lines @@ -5838,111 +5952,115 @@ form_control: scope:[form_control] from menu::@8 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) - to:form_control::@28 -form_control::@28: scope:[form_control] from form_control + to:form_control::@32 +form_control::@32: scope:[form_control] from form_control [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) - [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) + [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@37 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) to:form_control::@1 -form_control::@1: scope:[form_control] from form_control::@28 form_control::@33 - [51] (signed byte) form_cursor_count#15 ← phi( form_control::@28/(const signed byte) FORM_CURSOR_BLINK#0 form_control::@33/(signed byte) form_cursor_count#5 ) [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) +form_control::@1: scope:[form_control] from form_control::@32 form_control::@37 + [51] (signed byte) form_cursor_count#15 ← phi( form_control::@32/(const signed byte) FORM_CURSOR_BLINK#0 form_control::@37/(signed byte) form_cursor_count#5 ) [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - to:form_control::@15 -form_control::@15: scope:[form_control] from form_control::@1 + to:form_control::@17 +form_control::@17: scope:[form_control] from form_control::@1 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) to:form_control::@3 -form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 +form_control::@3: scope:[form_control] from form_control::@17 form_control::@2 [55] phi() [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) - to:form_control::@29 -form_control::@29: scope:[form_control] from form_control::@3 + to:form_control::@33 +form_control::@33: scope:[form_control] from form_control::@3 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) - to:form_control::@17 -form_control::@17: scope:[form_control] from form_control::@29 + to:form_control::@19 +form_control::@19: scope:[form_control] from form_control::@33 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) - to:form_control::@18 -form_control::@18: scope:[form_control] from form_control::@17 + to:form_control::@20 +form_control::@20: scope:[form_control] from form_control::@19 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) - to:form_control::@31 -form_control::@31: scope:[form_control] from form_control::@18 + to:form_control::@35 +form_control::@35: scope:[form_control] from form_control::@20 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) - to:form_control::@19 -form_control::@19: scope:[form_control] from form_control::@31 - [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) - [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) + to:form_control::@21 +form_control::@21: scope:[form_control] from form_control::@35 + [68] (byte) form_field_idx#41 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) + [69] if((byte) form_field_idx#41!=(const byte) form_fields_cnt#0) goto form_control::@38 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) to:form_control::@8 -form_control::@8: scope:[form_control] from form_control::@19 form_control::@34 form_control::@35 form_control::@6 - [70] (byte) form_field_idx#30 ← phi( form_control::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@6/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@34/(byte) form_field_idx#37 form_control::@35/(byte) form_field_idx#38 ) [ key_right_debounce#11 key_down_debounce#23 form_field_idx#30 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#30 ] ) +form_control::@8: scope:[form_control] from form_control::@21 form_control::@38 form_control::@39 form_control::@6 + [70] (byte) form_field_idx#32 ← phi( form_control::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@6/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@38/(byte) form_field_idx#41 form_control::@39/(byte) form_field_idx#42 ) [ key_right_debounce#11 key_down_debounce#23 form_field_idx#32 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#32 ] ) to:form_control::@return -form_control::@return: scope:[form_control] from form_control::@13 form_control::@24 form_control::@30 form_control::@8 - [71] (byte) key_right_debounce#13 ← phi( form_control::@30/(byte) key_right_debounce#11 form_control::@24/(byte) key_right_debounce#21 form_control::@13/(byte) key_right_debounce#21 form_control::@8/(byte) key_right_debounce#11 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [71] (byte) form_field_idx#18 ← phi( form_control::@30/(byte) form_field_idx#14 form_control::@24/(byte) form_field_idx#14 form_control::@13/(byte) form_field_idx#14 form_control::@8/(byte) form_field_idx#30 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [71] (byte) key_down_debounce#13 ← phi( form_control::@30/(byte) key_down_debounce#20 form_control::@24/(byte) key_down_debounce#20 form_control::@13/(byte) key_down_debounce#20 form_control::@8/(byte) key_down_debounce#23 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [71] (signed byte) form_cursor_count#16 ← phi( form_control::@30/(signed byte) form_cursor_count#15 form_control::@24/(signed byte) form_cursor_count#15 form_control::@13/(signed byte) form_cursor_count#15 form_control::@8/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) +form_control::@return: scope:[form_control] from form_control::@14 form_control::@26 form_control::@34 form_control::@8 + [71] (byte) key_right_debounce#13 ← phi( form_control::@34/(byte) key_right_debounce#11 form_control::@26/(byte) key_right_debounce#21 form_control::@14/(byte) key_right_debounce#21 form_control::@8/(byte) key_right_debounce#11 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (byte) form_field_idx#18 ← phi( form_control::@34/(byte) form_field_idx#14 form_control::@26/(byte) form_field_idx#14 form_control::@14/(byte) form_field_idx#14 form_control::@8/(byte) form_field_idx#32 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (byte) key_down_debounce#13 ← phi( form_control::@34/(byte) key_down_debounce#20 form_control::@26/(byte) key_down_debounce#20 form_control::@14/(byte) key_down_debounce#20 form_control::@8/(byte) key_down_debounce#23 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (signed byte) form_cursor_count#16 ← phi( form_control::@34/(signed byte) form_cursor_count#15 form_control::@26/(signed byte) form_cursor_count#15 form_control::@14/(signed byte) form_cursor_count#15 form_control::@8/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) to:@return -form_control::@34: scope:[form_control] from form_control::@19 - [73] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) +form_control::@38: scope:[form_control] from form_control::@21 + [73] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) to:form_control::@8 -form_control::@6: scope:[form_control] from form_control::@31 - [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) - [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) +form_control::@6: scope:[form_control] from form_control::@35 + [74] (byte) form_field_idx#42 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) + [75] if((byte) form_field_idx#42!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@39 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) to:form_control::@8 -form_control::@35: scope:[form_control] from form_control::@6 - [76] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) +form_control::@39: scope:[form_control] from form_control::@6 + [76] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) to:form_control::@8 -form_control::@4: scope:[form_control] from form_control::@17 form_control::@29 - [77] (byte) key_down_debounce#20 ← phi( form_control::@29/(byte) key_down_debounce#11 form_control::@17/(byte) key_down_debounce#23 ) [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ) +form_control::@4: scope:[form_control] from form_control::@19 form_control::@33 + [77] (byte) key_down_debounce#20 ← phi( form_control::@33/(byte) key_down_debounce#11 form_control::@19/(byte) key_down_debounce#23 ) [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ) [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) - to:form_control::@30 -form_control::@30: scope:[form_control] from form_control::@4 + to:form_control::@34 +form_control::@34: scope:[form_control] from form_control::@4 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) - to:form_control::@24 -form_control::@24: scope:[form_control] from form_control::@30 + to:form_control::@26 +form_control::@26: scope:[form_control] from form_control::@34 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@25 -form_control::@25: scope:[form_control] from form_control::@24 + to:form_control::@27 +form_control::@27: scope:[form_control] from form_control::@26 [84] phi() [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) - to:form_control::@32 -form_control::@32: scope:[form_control] from form_control::@25 + to:form_control::@36 +form_control::@36: scope:[form_control] from form_control::@27 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@26 -form_control::@26: scope:[form_control] from form_control::@32 - [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) - [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) - [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@13 -form_control::@13: scope:[form_control] from form_control::@12 form_control::@26 + to:form_control::@28 +form_control::@28: scope:[form_control] from form_control::@36 + [89] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← ++ *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + [90] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@29 +form_control::@29: scope:[form_control] from form_control::@28 + [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@14 +form_control::@14: scope:[form_control] from form_control::@12 form_control::@28 form_control::@29 form_control::@31 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) to:form_control::@return -form_control::@12: scope:[form_control] from form_control::@32 - [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) - [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) - [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@13 +form_control::@12: scope:[form_control] from form_control::@36 + [93] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + [94] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@31 +form_control::@31: scope:[form_control] from form_control::@12 + [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@14 form_control::@2: scope:[form_control] from form_control::@1 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) to:form_control::@3 -form_control::@33: scope:[form_control] from form_control::@28 +form_control::@37: scope:[form_control] from form_control::@32 [98] phi() [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) to:form_control::@1 -keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@18 form_control::@25 form_control::@3 form_control::@4 - [99] (byte) keyboard_key_pressed::key#4 ← phi( form_control::@18/(const byte) KEY_RSHIFT#0 form_control::@25/(const byte) KEY_RSHIFT#0 form_control::@3/(const byte) KEY_CRSR_DOWN#0 form_control::@4/(const byte) KEY_CRSR_RIGHT#0 ) [ keyboard_key_pressed::key#4 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 ] ) +keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@20 form_control::@27 form_control::@3 form_control::@4 + [99] (byte) keyboard_key_pressed::key#4 ← phi( form_control::@20/(const byte) KEY_RSHIFT#0 form_control::@27/(const byte) KEY_RSHIFT#0 form_control::@3/(const byte) KEY_CRSR_DOWN#0 form_control::@4/(const byte) KEY_CRSR_RIGHT#0 ) [ keyboard_key_pressed::key#4 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 ] ) [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) @@ -6091,35 +6209,37 @@ menu::@return dominated by @25 main main::@1 main::@2 @begin menu::@return menu menu::@6 dominated by @25 main main::@1 main::@2 @begin menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@10 menu::@17 menu::@8 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@10 menu::@17 form_control dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu menu::@19 form_control menu::@18 menu::@10 menu::@17 -form_control::@28 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu menu::@19 form_control menu::@18 form_control::@28 menu::@10 menu::@17 -form_control::@1 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu menu::@19 form_control menu::@18 form_control::@28 menu::@10 menu::@17 -form_control::@15 dominated by @25 main main::@1 main::@2 @begin form_control::@15 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu menu::@19 form_control menu::@18 form_control::@28 menu::@10 menu::@17 -form_control::@3 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 form_control::@28 menu::@10 menu::@17 -form_control::@29 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@17 dominated by @25 main main::@1 main::@2 @begin form_control::@17 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@18 dominated by @25 main main::@1 main::@2 @begin form_control::@17 form_control::@18 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@31 dominated by @25 main main::@1 main::@2 @begin form_control::@17 form_control::@18 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@31 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@19 dominated by @25 main main::@1 main::@2 @begin form_control::@17 form_control::@18 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@31 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@8 dominated by @25 main main::@1 main::@2 @begin form_control::@17 form_control::@18 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 form_control::@8 menu form_control::@31 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@return dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@return menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@34 dominated by @25 main main::@1 main::@2 @begin form_control::@17 form_control::@18 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@31 form_control::@34 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@6 dominated by @25 main main::@1 main::@2 @begin form_control::@17 form_control::@18 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 form_control::@6 menu form_control::@31 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@35 dominated by @25 main form_control::@35 main::@1 main::@2 @begin form_control::@17 form_control::@18 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 form_control::@6 menu form_control::@31 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@4 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@30 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 form_control::@30 menu menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@24 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 form_control::@30 menu form_control::@24 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@25 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 form_control::@30 menu form_control::@24 form_control::@25 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@32 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 form_control::@30 menu form_control::@32 form_control::@24 form_control::@25 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@26 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 form_control::@30 menu form_control::@32 form_control::@24 form_control::@25 menu::@19 form_control form_control::@26 menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@13 dominated by @25 main main::@1 main::@2 @begin form_control::@13 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 form_control::@30 menu form_control::@32 form_control::@24 form_control::@25 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@12 dominated by @25 main main::@1 main::@2 @begin form_control::@12 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 form_control::@30 menu form_control::@32 form_control::@24 form_control::@25 menu::@19 form_control menu::@18 form_control::@28 form_control::@29 menu::@10 menu::@17 -form_control::@2 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 form_control::@2 menu::@2 menu menu::@19 form_control menu::@18 form_control::@28 menu::@10 menu::@17 -form_control::@33 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu form_control::@33 menu::@19 form_control menu::@18 form_control::@28 menu::@10 menu::@17 -keyboard_key_pressed dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 keyboard_key_pressed form_control::@28 menu::@10 menu::@17 -keyboard_key_pressed::@2 dominated by @25 main main::@1 main::@2 keyboard_key_pressed::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 keyboard_key_pressed form_control::@28 menu::@10 menu::@17 -keyboard_key_pressed::@return dominated by @25 main main::@1 main::@2 keyboard_key_pressed::@2 @begin keyboard_key_pressed::@return menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 keyboard_key_pressed form_control::@28 menu::@10 menu::@17 -keyboard_matrix_read dominated by @25 main main::@1 main::@2 @begin keyboard_matrix_read menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu menu::@19 form_control menu::@18 keyboard_key_pressed form_control::@28 menu::@10 menu::@17 -keyboard_matrix_read::@return dominated by @25 main main::@1 main::@2 @begin keyboard_matrix_read menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu keyboard_matrix_read::@return menu::@19 form_control menu::@18 keyboard_key_pressed form_control::@28 menu::@10 menu::@17 +form_control::@32 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@1 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@17 dominated by @25 main main::@1 main::@2 @begin form_control::@17 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@3 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@33 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@19 dominated by @25 main main::@1 main::@2 @begin form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@20 dominated by @25 main main::@1 main::@2 @begin form_control::@20 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@35 dominated by @25 main form_control::@35 main::@1 main::@2 @begin form_control::@20 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@21 dominated by @25 main form_control::@35 main::@1 main::@2 @begin form_control::@20 form_control::@21 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@8 dominated by @25 main form_control::@35 main::@1 main::@2 @begin form_control::@20 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 form_control::@8 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@return dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@return menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@38 dominated by @25 main form_control::@35 form_control::@38 main::@1 main::@2 @begin form_control::@20 form_control::@21 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@6 dominated by @25 main form_control::@35 main::@1 main::@2 @begin form_control::@20 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 form_control::@6 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@39 dominated by @25 main form_control::@35 form_control::@39 main::@1 main::@2 @begin form_control::@20 form_control::@19 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 form_control::@6 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@4 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@34 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@26 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 menu::@10 menu::@17 +form_control::@27 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 form_control::@27 menu::@10 menu::@17 +form_control::@36 dominated by @25 main form_control::@36 main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 form_control::@27 menu::@10 menu::@17 +form_control::@28 dominated by @25 main form_control::@36 main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 form_control::@27 form_control::@28 menu::@10 menu::@17 +form_control::@29 dominated by @25 main form_control::@36 main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 form_control::@27 form_control::@28 form_control::@29 menu::@10 menu::@17 +form_control::@14 dominated by @25 main form_control::@36 main::@1 main::@2 @begin form_control::@14 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 form_control::@27 menu::@10 menu::@17 +form_control::@12 dominated by @25 main form_control::@36 main::@1 main::@2 @begin form_control::@12 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 form_control::@27 menu::@10 menu::@17 +form_control::@31 dominated by @25 main form_control::@36 main::@1 main::@2 @begin form_control::@12 menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@31 form_control::@32 form_control::@33 form_control::@34 menu::@19 form_control form_control::@26 menu::@18 form_control::@27 menu::@10 menu::@17 +form_control::@2 dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 form_control::@2 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@10 menu::@17 +form_control::@37 dominated by @25 main form_control::@37 main::@1 main::@2 @begin menu::@8 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@10 menu::@17 +keyboard_key_pressed dominated by @25 main main::@1 main::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@10 menu::@17 +keyboard_key_pressed::@2 dominated by @25 main main::@1 main::@2 keyboard_key_pressed::@2 @begin menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@10 menu::@17 +keyboard_key_pressed::@return dominated by @25 main main::@1 main::@2 keyboard_key_pressed::@2 @begin keyboard_key_pressed::@return menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@10 menu::@17 +keyboard_matrix_read dominated by @25 main main::@1 main::@2 @begin keyboard_matrix_read menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@10 menu::@17 +keyboard_matrix_read::@return dominated by @25 main main::@1 main::@2 @begin keyboard_matrix_read menu::@8 form_control::@1 menu::@6 menu::@20 menu::@3 menu::@1 menu::@2 form_control::@3 menu form_control::@32 keyboard_matrix_read::@return menu::@19 form_control menu::@18 keyboard_key_pressed menu::@10 menu::@17 form_field_ptr dominated by @25 main main::@1 main::@2 @begin form_field_ptr menu::@20 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@10 menu::@17 form_field_ptr::@return dominated by @25 main main::@1 form_field_ptr::@return main::@2 @begin form_field_ptr menu::@20 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@10 menu::@17 form_render_values dominated by @25 main main::@1 main::@2 @begin form_render_values menu::@20 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@10 menu::@17 @@ -6252,10 +6372,6 @@ VARIABLE REGISTER WEIGHTS (byte~) form_control::$13 4.0 (byte~) form_control::$14 4.0 (byte~) form_control::$28 4.0 -(byte/signed word/word/dword/signed dword~) form_control::$31 4.0 -(byte/word/dword~) form_control::$32 4.0 -(byte/signed word/word/dword/signed dword~) form_control::$33 4.0 -(byte/word/dword~) form_control::$34 4.0 (byte/word/dword~) form_control::$6 4.0 (byte~) form_control::$7 4.0 (byte*) form_control::field @@ -6272,11 +6388,11 @@ VARIABLE REGISTER WEIGHTS (signed byte) form_cursor_count#5 2.0 (byte) form_field_idx (byte) form_field_idx#1 0.41935483870967744 -(byte) form_field_idx#14 2.666666666666665 +(byte) form_field_idx#14 2.901960784313723 (byte) form_field_idx#18 36.33333333333332 -(byte) form_field_idx#30 6.0 -(byte) form_field_idx#37 2.0 -(byte) form_field_idx#38 2.0 +(byte) form_field_idx#32 6.0 +(byte) form_field_idx#41 2.0 +(byte) form_field_idx#42 2.0 (byte*()) form_field_ptr((byte) form_field_ptr::field_idx) (word~) form_field_ptr::$2 1.0 (byte*) form_field_ptr::field @@ -6294,6 +6410,7 @@ VARIABLE REGISTER WEIGHTS (byte) form_field_ptr::y (byte) form_field_ptr::y#0 6.0 (byte) form_fields_cnt +(byte[]) form_fields_max (byte[]) form_fields_val (byte[]) form_fields_x (byte[]) form_fields_y @@ -6389,7 +6506,7 @@ VARIABLE REGISTER WEIGHTS Initial phi equivalence classes [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] -[ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +[ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] [ menu::i#2 menu::i#1 ] [ menu::c#2 menu::c#1 ] @@ -6414,10 +6531,6 @@ Added variable keyboard_key_pressed::return#3 to zero page equivalence class [ k Added variable form_control::key_right#0 to zero page equivalence class [ form_control::key_right#0 ] Added variable keyboard_key_pressed::return#10 to zero page equivalence class [ keyboard_key_pressed::return#10 ] Added variable form_control::$28 to zero page equivalence class [ form_control::$28 ] -Added variable form_control::$31 to zero page equivalence class [ form_control::$31 ] -Added variable form_control::$32 to zero page equivalence class [ form_control::$32 ] -Added variable form_control::$33 to zero page equivalence class [ form_control::$33 ] -Added variable form_control::$34 to zero page equivalence class [ form_control::$34 ] Added variable form_control::$7 to zero page equivalence class [ form_control::$7 ] Added variable keyboard_key_pressed::colidx#0 to zero page equivalence class [ keyboard_key_pressed::colidx#0 ] Added variable keyboard_key_pressed::rowidx#0 to zero page equivalence class [ keyboard_key_pressed::rowidx#0 ] @@ -6438,7 +6551,7 @@ Added variable print_str_lines::ch#0 to zero page equivalence class [ print_str_ Complete equivalence classes [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] -[ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +[ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] [ menu::i#2 menu::i#1 ] [ menu::c#2 menu::c#1 ] @@ -6463,10 +6576,6 @@ Complete equivalence classes [ form_control::key_right#0 ] [ keyboard_key_pressed::return#10 ] [ form_control::$28 ] -[ form_control::$31 ] -[ form_control::$32 ] -[ form_control::$33 ] -[ form_control::$34 ] [ form_control::$7 ] [ keyboard_key_pressed::colidx#0 ] [ keyboard_key_pressed::rowidx#0 ] @@ -6486,7 +6595,7 @@ Complete equivalence classes [ print_str_lines::ch#0 ] Allocated zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] Allocated zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] -Allocated zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +Allocated zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] Allocated zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] Allocated zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] Allocated zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] @@ -6511,27 +6620,23 @@ Allocated zp ZP_BYTE:33 [ keyboard_key_pressed::return#3 ] Allocated zp ZP_BYTE:34 [ form_control::key_right#0 ] Allocated zp ZP_BYTE:35 [ keyboard_key_pressed::return#10 ] Allocated zp ZP_BYTE:36 [ form_control::$28 ] -Allocated zp ZP_BYTE:37 [ form_control::$31 ] -Allocated zp ZP_BYTE:38 [ form_control::$32 ] -Allocated zp ZP_BYTE:39 [ form_control::$33 ] -Allocated zp ZP_BYTE:40 [ form_control::$34 ] -Allocated zp ZP_BYTE:41 [ form_control::$7 ] -Allocated zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] -Allocated zp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] -Allocated zp ZP_BYTE:44 [ keyboard_matrix_read::rowid#0 ] -Allocated zp ZP_BYTE:45 [ keyboard_matrix_read::return#2 ] -Allocated zp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] -Allocated zp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] -Allocated zp ZP_BYTE:48 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:49 [ form_field_ptr::y#0 ] -Allocated zp ZP_WORD:50 [ form_field_ptr::$2 ] -Allocated zp ZP_BYTE:52 [ form_field_ptr::x#0 ] -Allocated zp ZP_WORD:53 [ form_field_ptr::return#0 ] -Allocated zp ZP_WORD:55 [ form_field_ptr::return#2 ] -Allocated zp ZP_WORD:57 [ form_render_values::field#0 ] -Allocated zp ZP_BYTE:59 [ form_set_screen::$0 ] -Allocated zp ZP_BYTE:60 [ form_set_screen::$1 ] -Allocated zp ZP_BYTE:61 [ print_str_lines::ch#0 ] +Allocated zp ZP_BYTE:37 [ form_control::$7 ] +Allocated zp ZP_BYTE:38 [ keyboard_key_pressed::colidx#0 ] +Allocated zp ZP_BYTE:39 [ keyboard_key_pressed::rowidx#0 ] +Allocated zp ZP_BYTE:40 [ keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:41 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:42 [ keyboard_key_pressed::$2 ] +Allocated zp ZP_BYTE:43 [ keyboard_key_pressed::return#0 ] +Allocated zp ZP_BYTE:44 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:45 [ form_field_ptr::y#0 ] +Allocated zp ZP_WORD:46 [ form_field_ptr::$2 ] +Allocated zp ZP_BYTE:48 [ form_field_ptr::x#0 ] +Allocated zp ZP_WORD:49 [ form_field_ptr::return#0 ] +Allocated zp ZP_WORD:51 [ form_field_ptr::return#2 ] +Allocated zp ZP_WORD:53 [ form_render_values::field#0 ] +Allocated zp ZP_BYTE:55 [ form_set_screen::$0 ] +Allocated zp ZP_BYTE:56 [ form_set_screen::$1 ] +Allocated zp ZP_BYTE:57 [ print_str_lines::ch#0 ] INITIAL ASM //SEG0 Basic Upstart @@ -6802,14 +6907,10 @@ menu: { //SEG89 form_control form_control: { .label _6 = $1b - .label _7 = $29 + .label _7 = $25 .label _13 = $1e .label _14 = $20 .label _28 = $24 - .label _31 = $25 - .label _32 = $26 - .label _33 = $27 - .label _34 = $28 .label field = $19 .label key_down = $1d .label key_right = $22 @@ -6826,9 +6927,9 @@ form_control: { sta form_field_ptr.return_3 lda form_field_ptr.return+1 sta form_field_ptr.return_3+1 - jmp b28 - //SEG95 form_control::@28 - b28: + jmp b32 + //SEG95 form_control::@32 + b32: //SEG96 [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) -- pbuz1=pbuz2 lda form_field_ptr.return_3 sta field @@ -6836,13 +6937,13 @@ form_control: { sta field+1 //SEG97 [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 dec form_cursor_count - //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 + //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@37 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 lda form_cursor_count cmp #0 - bpl b33_from_b28 - //SEG99 [51] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] - b1_from_b28: - //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 + bpl b37_from_b32 + //SEG99 [51] phi from form_control::@32 to form_control::@1 [phi:form_control::@32->form_control::@1] + b1_from_b32: + //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@32->form_control::@1#0] -- vbsz1=vbsc1 lda #FORM_CURSOR_BLINK sta form_cursor_count jmp b1 @@ -6856,9 +6957,9 @@ form_control: { eor #$80 !: bpl b2 - jmp b15 - //SEG103 form_control::@15 - b15: + jmp b17 + //SEG103 form_control::@17 + b17: //SEG104 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuz1=_deref_pbuz2_bor_vbuc1 lda #$80 ldy #0 @@ -6868,8 +6969,8 @@ form_control: { lda _6 ldy #0 sta (field),y - //SEG106 [55] phi from form_control::@15 form_control::@2 to form_control::@3 [phi:form_control::@15/form_control::@2->form_control::@3] - b3_from_b15: + //SEG106 [55] phi from form_control::@17 form_control::@2 to form_control::@3 [phi:form_control::@17/form_control::@2->form_control::@3] + b3_from_b17: b3_from_b2: jmp b3 //SEG107 form_control::@3 @@ -6884,28 +6985,28 @@ form_control: { //SEG111 [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return sta keyboard_key_pressed.return_2 - jmp b29 - //SEG112 form_control::@29 - b29: + jmp b33 + //SEG112 form_control::@33 + b33: //SEG113 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return_2 sta key_down //SEG114 [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuz1_eq_vbuz2_then_la1 lda key_down cmp key_down_debounce - beq b4_from_b29 - jmp b17 - //SEG115 form_control::@17 - b17: + beq b4_from_b33 + jmp b19 + //SEG115 form_control::@19 + b19: //SEG116 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) -- vbuz1=vbuz2 lda key_down sta key_down_debounce //SEG117 [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) -- vbuz1_eq_0_then_la1 lda key_down - beq b4_from_b17 - jmp b18 - //SEG118 form_control::@18 - b18: + beq b4_from_b19 + jmp b20 + //SEG118 form_control::@20 + b20: //SEG119 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$7f ldy #0 @@ -6916,36 +7017,36 @@ form_control: { ldy #0 sta (field),y //SEG121 [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - //SEG122 [99] phi from form_control::@18 to keyboard_key_pressed [phi:form_control::@18->keyboard_key_pressed] - keyboard_key_pressed_from_b18: - //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@18->keyboard_key_pressed#0] -- vbuz1=vbuc1 + //SEG122 [99] phi from form_control::@20 to keyboard_key_pressed [phi:form_control::@20->keyboard_key_pressed] + keyboard_key_pressed_from_b20: + //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@20->keyboard_key_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_key_pressed.key jsr keyboard_key_pressed //SEG124 [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return sta keyboard_key_pressed.return_4 - jmp b31 - //SEG125 form_control::@31 - b31: + jmp b35 + //SEG125 form_control::@35 + b35: //SEG126 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return_4 sta _14 //SEG127 [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuz1_neq_0_then_la1 lda _14 bne b6 - jmp b19 - //SEG128 form_control::@19 - b19: - //SEG129 [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuz1=_inc_vbuz1 + jmp b21 + //SEG128 form_control::@21 + b21: + //SEG129 [68] (byte) form_field_idx#41 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1=_inc_vbuz1 inc form_field_idx - //SEG130 [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG130 [69] if((byte) form_field_idx#41!=(const byte) form_fields_cnt#0) goto form_control::@38 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #form_fields_cnt - bne b34_from_b19 - //SEG131 [70] phi from form_control::@19 to form_control::@8 [phi:form_control::@19->form_control::@8] - b8_from_b19: - //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@19->form_control::@8#0] -- vbuz1=vbuc1 + bne b38_from_b21 + //SEG131 [70] phi from form_control::@21 to form_control::@8 [phi:form_control::@21->form_control::@8] + b8_from_b21: + //SEG132 [70] phi (byte) form_field_idx#32 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@21->form_control::@8#0] -- vbuz1=vbuc1 lda #0 sta form_field_idx jmp b8 @@ -6954,59 +7055,59 @@ form_control: { //SEG134 [71] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] breturn_from_b8: //SEG135 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy - //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@8->form_control::@return#1] -- register_copy + //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#32 [phi:form_control::@8->form_control::@return#1] -- register_copy //SEG137 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy //SEG138 [71] phi (signed byte) form_cursor_count#16 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:form_control::@8->form_control::@return#3] -- vbsz1=vbuc1 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count jmp breturn - //SEG139 [71] phi from form_control::@13 form_control::@24 form_control::@30 to form_control::@return [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return] - breturn_from_b13: - breturn_from_b24: - breturn_from_b30: - //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#0] -- register_copy - //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#1] -- register_copy - //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#2] -- register_copy - //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#3] -- register_copy + //SEG139 [71] phi from form_control::@14 form_control::@26 form_control::@34 to form_control::@return [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return] + breturn_from_b14: + breturn_from_b26: + breturn_from_b34: + //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#0] -- register_copy + //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#1] -- register_copy + //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#2] -- register_copy + //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#3] -- register_copy jmp breturn //SEG144 form_control::@return breturn: //SEG145 [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) rts - //SEG146 [73] phi from form_control::@19 to form_control::@34 [phi:form_control::@19->form_control::@34] - b34_from_b19: - jmp b34 - //SEG147 form_control::@34 - b34: - //SEG148 [70] phi from form_control::@34 form_control::@35 to form_control::@8 [phi:form_control::@34/form_control::@35->form_control::@8] - b8_from_b34: - b8_from_b35: - //SEG149 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#37 [phi:form_control::@34/form_control::@35->form_control::@8#0] -- register_copy + //SEG146 [73] phi from form_control::@21 to form_control::@38 [phi:form_control::@21->form_control::@38] + b38_from_b21: + jmp b38 + //SEG147 form_control::@38 + b38: + //SEG148 [70] phi from form_control::@38 form_control::@39 to form_control::@8 [phi:form_control::@38/form_control::@39->form_control::@8] + b8_from_b38: + b8_from_b39: + //SEG149 [70] phi (byte) form_field_idx#32 = (byte) form_field_idx#41 [phi:form_control::@38/form_control::@39->form_control::@8#0] -- register_copy jmp b8 //SEG150 form_control::@6 b6: - //SEG151 [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuz1=_dec_vbuz1 + //SEG151 [74] (byte) form_field_idx#42 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1=_dec_vbuz1 dec form_field_idx - //SEG152 [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG152 [75] if((byte) form_field_idx#42!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@39 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #$ff - bne b35_from_b6 + bne b39_from_b6 //SEG153 [70] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] b8_from_b6: - //SEG154 [70] phi (byte) form_field_idx#30 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuz1=vbuc1 + //SEG154 [70] phi (byte) form_field_idx#32 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuz1=vbuc1 lda #form_fields_cnt-1 sta form_field_idx jmp b8 - //SEG155 [76] phi from form_control::@6 to form_control::@35 [phi:form_control::@6->form_control::@35] - b35_from_b6: - jmp b35 - //SEG156 form_control::@35 - b35: - jmp b8_from_b35 - //SEG157 [77] phi from form_control::@17 form_control::@29 to form_control::@4 [phi:form_control::@17/form_control::@29->form_control::@4] - b4_from_b17: - b4_from_b29: - //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@17/form_control::@29->form_control::@4#0] -- register_copy + //SEG155 [76] phi from form_control::@6 to form_control::@39 [phi:form_control::@6->form_control::@39] + b39_from_b6: + jmp b39 + //SEG156 form_control::@39 + b39: + jmp b8_from_b39 + //SEG157 [77] phi from form_control::@19 form_control::@33 to form_control::@4 [phi:form_control::@19/form_control::@33->form_control::@4] + b4_from_b19: + b4_from_b33: + //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@19/form_control::@33->form_control::@4#0] -- register_copy jmp b4 //SEG159 form_control::@4 b4: @@ -7020,205 +7121,212 @@ form_control: { //SEG163 [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return sta keyboard_key_pressed.return_3 - jmp b30 - //SEG164 form_control::@30 - b30: + jmp b34 + //SEG164 form_control::@34 + b34: //SEG165 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return_3 sta key_right //SEG166 [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuz1_eq_vbuz2_then_la1 lda key_right cmp key_right_debounce - beq breturn_from_b30 - jmp b24 - //SEG167 form_control::@24 - b24: + beq breturn_from_b34 + jmp b26 + //SEG167 form_control::@26 + b26: //SEG168 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) -- vbuz1=vbuz2 lda key_right sta key_right_debounce //SEG169 [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuz1_eq_0_then_la1 lda key_right - beq breturn_from_b24 - //SEG170 [84] phi from form_control::@24 to form_control::@25 [phi:form_control::@24->form_control::@25] - b25_from_b24: - jmp b25 - //SEG171 form_control::@25 - b25: + beq breturn_from_b26 + //SEG170 [84] phi from form_control::@26 to form_control::@27 [phi:form_control::@26->form_control::@27] + b27_from_b26: + jmp b27 + //SEG171 form_control::@27 + b27: //SEG172 [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) - //SEG173 [99] phi from form_control::@25 to keyboard_key_pressed [phi:form_control::@25->keyboard_key_pressed] - keyboard_key_pressed_from_b25: - //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@25->keyboard_key_pressed#0] -- vbuz1=vbuc1 + //SEG173 [99] phi from form_control::@27 to keyboard_key_pressed [phi:form_control::@27->keyboard_key_pressed] + keyboard_key_pressed_from_b27: + //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@27->keyboard_key_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_key_pressed.key jsr keyboard_key_pressed //SEG175 [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return sta keyboard_key_pressed.return_10 - jmp b32 - //SEG176 form_control::@32 - b32: + jmp b36 + //SEG176 form_control::@36 + b36: //SEG177 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return_10 sta _28 //SEG178 [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuz1_neq_0_then_la1 lda _28 bne b12 - jmp b26 - //SEG179 form_control::@26 - b26: - //SEG180 [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_plus_1 + jmp b28 + //SEG179 form_control::@28 + b28: + //SEG180 [89] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← ++ *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 + ldx form_field_idx + inc form_fields_val,x + //SEG181 [90] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1_le_pbuc2_derefidx_vbuz1_then_la1 ldy form_field_idx lda form_fields_val,y - clc - adc #1 - sta _31 - //SEG181 [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) -- vbuz1=vbuz2_band_vbuc1 - lda #$f - and _31 - sta _32 - //SEG182 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda _32 + cmp form_fields_max,y + bcc b14 + beq b14 + jmp b29 + //SEG182 form_control::@29 + b29: + //SEG183 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 ldy form_field_idx + lda #0 sta form_fields_val,y - jmp b13 - //SEG183 form_control::@13 - b13: - //SEG184 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + jmp b14 + //SEG184 form_control::@14 + b14: + //SEG185 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 ldy form_field_idx lda form_fields_val,y tay lda print_hextab,y ldy #0 sta (field),y - jmp breturn_from_b13 - //SEG185 form_control::@12 + jmp breturn_from_b14 + //SEG186 form_control::@12 b12: - //SEG186 [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_minus_1 - ldy form_field_idx - lda form_fields_val,y + //SEG187 [93] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 + ldx form_field_idx + lda form_fields_val,x sec sbc #1 - sta _33 - //SEG187 [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) -- vbuz1=vbuz2_band_vbuc1 - lda #$f - and _33 - sta _34 - //SEG188 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda _34 + ldx form_field_idx + sta form_fields_val,x + //SEG188 [94] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 ldy form_field_idx + lda form_fields_val,y + cmp #$ff + bne b14 + jmp b31 + //SEG189 form_control::@31 + b31: + //SEG190 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + ldy form_field_idx + lda form_fields_max,y sta form_fields_val,y - jmp b13 - //SEG189 form_control::@2 + jmp b14 + //SEG191 form_control::@2 b2: - //SEG190 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG192 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$7f ldy #0 and (field),y sta _7 - //SEG191 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 + //SEG193 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 lda _7 ldy #0 sta (field),y jmp b3_from_b2 - //SEG192 [98] phi from form_control::@28 to form_control::@33 [phi:form_control::@28->form_control::@33] - b33_from_b28: - jmp b33 - //SEG193 form_control::@33 - b33: - //SEG194 [51] phi from form_control::@33 to form_control::@1 [phi:form_control::@33->form_control::@1] - b1_from_b33: - //SEG195 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@33->form_control::@1#0] -- register_copy + //SEG194 [98] phi from form_control::@32 to form_control::@37 [phi:form_control::@32->form_control::@37] + b37_from_b32: + jmp b37 + //SEG195 form_control::@37 + b37: + //SEG196 [51] phi from form_control::@37 to form_control::@1 [phi:form_control::@37->form_control::@1] + b1_from_b37: + //SEG197 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@37->form_control::@1#0] -- register_copy jmp b1 } -//SEG196 keyboard_key_pressed +//SEG198 keyboard_key_pressed keyboard_key_pressed: { - .label _2 = $2e - .label colidx = $2a - .label rowidx = $2b - .label return = $2f + .label _2 = $2a + .label colidx = $26 + .label rowidx = $27 + .label return = $2b .label return_2 = $1c .label return_3 = $21 .label return_4 = $1f .label key = 9 .label return_10 = $23 - //SEG197 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuz2_band_vbuc1 + //SEG199 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuz2_band_vbuc1 lda #7 and key sta colidx - //SEG198 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuz1=vbuz2_ror_3 + //SEG200 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuz1=vbuz2_ror_3 lda key lsr lsr lsr sta rowidx - //SEG199 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuz1=vbuz2 + //SEG201 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuz1=vbuz2 lda rowidx sta keyboard_matrix_read.rowid - //SEG200 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) + //SEG202 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) jsr keyboard_matrix_read - //SEG201 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) -- vbuz1=vbuz2 + //SEG203 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return sta keyboard_matrix_read.return_2 jmp b2 - //SEG202 keyboard_key_pressed::@2 + //SEG204 keyboard_key_pressed::@2 b2: - //SEG203 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 + //SEG205 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta _2 - //SEG204 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG206 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _2 ldy colidx and keyboard_matrix_col_bitmask,y sta return jmp breturn - //SEG205 keyboard_key_pressed::@return + //SEG207 keyboard_key_pressed::@return breturn: - //SEG206 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) + //SEG208 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) rts } -//SEG207 keyboard_matrix_read +//SEG209 keyboard_matrix_read keyboard_matrix_read: { - .label return = $30 - .label rowid = $2c - .label return_2 = $2d - //SEG208 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + .label return = $2c + .label rowid = $28 + .label return_2 = $29 + //SEG210 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy rowid lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG209 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1 + //SEG211 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta return jmp breturn - //SEG210 keyboard_matrix_read::@return + //SEG212 keyboard_matrix_read::@return breturn: - //SEG211 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) + //SEG213 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) rts } -//SEG212 form_field_ptr +//SEG214 form_field_ptr form_field_ptr: { - .label y = $31 - .label x = $34 - .label return = $35 + .label y = $2d + .label x = $30 + .label return = $31 .label field_idx = $a - .label return_2 = $37 + .label return_2 = $33 .label return_3 = $17 - .label _2 = $32 - //SEG213 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + .label _2 = $2e + //SEG215 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy field_idx lda form_fields_y,y sta y - //SEG214 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG216 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy y lda form_line_hi,y sta _2+1 lda form_line_lo,y sta _2 - //SEG215 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG217 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy field_idx lda form_fields_x,y sta x - //SEG216 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz2_plus_vbuz3 + //SEG218 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz2_plus_vbuz3 lda x clc adc _2 @@ -7227,106 +7335,106 @@ form_field_ptr: { adc _2+1 sta return+1 jmp breturn - //SEG217 form_field_ptr::@return + //SEG219 form_field_ptr::@return breturn: - //SEG218 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + //SEG220 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) rts } -//SEG219 form_render_values +//SEG221 form_render_values form_render_values: { - .label field = $39 + .label field = $35 .label idx = $b - //SEG220 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + //SEG222 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] b1_from_form_render_values: - //SEG221 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuz1=vbuc1 + //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuz1=vbuc1 lda #0 sta idx jmp b1 - //SEG222 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + //SEG224 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] b1_from_b3: - //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy + //SEG225 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy jmp b1 - //SEG224 form_render_values::@1 + //SEG226 form_render_values::@1 b1: - //SEG225 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) -- vbuz1=vbuz2 + //SEG227 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) -- vbuz1=vbuz2 lda idx sta form_field_ptr.field_idx - //SEG226 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) - //SEG227 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + //SEG228 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG229 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] form_field_ptr_from_b1: - //SEG228 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy + //SEG230 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy jsr form_field_ptr - //SEG229 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) -- pbuz1=pbuz2 + //SEG231 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) -- pbuz1=pbuz2 lda form_field_ptr.return sta form_field_ptr.return_2 lda form_field_ptr.return+1 sta form_field_ptr.return_2+1 jmp b3 - //SEG230 form_render_values::@3 + //SEG232 form_render_values::@3 b3: - //SEG231 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) -- pbuz1=pbuz2 + //SEG233 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) -- pbuz1=pbuz2 lda form_field_ptr.return_2 sta field lda form_field_ptr.return_2+1 sta field+1 - //SEG232 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + //SEG234 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 ldy idx lda form_fields_val,y tay lda print_hextab,y ldy #0 sta (field),y - //SEG233 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG235 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 inc idx - //SEG234 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 + //SEG236 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 lda idx cmp #form_fields_cnt bcc b1_from_b3 jmp breturn - //SEG235 form_render_values::@return + //SEG237 form_render_values::@return breturn: - //SEG236 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG238 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts } -//SEG237 form_set_screen +//SEG239 form_set_screen form_set_screen: { - .label _0 = $3b - .label _1 = $3c + .label _0 = $37 + .label _1 = $38 .label line = $c .label y = $e - //SEG238 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + //SEG240 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] b1_from_form_set_screen: - //SEG239 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuz1=vbuc1 + //SEG241 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG240 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + //SEG242 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta line+1 jmp b1 - //SEG241 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + //SEG243 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] b1_from_b1: - //SEG242 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy - //SEG243 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy + //SEG244 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy + //SEG245 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy jmp b1 - //SEG244 form_set_screen::@1 + //SEG246 form_set_screen::@1 b1: - //SEG245 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuz1=_lo_pbuz2 + //SEG247 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuz1=_lo_pbuz2 lda line sta _0 - //SEG246 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG248 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy y sta form_line_lo,y - //SEG247 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuz1=_hi_pbuz2 + //SEG249 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuz1=_hi_pbuz2 lda line+1 sta _1 - //SEG248 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG250 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda _1 ldy y sta form_line_hi,y - //SEG249 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG251 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -7334,127 +7442,127 @@ form_set_screen: { bcc !+ inc line+1 !: - //SEG250 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG252 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuz1=_inc_vbuz1 inc y - //SEG251 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG253 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b1 jmp breturn - //SEG252 form_set_screen::@return + //SEG254 form_set_screen::@return breturn: - //SEG253 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG255 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts } -//SEG254 print_str_lines +//SEG256 print_str_lines print_str_lines: { - .label ch = $3d + .label ch = $39 .label str = $f - //SEG255 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] + //SEG257 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] b1_from_print_str_lines: - //SEG256 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 + //SEG258 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_line_cursor+1 - //SEG257 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 + //SEG259 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_char_cursor+1 - //SEG258 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 + //SEG260 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 lda #MENU_TEXT sta str+1 jmp b1 - //SEG259 print_str_lines::@1 + //SEG261 print_str_lines::@1 b1: - //SEG260 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG262 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4_from_b1 jmp breturn - //SEG261 print_str_lines::@return + //SEG263 print_str_lines::@return breturn: - //SEG262 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG264 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts - //SEG263 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] + //SEG265 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] b4_from_b1: b4_from_b5: - //SEG264 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG265 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG266 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG267 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy jmp b4 - //SEG266 print_str_lines::@4 + //SEG268 print_str_lines::@4 b4: - //SEG267 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1=_deref_pbuz2 + //SEG269 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1=_deref_pbuz2 ldy #0 lda (str),y sta ch - //SEG268 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG270 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG269 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1_eq_vbuc1_then_la1 + //SEG271 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1_eq_vbuc1_then_la1 lda ch cmp #'@' beq b5_from_b4 jmp b8 - //SEG270 print_str_lines::@8 + //SEG272 print_str_lines::@8 b8: - //SEG271 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuz2 + //SEG273 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuz2 lda ch ldy #0 sta (print_char_cursor),y - //SEG272 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG274 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 inc print_char_cursor bne !+ inc print_char_cursor+1 !: - //SEG273 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] + //SEG275 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] b5_from_b4: b5_from_b8: - //SEG274 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG276 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy jmp b5 - //SEG275 print_str_lines::@5 + //SEG277 print_str_lines::@5 b5: - //SEG276 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG278 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #'@' bne b4_from_b5 - //SEG277 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG279 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] b9_from_b5: jmp b9 - //SEG278 print_str_lines::@9 + //SEG280 print_str_lines::@9 b9: - //SEG279 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) - //SEG280 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG281 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG282 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] print_ln_from_b9: jsr print_ln - //SEG281 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 + //SEG283 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 - //SEG282 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] + //SEG284 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] b1_from_b9: - //SEG283 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG284 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG285 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG285 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG286 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG287 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 } -//SEG286 print_ln +//SEG288 print_ln print_ln: { - //SEG287 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG289 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] b1_from_print_ln: b1_from_b1: - //SEG288 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG290 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp b1 - //SEG289 print_ln::@1 + //SEG291 print_ln::@1 b1: - //SEG290 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG292 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -7462,7 +7570,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG291 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG293 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1_from_b1 @@ -7472,38 +7580,38 @@ print_ln: { bcc b1_from_b1 !: jmp breturn - //SEG292 print_ln::@return + //SEG294 print_ln::@return breturn: - //SEG293 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG295 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) rts } -//SEG294 print_cls +//SEG296 print_cls print_cls: { .label sc = $15 - //SEG295 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + //SEG297 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG296 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG298 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta sc+1 jmp b1 - //SEG297 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + //SEG299 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] b1_from_b1: - //SEG298 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + //SEG300 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy jmp b1 - //SEG299 print_cls::@1 + //SEG301 print_cls::@1 b1: - //SEG300 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG302 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG301 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG303 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG302 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG304 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1_from_b1 @@ -7511,17 +7619,17 @@ print_cls: { cmp #((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a @@ -7555,7 +7664,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ me Statement [25] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] Statement [27] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) always clobbers reg byte a Statement [28] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a @@ -7568,17 +7677,25 @@ Statement [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::f Statement [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y Statement [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) always clobbers reg byte a reg byte y Statement [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) always clobbers reg byte y -Statement [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) always clobbers reg byte a -Statement [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) always clobbers reg byte a +Statement [90] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y +Statement [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a Statement [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y -Statement [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) always clobbers reg byte a -Statement [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) always clobbers reg byte a +Potential register analysis [93] *(form_fields_val#0 + form_field_idx#14) ← -- *(form_fields_val#0 + form_field_idx#14) missing fragment pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx allocation: reg byte x [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] +MISSING FRAGMENTS + pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx +Statement [93] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte x +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Statement [94] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y +Statement [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y Statement [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) always clobbers reg byte a reg byte y Statement [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y Statement [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] Statement [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:38 [ keyboard_key_pressed::colidx#0 ] Statement [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a @@ -7595,7 +7712,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ f Statement [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y Statement [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y Statement [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:61 [ print_str_lines::ch#0 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:57 [ print_str_lines::ch#0 ] Statement [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) always clobbers reg byte a Statement [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a Statement [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a @@ -7619,16 +7736,21 @@ Statement [29] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed wo Statement [42] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) always clobbers reg byte a Statement [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) always clobbers reg byte a Statement [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) always clobbers reg byte a +Statement [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@37 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) always clobbers reg byte a Statement [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a Statement [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y Statement [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y Statement [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) always clobbers reg byte a reg byte y Statement [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) always clobbers reg byte y -Statement [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) always clobbers reg byte a -Statement [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) always clobbers reg byte a +Statement [69] if((byte) form_field_idx#41!=(const byte) form_fields_cnt#0) goto form_control::@38 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) always clobbers reg byte a +Statement [75] if((byte) form_field_idx#42!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@39 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) always clobbers reg byte a +Statement [89] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← ++ *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte x +Statement [90] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y +Statement [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y Statement [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y -Statement [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) always clobbers reg byte a -Statement [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) always clobbers reg byte a +Statement [93] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte x +Statement [94] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y +Statement [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y Statement [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) always clobbers reg byte a reg byte y Statement [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y Statement [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a @@ -7650,10 +7772,10 @@ Statement [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + Statement [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a Statement [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y Statement [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) always clobbers reg byte a -Potential registers zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] : zp ZP_BYTE:2 , reg byte x , -Potential registers zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] : zp ZP_BYTE:3 , reg byte x , -Potential registers zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] : zp ZP_BYTE:4 , reg byte x , -Potential registers zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] : zp ZP_BYTE:5 , reg byte x , +Potential registers zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] : zp ZP_BYTE:2 , +Potential registers zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] : zp ZP_BYTE:3 , +Potential registers zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] : zp ZP_BYTE:4 , +Potential registers zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] : zp ZP_BYTE:5 , Potential registers zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] : zp ZP_BYTE:6 , reg byte x , reg byte y , Potential registers zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] : zp ZP_WORD:7 , Potential registers zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , @@ -7677,106 +7799,88 @@ Potential registers zp ZP_BYTE:33 [ keyboard_key_pressed::return#3 ] : zp ZP_BYT Potential registers zp ZP_BYTE:34 [ form_control::key_right#0 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:35 [ keyboard_key_pressed::return#10 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:36 [ form_control::$28 ] : zp ZP_BYTE:36 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:37 [ form_control::$31 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:38 [ form_control::$32 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:39 [ form_control::$33 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:40 [ form_control::$34 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:41 [ form_control::$7 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] : zp ZP_BYTE:42 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:44 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:45 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:47 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:48 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:48 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:49 [ form_field_ptr::y#0 ] : zp ZP_BYTE:49 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:50 [ form_field_ptr::$2 ] : zp ZP_WORD:50 , -Potential registers zp ZP_BYTE:52 [ form_field_ptr::x#0 ] : zp ZP_BYTE:52 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:53 [ form_field_ptr::return#0 ] : zp ZP_WORD:53 , -Potential registers zp ZP_WORD:55 [ form_field_ptr::return#2 ] : zp ZP_WORD:55 , -Potential registers zp ZP_WORD:57 [ form_render_values::field#0 ] : zp ZP_WORD:57 , -Potential registers zp ZP_BYTE:59 [ form_set_screen::$0 ] : zp ZP_BYTE:59 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:60 [ form_set_screen::$1 ] : zp ZP_BYTE:60 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:61 [ print_str_lines::ch#0 ] : zp ZP_BYTE:61 , reg byte a , reg byte x , +Potential registers zp ZP_BYTE:37 [ form_control::$7 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:38 [ keyboard_key_pressed::colidx#0 ] : zp ZP_BYTE:38 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:39 [ keyboard_key_pressed::rowidx#0 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:40 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:41 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:42 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:42 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:43 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:44 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:45 [ form_field_ptr::y#0 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:46 [ form_field_ptr::$2 ] : zp ZP_WORD:46 , +Potential registers zp ZP_BYTE:48 [ form_field_ptr::x#0 ] : zp ZP_BYTE:48 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:49 [ form_field_ptr::return#0 ] : zp ZP_WORD:49 , +Potential registers zp ZP_WORD:51 [ form_field_ptr::return#2 ] : zp ZP_WORD:51 , +Potential registers zp ZP_WORD:53 [ form_render_values::field#0 ] : zp ZP_WORD:53 , +Potential registers zp ZP_BYTE:55 [ form_set_screen::$0 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:56 [ form_set_screen::$1 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:57 [ print_str_lines::ch#0 ] : zp ZP_BYTE:57 , reg byte a , reg byte x , REGISTER UPLIFT SCOPES -Uplift Scope [] 3,698: zp ZP_WORD:17 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] 2,653.58: zp ZP_WORD:19 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] 50: zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] 49.42: zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] 42.6: zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] 39.91: zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] -Uplift Scope [print_str_lines] 1,937.17: zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] 667.33: zp ZP_BYTE:61 [ print_str_lines::ch#0 ] -Uplift Scope [form_set_screen] 218.83: zp ZP_BYTE:14 [ form_set_screen::y#2 form_set_screen::y#1 ] 202: zp ZP_BYTE:59 [ form_set_screen::$0 ] 202: zp ZP_BYTE:60 [ form_set_screen::$1 ] 148.13: zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplift Scope [] 3,698: zp ZP_WORD:17 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] 2,653.58: zp ZP_WORD:19 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] 50: zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] 49.65: zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] 42.6: zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] 39.91: zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Uplift Scope [print_str_lines] 1,937.17: zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] 667.33: zp ZP_BYTE:57 [ print_str_lines::ch#0 ] +Uplift Scope [form_set_screen] 218.83: zp ZP_BYTE:14 [ form_set_screen::y#2 form_set_screen::y#1 ] 202: zp ZP_BYTE:55 [ form_set_screen::$0 ] 202: zp ZP_BYTE:56 [ form_set_screen::$1 ] 148.13: zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] Uplift Scope [menu] 353.5: zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] 303: zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] -Uplift Scope [form_field_ptr] 241.67: zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] 202: zp ZP_WORD:55 [ form_field_ptr::return#2 ] 26.25: zp ZP_WORD:53 [ form_field_ptr::return#0 ] 6: zp ZP_BYTE:49 [ form_field_ptr::y#0 ] 4: zp ZP_WORD:23 [ form_field_ptr::return#3 ] 4: zp ZP_BYTE:52 [ form_field_ptr::x#0 ] 1: zp ZP_WORD:50 [ form_field_ptr::$2 ] -Uplift Scope [form_render_values] 218.83: zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] 202: zp ZP_WORD:57 [ form_render_values::field#0 ] +Uplift Scope [form_field_ptr] 241.67: zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] 202: zp ZP_WORD:51 [ form_field_ptr::return#2 ] 26.25: zp ZP_WORD:49 [ form_field_ptr::return#0 ] 6: zp ZP_BYTE:45 [ form_field_ptr::y#0 ] 4: zp ZP_WORD:23 [ form_field_ptr::return#3 ] 4: zp ZP_BYTE:48 [ form_field_ptr::x#0 ] 1: zp ZP_WORD:46 [ form_field_ptr::$2 ] +Uplift Scope [form_render_values] 218.83: zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] 202: zp ZP_WORD:53 [ form_render_values::field#0 ] Uplift Scope [print_cls] 303: zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] -Uplift Scope [form_control] 4: zp ZP_BYTE:27 [ form_control::$6 ] 4: zp ZP_BYTE:30 [ form_control::$13 ] 4: zp ZP_BYTE:32 [ form_control::$14 ] 4: zp ZP_BYTE:36 [ form_control::$28 ] 4: zp ZP_BYTE:37 [ form_control::$31 ] 4: zp ZP_BYTE:38 [ form_control::$32 ] 4: zp ZP_BYTE:39 [ form_control::$33 ] 4: zp ZP_BYTE:40 [ form_control::$34 ] 4: zp ZP_BYTE:41 [ form_control::$7 ] 2.67: zp ZP_BYTE:29 [ form_control::key_down#0 ] 2.67: zp ZP_BYTE:34 [ form_control::key_right#0 ] 0.44: zp ZP_WORD:25 [ form_control::field#0 ] -Uplift Scope [keyboard_key_pressed] 4: zp ZP_BYTE:28 [ keyboard_key_pressed::return#2 ] 4: zp ZP_BYTE:31 [ keyboard_key_pressed::return#4 ] 4: zp ZP_BYTE:33 [ keyboard_key_pressed::return#3 ] 4: zp ZP_BYTE:35 [ keyboard_key_pressed::return#10 ] 4: zp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] 4: zp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] 2: zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] 1.67: zp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] 0.67: zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] -Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:44 [ keyboard_matrix_read::rowid#0 ] 4: zp ZP_BYTE:45 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:48 [ keyboard_matrix_read::return#0 ] +Uplift Scope [keyboard_key_pressed] 4: zp ZP_BYTE:28 [ keyboard_key_pressed::return#2 ] 4: zp ZP_BYTE:31 [ keyboard_key_pressed::return#4 ] 4: zp ZP_BYTE:33 [ keyboard_key_pressed::return#3 ] 4: zp ZP_BYTE:35 [ keyboard_key_pressed::return#10 ] 4: zp ZP_BYTE:39 [ keyboard_key_pressed::rowidx#0 ] 4: zp ZP_BYTE:42 [ keyboard_key_pressed::$2 ] 2: zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] 1.67: zp ZP_BYTE:43 [ keyboard_key_pressed::return#0 ] 0.67: zp ZP_BYTE:38 [ keyboard_key_pressed::colidx#0 ] +Uplift Scope [form_control] 4: zp ZP_BYTE:27 [ form_control::$6 ] 4: zp ZP_BYTE:30 [ form_control::$13 ] 4: zp ZP_BYTE:32 [ form_control::$14 ] 4: zp ZP_BYTE:36 [ form_control::$28 ] 4: zp ZP_BYTE:37 [ form_control::$7 ] 2.67: zp ZP_BYTE:29 [ form_control::key_down#0 ] 2.67: zp ZP_BYTE:34 [ form_control::key_right#0 ] 0.44: zp ZP_WORD:25 [ form_control::field#0 ] +Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:40 [ keyboard_matrix_read::rowid#0 ] 4: zp ZP_BYTE:41 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:44 [ keyboard_matrix_read::return#0 ] Uplift Scope [print_ln] Uplift Scope [print_set_screen] Uplift Scope [main] -Uplifting [] best 163799 combination zp ZP_WORD:17 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:19 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] reg byte x [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] -Uplifting [print_str_lines] best 151799 combination zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] -Uplifting [form_set_screen] best 149099 combination reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] reg byte a [ form_set_screen::$1 ] zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] -Uplifting [menu] best 147899 combination reg byte y [ menu::i#2 menu::i#1 ] zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] -Uplifting [form_field_ptr] best 147889 combination zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp ZP_WORD:55 [ form_field_ptr::return#2 ] zp ZP_WORD:53 [ form_field_ptr::return#0 ] reg byte a [ form_field_ptr::y#0 ] zp ZP_WORD:23 [ form_field_ptr::return#3 ] reg byte a [ form_field_ptr::x#0 ] zp ZP_WORD:50 [ form_field_ptr::$2 ] -Uplifting [form_render_values] best 147889 combination zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:57 [ form_render_values::field#0 ] -Uplifting [print_cls] best 147889 combination zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] -Uplifting [form_control] best 147869 combination reg byte a [ form_control::$6 ] reg byte a [ form_control::$13 ] reg byte a [ form_control::$14 ] reg byte a [ form_control::$28 ] zp ZP_BYTE:37 [ form_control::$31 ] zp ZP_BYTE:38 [ form_control::$32 ] zp ZP_BYTE:39 [ form_control::$33 ] zp ZP_BYTE:40 [ form_control::$34 ] zp ZP_BYTE:41 [ form_control::$7 ] zp ZP_BYTE:29 [ form_control::key_down#0 ] zp ZP_BYTE:34 [ form_control::key_right#0 ] zp ZP_WORD:25 [ form_control::field#0 ] -Limited combination testing to 100 combinations of 4194304 possible. -Uplifting [keyboard_key_pressed] best 147845 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#4 ] reg byte a [ keyboard_key_pressed::return#3 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] zp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] +Uplifting [] best 163885 combination zp ZP_WORD:17 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:19 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Uplifting [print_str_lines] best 151885 combination zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] +Uplifting [form_set_screen] best 149185 combination reg byte x [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] reg byte a [ form_set_screen::$1 ] zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplifting [menu] best 147985 combination reg byte x [ menu::i#2 menu::i#1 ] zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] +Uplifting [form_field_ptr] best 147664 combination reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp ZP_WORD:51 [ form_field_ptr::return#2 ] zp ZP_WORD:49 [ form_field_ptr::return#0 ] reg byte y [ form_field_ptr::y#0 ] zp ZP_WORD:23 [ form_field_ptr::return#3 ] reg byte a [ form_field_ptr::x#0 ] zp ZP_WORD:46 [ form_field_ptr::$2 ] +Uplifting [form_render_values] best 146164 combination reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:53 [ form_render_values::field#0 ] +Uplifting [print_cls] best 146164 combination zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] +Uplifting [keyboard_key_pressed] best 146140 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#4 ] reg byte a [ keyboard_key_pressed::return#3 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:39 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:42 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] zp ZP_BYTE:43 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:38 [ keyboard_key_pressed::colidx#0 ] Limited combination testing to 100 combinations of 147456 possible. -Uplifting [keyboard_matrix_read] best 147827 combination reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ] -Uplifting [print_ln] best 147827 combination -Uplifting [print_set_screen] best 147827 combination -Uplifting [main] best 147827 combination -Attempting to uplift remaining variables inzp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] -Uplifting [form_field_ptr] best 147827 combination zp ZP_BYTE:10 [ 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:11 [ form_render_values::idx#2 form_render_values::idx#1 ] -Uplifting [form_render_values] best 147827 combination zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] +Uplifting [form_control] best 146120 combination reg byte a [ form_control::$6 ] reg byte a [ form_control::$13 ] reg byte a [ form_control::$14 ] reg byte a [ form_control::$28 ] zp ZP_BYTE:37 [ form_control::$7 ] zp ZP_BYTE:29 [ form_control::key_down#0 ] zp ZP_BYTE:34 [ form_control::key_right#0 ] zp ZP_WORD:25 [ form_control::field#0 ] +Limited combination testing to 100 combinations of 16384 possible. +Uplifting [keyboard_matrix_read] best 146102 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 [print_ln] best 146102 combination +Uplifting [print_set_screen] best 146102 combination +Uplifting [main] best 146102 combination Attempting to uplift remaining variables inzp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] -Uplifting [] best 147827 combination zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Uplifting [] best 146102 combination zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] +Uplifting [] best 146102 combination zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#32 form_field_idx#41 form_field_idx#42 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] -Uplifting [] best 147827 combination zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +Uplifting [] best 146102 combination zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] -Uplifting [] best 147827 combination zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] -Attempting to uplift remaining variables inzp ZP_BYTE:37 [ form_control::$31 ] -Uplifting [form_control] best 147821 combination reg byte a [ form_control::$31 ] -Attempting to uplift remaining variables inzp ZP_BYTE:38 [ form_control::$32 ] -Uplifting [form_control] best 147815 combination reg byte a [ form_control::$32 ] -Attempting to uplift remaining variables inzp ZP_BYTE:39 [ form_control::$33 ] -Uplifting [form_control] best 147809 combination reg byte a [ form_control::$33 ] -Attempting to uplift remaining variables inzp ZP_BYTE:40 [ form_control::$34 ] -Uplifting [form_control] best 147803 combination reg byte a [ form_control::$34 ] -Attempting to uplift remaining variables inzp ZP_BYTE:41 [ form_control::$7 ] -Uplifting [form_control] best 147797 combination reg byte a [ form_control::$7 ] -Attempting to uplift remaining variables inzp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] -Uplifting [keyboard_key_pressed] best 147793 combination reg byte a [ keyboard_key_pressed::rowidx#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] -Uplifting [keyboard_key_pressed] best 147787 combination reg byte a [ keyboard_key_pressed::$2 ] +Uplifting [] best 146102 combination zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Attempting to uplift remaining variables inzp ZP_BYTE:37 [ form_control::$7 ] +Uplifting [form_control] best 146096 combination reg byte a [ form_control::$7 ] +Attempting to uplift remaining variables inzp ZP_BYTE:39 [ keyboard_key_pressed::rowidx#0 ] +Uplifting [keyboard_key_pressed] best 146092 combination reg byte a [ keyboard_key_pressed::rowidx#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:42 [ keyboard_key_pressed::$2 ] +Uplifting [keyboard_key_pressed] best 146086 combination reg byte a [ keyboard_key_pressed::$2 ] Attempting to uplift remaining variables inzp ZP_BYTE:29 [ form_control::key_down#0 ] -Uplifting [form_control] best 147777 combination reg byte a [ form_control::key_down#0 ] +Uplifting [form_control] best 146076 combination reg byte a [ form_control::key_down#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:34 [ form_control::key_right#0 ] -Uplifting [form_control] best 147767 combination reg byte a [ form_control::key_right#0 ] +Uplifting [form_control] best 146066 combination reg byte a [ form_control::key_right#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] -Uplifting [keyboard_key_pressed] best 147753 combination reg byte y [ keyboard_key_pressed::key#4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] -Uplifting [keyboard_key_pressed] best 147738 combination reg byte a [ keyboard_key_pressed::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] -Uplifting [keyboard_key_pressed] best 147738 combination zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] -Coalescing zero page register with common assignment [ zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] ] with [ zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] ] - score: 1 +Uplifting [keyboard_key_pressed] best 146052 combination reg byte x [ keyboard_key_pressed::key#4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:43 [ keyboard_key_pressed::return#0 ] +Uplifting [keyboard_key_pressed] best 146037 combination reg byte a [ keyboard_key_pressed::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:38 [ keyboard_key_pressed::colidx#0 ] +Uplifting [keyboard_key_pressed] best 146033 combination reg byte y [ keyboard_key_pressed::colidx#0 ] Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 ] ] with [ zp ZP_WORD:25 [ form_control::field#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 ] ] with [ zp ZP_WORD:53 [ form_field_ptr::return#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:55 [ form_field_ptr::return#2 ] ] with [ zp ZP_WORD:57 [ form_render_values::field#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ] ] with [ zp ZP_WORD:50 [ form_field_ptr::$2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 ] ] with [ zp ZP_WORD:55 [ form_field_ptr::return#2 form_render_values::field#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 ] ] with [ zp ZP_WORD:49 [ form_field_ptr::return#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:51 [ form_field_ptr::return#2 ] ] with [ zp ZP_WORD:53 [ form_render_values::field#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ] ] with [ zp ZP_WORD:46 [ form_field_ptr::$2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 ] ] with [ zp ZP_WORD:51 [ form_field_ptr::return#2 form_render_values::field#0 ] ] - score: 1 Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] ] with [ zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] ] Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 ] ] with [ zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] ] Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] ] with [ zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] ] Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 ] ] with [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#2 form_render_values::field#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 form_render_values::idx#1 ] ] with [ zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] ] -Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] -Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#2 form_render_values::field#0 ] -Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:7 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 form_render_values::idx#1 keyboard_key_pressed::colidx#0 ] +Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#2 form_render_values::field#0 ] Allocated (was zp ZP_WORD:17) zp ZP_WORD:8 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] Allocated (was zp ZP_WORD:19) zp ZP_WORD:10 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] @@ -7817,7 +7921,8 @@ ASSEMBLER BEFORE OPTIMIZATION .label print_char_cursor = 8 .label form_cursor_count = 2 .label key_down_debounce = 3 - .label key_right_debounce = 4 + .label form_field_idx = 4 + .label key_right_debounce = 5 .label print_line_cursor = $a //SEG2 @begin bbegin: @@ -7845,8 +7950,9 @@ main: { //SEG12 [6] phi (byte) key_right_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta key_right_debounce - //SEG13 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuxx=vbuc1 - ldx #0 + //SEG13 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 + lda #0 + sta form_field_idx //SEG14 [6] phi (byte) key_down_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 lda #0 sta key_down_debounce @@ -7882,7 +7988,7 @@ main: { menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label c = 5 + .label c = 6 //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK @@ -7912,8 +8018,8 @@ menu: { sta VIC_MEMORY //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] b1_from_menu: - //SEG39 [20] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuyy=vbuc1 - ldy #0 + //SEG39 [20] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuxx=vbuc1 + ldx #0 jmp b1 //SEG40 [20] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] b1_from_b1: @@ -7921,13 +8027,13 @@ menu: { jmp b1 //SEG42 menu::@1 b1: - //SEG43 [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy - lda DTV_PALETTE_DEFAULT,y - sta DTV_PALETTE,y - //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy_neq_vbuc1_then_la1 - cpy #$10 + //SEG43 [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + lda DTV_PALETTE_DEFAULT,x + sta DTV_PALETTE,x + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$10 bne b1_from_b1 //SEG46 [24] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] b2_from_b1: @@ -8042,30 +8148,30 @@ menu: { } //SEG89 form_control form_control: { - .label field = 5 - //SEG90 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuz1=vbuxx - stx form_field_ptr.field_idx + .label field = 6 + //SEG90 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuxx=vbuz1 + ldx form_field_idx //SEG91 [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) //SEG92 [111] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] form_field_ptr_from_form_control: //SEG93 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy jsr form_field_ptr //SEG94 [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) - // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 - jmp b28 - //SEG95 form_control::@28 - b28: + // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:6 + jmp b32 + //SEG95 form_control::@32 + b32: //SEG96 [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) - // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:5 + // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:6 //SEG97 [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 dec form_cursor_count - //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 + //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@37 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 lda form_cursor_count cmp #0 - bpl b33_from_b28 - //SEG99 [51] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] - b1_from_b28: - //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 + bpl b37_from_b32 + //SEG99 [51] phi from form_control::@32 to form_control::@1 [phi:form_control::@32->form_control::@1] + b1_from_b32: + //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@32->form_control::@1#0] -- vbsz1=vbsc1 lda #FORM_CURSOR_BLINK sta form_cursor_count jmp b1 @@ -8079,9 +8185,9 @@ form_control: { eor #$80 !: bpl b2 - jmp b15 - //SEG103 form_control::@15 - b15: + jmp b17 + //SEG103 form_control::@17 + b17: //SEG104 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuaa=_deref_pbuz1_bor_vbuc1 lda #$80 ldy #0 @@ -8089,8 +8195,8 @@ form_control: { //SEG105 [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (field),y - //SEG106 [55] phi from form_control::@15 form_control::@2 to form_control::@3 [phi:form_control::@15/form_control::@2->form_control::@3] - b3_from_b15: + //SEG106 [55] phi from form_control::@17 form_control::@2 to form_control::@3 [phi:form_control::@17/form_control::@2->form_control::@3] + b3_from_b17: b3_from_b2: jmp b3 //SEG107 form_control::@3 @@ -8098,30 +8204,30 @@ form_control: { //SEG108 [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) //SEG109 [99] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] keyboard_key_pressed_from_b3: - //SEG110 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_CRSR_DOWN + //SEG110 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_CRSR_DOWN jsr keyboard_key_pressed //SEG111 [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) // (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - jmp b29 - //SEG112 form_control::@29 - b29: + jmp b33 + //SEG112 form_control::@33 + b33: //SEG113 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) // (byte) form_control::key_down#0 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a //SEG114 [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuaa_eq_vbuz1_then_la1 cmp key_down_debounce - beq b4_from_b29 - jmp b17 - //SEG115 form_control::@17 - b17: + beq b4_from_b33 + jmp b19 + //SEG115 form_control::@19 + b19: //SEG116 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) -- vbuz1=vbuaa sta key_down_debounce //SEG117 [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) -- vbuaa_eq_0_then_la1 cmp #0 - beq b4_from_b17 - jmp b18 - //SEG118 form_control::@18 - b18: + beq b4_from_b19 + jmp b20 + //SEG118 form_control::@20 + b20: //SEG119 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 @@ -8130,254 +8236,272 @@ form_control: { ldy #0 sta (field),y //SEG121 [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - //SEG122 [99] phi from form_control::@18 to keyboard_key_pressed [phi:form_control::@18->keyboard_key_pressed] - keyboard_key_pressed_from_b18: - //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@18->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_RSHIFT + //SEG122 [99] phi from form_control::@20 to keyboard_key_pressed [phi:form_control::@20->keyboard_key_pressed] + keyboard_key_pressed_from_b20: + //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@20->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_RSHIFT jsr keyboard_key_pressed //SEG124 [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) // (byte) keyboard_key_pressed::return#4 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - jmp b31 - //SEG125 form_control::@31 - b31: + jmp b35 + //SEG125 form_control::@35 + b35: //SEG126 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) // (byte~) form_control::$14 = (byte) keyboard_key_pressed::return#4 // register copy reg byte a //SEG127 [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b6 - jmp b19 - //SEG128 form_control::@19 - b19: - //SEG129 [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx=_inc_vbuxx - inx - //SEG130 [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx_neq_vbuc1_then_la1 - cpx #form_fields_cnt - bne b34_from_b19 - //SEG131 [70] phi from form_control::@19 to form_control::@8 [phi:form_control::@19->form_control::@8] - b8_from_b19: - //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@19->form_control::@8#0] -- vbuxx=vbuc1 - ldx #0 + jmp b21 + //SEG128 form_control::@21 + b21: + //SEG129 [68] (byte) form_field_idx#41 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1=_inc_vbuz1 + inc form_field_idx + //SEG130 [69] if((byte) form_field_idx#41!=(const byte) form_fields_cnt#0) goto form_control::@38 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda form_field_idx + cmp #form_fields_cnt + bne b38_from_b21 + //SEG131 [70] phi from form_control::@21 to form_control::@8 [phi:form_control::@21->form_control::@8] + b8_from_b21: + //SEG132 [70] phi (byte) form_field_idx#32 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@21->form_control::@8#0] -- vbuz1=vbuc1 + lda #0 + sta form_field_idx jmp b8 //SEG133 form_control::@8 b8: //SEG134 [71] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] breturn_from_b8: //SEG135 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy - //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@8->form_control::@return#1] -- register_copy + //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#32 [phi:form_control::@8->form_control::@return#1] -- register_copy //SEG137 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy //SEG138 [71] phi (signed byte) form_cursor_count#16 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:form_control::@8->form_control::@return#3] -- vbsz1=vbuc1 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count jmp breturn - //SEG139 [71] phi from form_control::@13 form_control::@24 form_control::@30 to form_control::@return [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return] - breturn_from_b13: - breturn_from_b24: - breturn_from_b30: - //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#0] -- register_copy - //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#1] -- register_copy - //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#2] -- register_copy - //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#3] -- register_copy + //SEG139 [71] phi from form_control::@14 form_control::@26 form_control::@34 to form_control::@return [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return] + breturn_from_b14: + breturn_from_b26: + breturn_from_b34: + //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#0] -- register_copy + //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#1] -- register_copy + //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#2] -- register_copy + //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#3] -- register_copy jmp breturn //SEG144 form_control::@return breturn: //SEG145 [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) rts - //SEG146 [73] phi from form_control::@19 to form_control::@34 [phi:form_control::@19->form_control::@34] - b34_from_b19: - jmp b34 - //SEG147 form_control::@34 - b34: - //SEG148 [70] phi from form_control::@34 form_control::@35 to form_control::@8 [phi:form_control::@34/form_control::@35->form_control::@8] - b8_from_b34: - b8_from_b35: - //SEG149 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#37 [phi:form_control::@34/form_control::@35->form_control::@8#0] -- register_copy + //SEG146 [73] phi from form_control::@21 to form_control::@38 [phi:form_control::@21->form_control::@38] + b38_from_b21: + jmp b38 + //SEG147 form_control::@38 + b38: + //SEG148 [70] phi from form_control::@38 form_control::@39 to form_control::@8 [phi:form_control::@38/form_control::@39->form_control::@8] + b8_from_b38: + b8_from_b39: + //SEG149 [70] phi (byte) form_field_idx#32 = (byte) form_field_idx#41 [phi:form_control::@38/form_control::@39->form_control::@8#0] -- register_copy jmp b8 //SEG150 form_control::@6 b6: - //SEG151 [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx=_dec_vbuxx - dex - //SEG152 [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx_neq_vbuc1_then_la1 - cpx #$ff - bne b35_from_b6 + //SEG151 [74] (byte) form_field_idx#42 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1=_dec_vbuz1 + dec form_field_idx + //SEG152 [75] if((byte) form_field_idx#42!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@39 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda form_field_idx + cmp #$ff + bne b39_from_b6 //SEG153 [70] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] b8_from_b6: - //SEG154 [70] phi (byte) form_field_idx#30 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuxx=vbuc1 - ldx #form_fields_cnt-1 + //SEG154 [70] phi (byte) form_field_idx#32 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuz1=vbuc1 + lda #form_fields_cnt-1 + sta form_field_idx jmp b8 - //SEG155 [76] phi from form_control::@6 to form_control::@35 [phi:form_control::@6->form_control::@35] - b35_from_b6: - jmp b35 - //SEG156 form_control::@35 - b35: - jmp b8_from_b35 - //SEG157 [77] phi from form_control::@17 form_control::@29 to form_control::@4 [phi:form_control::@17/form_control::@29->form_control::@4] - b4_from_b17: - b4_from_b29: - //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@17/form_control::@29->form_control::@4#0] -- register_copy + //SEG155 [76] phi from form_control::@6 to form_control::@39 [phi:form_control::@6->form_control::@39] + b39_from_b6: + jmp b39 + //SEG156 form_control::@39 + b39: + jmp b8_from_b39 + //SEG157 [77] phi from form_control::@19 form_control::@33 to form_control::@4 [phi:form_control::@19/form_control::@33->form_control::@4] + b4_from_b19: + b4_from_b33: + //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@19/form_control::@33->form_control::@4#0] -- register_copy jmp b4 //SEG159 form_control::@4 b4: //SEG160 [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) //SEG161 [99] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] keyboard_key_pressed_from_b4: - //SEG162 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_CRSR_RIGHT + //SEG162 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_CRSR_RIGHT jsr keyboard_key_pressed //SEG163 [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) // (byte) keyboard_key_pressed::return#3 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - jmp b30 - //SEG164 form_control::@30 - b30: + jmp b34 + //SEG164 form_control::@34 + b34: //SEG165 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) // (byte) form_control::key_right#0 = (byte) keyboard_key_pressed::return#3 // register copy reg byte a //SEG166 [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuaa_eq_vbuz1_then_la1 cmp key_right_debounce - beq breturn_from_b30 - jmp b24 - //SEG167 form_control::@24 - b24: + beq breturn_from_b34 + jmp b26 + //SEG167 form_control::@26 + b26: //SEG168 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) -- vbuz1=vbuaa sta key_right_debounce //SEG169 [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_eq_0_then_la1 cmp #0 - beq breturn_from_b24 - //SEG170 [84] phi from form_control::@24 to form_control::@25 [phi:form_control::@24->form_control::@25] - b25_from_b24: - jmp b25 - //SEG171 form_control::@25 - b25: + beq breturn_from_b26 + //SEG170 [84] phi from form_control::@26 to form_control::@27 [phi:form_control::@26->form_control::@27] + b27_from_b26: + jmp b27 + //SEG171 form_control::@27 + b27: //SEG172 [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) - //SEG173 [99] phi from form_control::@25 to keyboard_key_pressed [phi:form_control::@25->keyboard_key_pressed] - keyboard_key_pressed_from_b25: - //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@25->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_RSHIFT + //SEG173 [99] phi from form_control::@27 to keyboard_key_pressed [phi:form_control::@27->keyboard_key_pressed] + keyboard_key_pressed_from_b27: + //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@27->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_RSHIFT jsr keyboard_key_pressed //SEG175 [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) // (byte) keyboard_key_pressed::return#10 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - jmp b32 - //SEG176 form_control::@32 - b32: + jmp b36 + //SEG176 form_control::@36 + b36: //SEG177 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) // (byte~) form_control::$28 = (byte) keyboard_key_pressed::return#10 // register copy reg byte a //SEG178 [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b12 - jmp b26 - //SEG179 form_control::@26 - b26: - //SEG180 [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_plus_1 - lda form_fields_val,x - clc - adc #1 - //SEG181 [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) -- vbuaa=vbuaa_band_vbuc1 - and #$f - //SEG182 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa - sta form_fields_val,x - jmp b13 - //SEG183 form_control::@13 - b13: - //SEG184 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuxx - lda form_fields_val,x + jmp b28 + //SEG179 form_control::@28 + b28: + //SEG180 [89] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← ++ *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 + ldx form_field_idx + inc form_fields_val,x + //SEG181 [90] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1_le_pbuc2_derefidx_vbuz1_then_la1 + ldy form_field_idx + lda form_fields_val,y + cmp form_fields_max,y + bcc b14 + beq b14 + jmp b29 + //SEG182 form_control::@29 + b29: + //SEG183 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + ldy form_field_idx + lda #0 + sta form_fields_val,y + jmp b14 + //SEG184 form_control::@14 + b14: + //SEG185 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + ldy form_field_idx + lda form_fields_val,y tay lda print_hextab,y ldy #0 sta (field),y - jmp breturn_from_b13 - //SEG185 form_control::@12 + jmp breturn_from_b14 + //SEG186 form_control::@12 b12: - //SEG186 [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_minus_1 + //SEG187 [93] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 + ldx form_field_idx lda form_fields_val,x sec sbc #1 - //SEG187 [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) -- vbuaa=vbuaa_band_vbuc1 - and #$f - //SEG188 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + ldx form_field_idx sta form_fields_val,x - jmp b13 - //SEG189 form_control::@2 + //SEG188 [94] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 + ldy form_field_idx + lda form_fields_val,y + cmp #$ff + bne b14 + jmp b31 + //SEG189 form_control::@31 + b31: + //SEG190 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + ldy form_field_idx + lda form_fields_max,y + sta form_fields_val,y + jmp b14 + //SEG191 form_control::@2 b2: - //SEG190 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG192 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y - //SEG191 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + //SEG193 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (field),y jmp b3_from_b2 - //SEG192 [98] phi from form_control::@28 to form_control::@33 [phi:form_control::@28->form_control::@33] - b33_from_b28: - jmp b33 - //SEG193 form_control::@33 - b33: - //SEG194 [51] phi from form_control::@33 to form_control::@1 [phi:form_control::@33->form_control::@1] - b1_from_b33: - //SEG195 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@33->form_control::@1#0] -- register_copy + //SEG194 [98] phi from form_control::@32 to form_control::@37 [phi:form_control::@32->form_control::@37] + b37_from_b32: + jmp b37 + //SEG195 form_control::@37 + b37: + //SEG196 [51] phi from form_control::@37 to form_control::@1 [phi:form_control::@37->form_control::@1] + b1_from_b37: + //SEG197 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@37->form_control::@1#0] -- register_copy jmp b1 } -//SEG196 keyboard_key_pressed +//SEG198 keyboard_key_pressed keyboard_key_pressed: { - .label colidx = 7 - //SEG197 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuyy_band_vbuc1 - tya + //SEG199 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuyy=vbuxx_band_vbuc1 + txa and #7 - sta colidx - //SEG198 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuyy_ror_3 - tya - lsr - lsr - lsr - //SEG199 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuyy=vbuaa tay - //SEG200 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) + //SEG200 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuxx_ror_3 + txa + lsr + lsr + lsr + //SEG201 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuxx=vbuaa + tax + //SEG202 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) jsr keyboard_matrix_read - //SEG201 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) + //SEG203 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a jmp b2 - //SEG202 keyboard_key_pressed::@2 + //SEG204 keyboard_key_pressed::@2 b2: - //SEG203 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) + //SEG205 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) // (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a - //SEG204 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 - ldy colidx + //SEG206 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy and keyboard_matrix_col_bitmask,y jmp breturn - //SEG205 keyboard_key_pressed::@return + //SEG207 keyboard_key_pressed::@return breturn: - //SEG206 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) + //SEG208 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) rts } -//SEG207 keyboard_matrix_read +//SEG209 keyboard_matrix_read keyboard_matrix_read: { - //SEG208 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuyy - lda keyboard_matrix_row_bitmask,y + //SEG210 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG209 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 + //SEG211 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG210 keyboard_matrix_read::@return + //SEG212 keyboard_matrix_read::@return breturn: - //SEG211 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) + //SEG213 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) rts } -//SEG212 form_field_ptr +//SEG214 form_field_ptr form_field_ptr: { - .label return = 5 - .label field_idx = 7 - .label _2 = 5 - //SEG213 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 - ldy field_idx - lda form_fields_y,y - //SEG214 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa - tay + .label return = 6 + .label _2 = 6 + //SEG215 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuyy=pbuc1_derefidx_vbuxx + ldy form_fields_y,x + //SEG216 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda form_line_hi,y sta _2+1 lda form_line_lo,y sta _2 - //SEG215 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 - ldy field_idx - lda form_fields_x,y - //SEG216 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz1_plus_vbuaa + //SEG217 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx + lda form_fields_x,x + //SEG218 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz1_plus_vbuaa clc adc return sta return @@ -8385,89 +8509,85 @@ form_field_ptr: { adc return+1 sta return+1 jmp breturn - //SEG217 form_field_ptr::@return + //SEG219 form_field_ptr::@return breturn: - //SEG218 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + //SEG220 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) rts } -//SEG219 form_render_values +//SEG221 form_render_values form_render_values: { - .label field = 5 - .label idx = 7 - //SEG220 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + .label field = 6 + //SEG222 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] b1_from_form_render_values: - //SEG221 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuz1=vbuc1 - lda #0 - sta idx + //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuxx=vbuc1 + ldx #0 jmp b1 - //SEG222 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + //SEG224 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] b1_from_b3: - //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy + //SEG225 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy jmp b1 - //SEG224 form_render_values::@1 + //SEG226 form_render_values::@1 b1: - //SEG225 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) - // (byte) form_field_ptr::field_idx#0 = (byte) form_render_values::idx#2 // register copy zp ZP_BYTE:7 - //SEG226 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) - //SEG227 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + //SEG227 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) + // (byte) form_field_ptr::field_idx#0 = (byte) form_render_values::idx#2 // register copy reg byte x + //SEG228 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG229 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] form_field_ptr_from_b1: - //SEG228 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy + //SEG230 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy jsr form_field_ptr - //SEG229 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) - // (byte*) form_field_ptr::return#2 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 + //SEG231 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) + // (byte*) form_field_ptr::return#2 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:6 jmp b3 - //SEG230 form_render_values::@3 + //SEG232 form_render_values::@3 b3: - //SEG231 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) - // (byte*) form_render_values::field#0 = (byte*) form_field_ptr::return#2 // register copy zp ZP_WORD:5 - //SEG232 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 - ldy idx - lda form_fields_val,y + //SEG233 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) + // (byte*) form_render_values::field#0 = (byte*) form_field_ptr::return#2 // register copy zp ZP_WORD:6 + //SEG234 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuxx + lda form_fields_val,x tay lda print_hextab,y ldy #0 sta (field),y - //SEG233 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 - inc idx - //SEG234 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 - lda idx - cmp #form_fields_cnt + //SEG235 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG236 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuxx_lt_vbuc1_then_la1 + cpx #form_fields_cnt bcc b1_from_b3 jmp breturn - //SEG235 form_render_values::@return + //SEG237 form_render_values::@return breturn: - //SEG236 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG238 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts } -//SEG237 form_set_screen +//SEG239 form_set_screen form_set_screen: { - .label line = 5 - //SEG238 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + .label line = 6 + //SEG240 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] b1_from_form_set_screen: - //SEG239 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuyy=vbuc1 - ldy #0 - //SEG240 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + //SEG241 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG242 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta line+1 jmp b1 - //SEG241 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + //SEG243 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] b1_from_b1: - //SEG242 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy - //SEG243 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy + //SEG244 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy + //SEG245 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy jmp b1 - //SEG244 form_set_screen::@1 + //SEG246 form_set_screen::@1 b1: - //SEG245 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 + //SEG247 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 lda line - //SEG246 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa - sta form_line_lo,y - //SEG247 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 + //SEG248 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_line_lo,x + //SEG249 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 lda line+1 - //SEG248 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa - sta form_line_hi,y - //SEG249 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG250 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_line_hi,x + //SEG251 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -8475,121 +8595,121 @@ form_set_screen: { bcc !+ inc line+1 !: - //SEG250 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG251 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy_neq_vbuc1_then_la1 - cpy #$19 + //SEG252 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG253 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$19 bne b1_from_b1 jmp breturn - //SEG252 form_set_screen::@return + //SEG254 form_set_screen::@return breturn: - //SEG253 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG255 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts } -//SEG254 print_str_lines +//SEG256 print_str_lines print_str_lines: { - .label str = 5 - //SEG255 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] + .label str = 6 + //SEG257 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] b1_from_print_str_lines: - //SEG256 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 + //SEG258 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_line_cursor+1 - //SEG257 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 + //SEG259 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_char_cursor+1 - //SEG258 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 + //SEG260 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 lda #MENU_TEXT sta str+1 jmp b1 - //SEG259 print_str_lines::@1 + //SEG261 print_str_lines::@1 b1: - //SEG260 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG262 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4_from_b1 jmp breturn - //SEG261 print_str_lines::@return + //SEG263 print_str_lines::@return breturn: - //SEG262 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG264 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts - //SEG263 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] + //SEG265 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] b4_from_b1: b4_from_b5: - //SEG264 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG265 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG266 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG267 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy jmp b4 - //SEG266 print_str_lines::@4 + //SEG268 print_str_lines::@4 b4: - //SEG267 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 + //SEG269 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - //SEG268 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG270 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG269 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 + //SEG271 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 cmp #'@' beq b5_from_b4 jmp b8 - //SEG270 print_str_lines::@8 + //SEG272 print_str_lines::@8 b8: - //SEG271 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa + //SEG273 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - //SEG272 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG274 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 inc print_char_cursor bne !+ inc print_char_cursor+1 !: - //SEG273 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] + //SEG275 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] b5_from_b4: b5_from_b8: - //SEG274 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG276 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy jmp b5 - //SEG275 print_str_lines::@5 + //SEG277 print_str_lines::@5 b5: - //SEG276 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 + //SEG278 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 cmp #'@' bne b4_from_b5 - //SEG277 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG279 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] b9_from_b5: jmp b9 - //SEG278 print_str_lines::@9 + //SEG280 print_str_lines::@9 b9: - //SEG279 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) - //SEG280 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG281 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG282 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] print_ln_from_b9: jsr print_ln - //SEG281 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 + //SEG283 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 - //SEG282 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] + //SEG284 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] b1_from_b9: - //SEG283 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG284 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG285 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG285 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG286 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG287 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 } -//SEG286 print_ln +//SEG288 print_ln print_ln: { - //SEG287 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG289 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] b1_from_print_ln: b1_from_b1: - //SEG288 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG290 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp b1 - //SEG289 print_ln::@1 + //SEG291 print_ln::@1 b1: - //SEG290 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG292 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -8597,7 +8717,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG291 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG293 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1_from_b1 @@ -8607,38 +8727,38 @@ print_ln: { bcc b1_from_b1 !: jmp breturn - //SEG292 print_ln::@return + //SEG294 print_ln::@return breturn: - //SEG293 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG295 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) rts } -//SEG294 print_cls +//SEG296 print_cls print_cls: { - .label sc = 5 - //SEG295 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + .label sc = 6 + //SEG297 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG296 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG298 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta sc+1 jmp b1 - //SEG297 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + //SEG299 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] b1_from_b1: - //SEG298 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + //SEG300 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy jmp b1 - //SEG299 print_cls::@1 + //SEG301 print_cls::@1 b1: - //SEG300 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG302 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG301 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG303 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG302 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG304 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1_from_b1 @@ -8646,17 +8766,17 @@ print_cls: { cmp #@25] @@ -9261,8 +9390,8 @@ main: { //SEG12 [6] phi (byte) key_right_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta key_right_debounce - //SEG13 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuxx=vbuc1 - tax + //SEG13 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 + sta form_field_idx //SEG14 [6] phi (byte) key_down_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 sta key_down_debounce //SEG15 [6] phi (signed byte) form_cursor_count#1 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:main->main::@1#3] -- vbsz1=vbuc1 @@ -9288,7 +9417,7 @@ main: { menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label c = 5 + .label c = 6 //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK @@ -9316,19 +9445,19 @@ menu: { lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] - //SEG39 [20] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuyy=vbuc1 - ldy #0 + //SEG39 [20] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuxx=vbuc1 + ldx #0 //SEG40 [20] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] //SEG41 [20] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy //SEG42 menu::@1 b1: - //SEG43 [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy - lda DTV_PALETTE_DEFAULT,y - sta DTV_PALETTE,y - //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy_neq_vbuc1_then_la1 - cpy #$10 + //SEG43 [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + lda DTV_PALETTE_DEFAULT,x + sta DTV_PALETTE,x + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$10 bne b1 //SEG46 [24] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] //SEG47 [24] phi (byte*) menu::c#2 = (const byte*) COLS#0 [phi:menu::@1->menu::@2#0] -- pbuz1=pbuc1 @@ -9408,26 +9537,26 @@ menu: { } //SEG89 form_control form_control: { - .label field = 5 - //SEG90 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuz1=vbuxx - stx form_field_ptr.field_idx + .label field = 6 + //SEG90 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuxx=vbuz1 + ldx form_field_idx //SEG91 [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) //SEG92 [111] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] //SEG93 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy jsr form_field_ptr //SEG94 [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) - // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 - //SEG95 form_control::@28 + // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:6 + //SEG95 form_control::@32 //SEG96 [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) - // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:5 + // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:6 //SEG97 [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 dec form_cursor_count - //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 + //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@37 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 lda form_cursor_count cmp #0 bpl b1 - //SEG99 [51] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] - //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 + //SEG99 [51] phi from form_control::@32 to form_control::@1 [phi:form_control::@32->form_control::@1] + //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@32->form_control::@1#0] -- vbsz1=vbsc1 lda #FORM_CURSOR_BLINK sta form_cursor_count //SEG101 form_control::@1 @@ -9439,37 +9568,39 @@ form_control: { bvc !+ eor #$80 !: - bpl b2 - //SEG103 form_control::@15 + bmi !b2+ + jmp b2 + !b2: + //SEG103 form_control::@17 //SEG104 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuaa=_deref_pbuz1_bor_vbuc1 lda #$80 ldy #0 ora (field),y //SEG105 [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa sta (field),y - //SEG106 [55] phi from form_control::@15 form_control::@2 to form_control::@3 [phi:form_control::@15/form_control::@2->form_control::@3] + //SEG106 [55] phi from form_control::@17 form_control::@2 to form_control::@3 [phi:form_control::@17/form_control::@2->form_control::@3] //SEG107 form_control::@3 b3: //SEG108 [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) //SEG109 [99] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] - //SEG110 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_CRSR_DOWN + //SEG110 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_CRSR_DOWN jsr keyboard_key_pressed //SEG111 [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) // (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - //SEG112 form_control::@29 + //SEG112 form_control::@33 //SEG113 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) // (byte) form_control::key_down#0 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a //SEG114 [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuaa_eq_vbuz1_then_la1 cmp key_down_debounce beq b4 - //SEG115 form_control::@17 + //SEG115 form_control::@19 //SEG116 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) -- vbuz1=vbuaa sta key_down_debounce //SEG117 [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG118 form_control::@18 + //SEG118 form_control::@20 //SEG119 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 @@ -9477,276 +9608,283 @@ form_control: { //SEG120 [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- _deref_pbuz1=vbuaa sta (field),y //SEG121 [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - //SEG122 [99] phi from form_control::@18 to keyboard_key_pressed [phi:form_control::@18->keyboard_key_pressed] - //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@18->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_RSHIFT + //SEG122 [99] phi from form_control::@20 to keyboard_key_pressed [phi:form_control::@20->keyboard_key_pressed] + //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@20->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_RSHIFT jsr keyboard_key_pressed //SEG124 [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) // (byte) keyboard_key_pressed::return#4 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - //SEG125 form_control::@31 + //SEG125 form_control::@35 //SEG126 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) // (byte~) form_control::$14 = (byte) keyboard_key_pressed::return#4 // register copy reg byte a //SEG127 [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b6 - //SEG128 form_control::@19 - //SEG129 [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx=_inc_vbuxx - inx - //SEG130 [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx_neq_vbuc1_then_la1 - cpx #form_fields_cnt + //SEG128 form_control::@21 + //SEG129 [68] (byte) form_field_idx#41 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1=_inc_vbuz1 + inc form_field_idx + //SEG130 [69] if((byte) form_field_idx#41!=(const byte) form_fields_cnt#0) goto form_control::@38 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda form_field_idx + cmp #form_fields_cnt bne b8 - //SEG131 [70] phi from form_control::@19 to form_control::@8 [phi:form_control::@19->form_control::@8] - //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@19->form_control::@8#0] -- vbuxx=vbuc1 - ldx #0 + //SEG131 [70] phi from form_control::@21 to form_control::@8 [phi:form_control::@21->form_control::@8] + //SEG132 [70] phi (byte) form_field_idx#32 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@21->form_control::@8#0] -- vbuz1=vbuc1 + lda #0 + sta form_field_idx //SEG133 form_control::@8 b8: //SEG134 [71] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] //SEG135 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy - //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@8->form_control::@return#1] -- register_copy + //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#32 [phi:form_control::@8->form_control::@return#1] -- register_copy //SEG137 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy //SEG138 [71] phi (signed byte) form_cursor_count#16 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:form_control::@8->form_control::@return#3] -- vbsz1=vbuc1 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count - //SEG139 [71] phi from form_control::@13 form_control::@24 form_control::@30 to form_control::@return [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return] - //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#0] -- register_copy - //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#1] -- register_copy - //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#2] -- register_copy - //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#3] -- register_copy + //SEG139 [71] phi from form_control::@14 form_control::@26 form_control::@34 to form_control::@return [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return] + //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#0] -- register_copy + //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#1] -- register_copy + //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#2] -- register_copy + //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@14/form_control::@26/form_control::@34->form_control::@return#3] -- register_copy //SEG144 form_control::@return breturn: //SEG145 [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) rts - //SEG146 [73] phi from form_control::@19 to form_control::@34 [phi:form_control::@19->form_control::@34] - //SEG147 form_control::@34 - //SEG148 [70] phi from form_control::@34 form_control::@35 to form_control::@8 [phi:form_control::@34/form_control::@35->form_control::@8] - //SEG149 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#37 [phi:form_control::@34/form_control::@35->form_control::@8#0] -- register_copy + //SEG146 [73] phi from form_control::@21 to form_control::@38 [phi:form_control::@21->form_control::@38] + //SEG147 form_control::@38 + //SEG148 [70] phi from form_control::@38 form_control::@39 to form_control::@8 [phi:form_control::@38/form_control::@39->form_control::@8] + //SEG149 [70] phi (byte) form_field_idx#32 = (byte) form_field_idx#41 [phi:form_control::@38/form_control::@39->form_control::@8#0] -- register_copy //SEG150 form_control::@6 b6: - //SEG151 [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx=_dec_vbuxx - dex - //SEG152 [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx_neq_vbuc1_then_la1 - cpx #$ff + //SEG151 [74] (byte) form_field_idx#42 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1=_dec_vbuz1 + dec form_field_idx + //SEG152 [75] if((byte) form_field_idx#42!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@39 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda form_field_idx + cmp #$ff bne b8 //SEG153 [70] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] - //SEG154 [70] phi (byte) form_field_idx#30 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuxx=vbuc1 - ldx #form_fields_cnt-1 + //SEG154 [70] phi (byte) form_field_idx#32 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuz1=vbuc1 + lda #form_fields_cnt-1 + sta form_field_idx jmp b8 - //SEG155 [76] phi from form_control::@6 to form_control::@35 [phi:form_control::@6->form_control::@35] - //SEG156 form_control::@35 - //SEG157 [77] phi from form_control::@17 form_control::@29 to form_control::@4 [phi:form_control::@17/form_control::@29->form_control::@4] - //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@17/form_control::@29->form_control::@4#0] -- register_copy + //SEG155 [76] phi from form_control::@6 to form_control::@39 [phi:form_control::@6->form_control::@39] + //SEG156 form_control::@39 + //SEG157 [77] phi from form_control::@19 form_control::@33 to form_control::@4 [phi:form_control::@19/form_control::@33->form_control::@4] + //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@19/form_control::@33->form_control::@4#0] -- register_copy //SEG159 form_control::@4 b4: //SEG160 [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) //SEG161 [99] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] - //SEG162 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_CRSR_RIGHT + //SEG162 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_CRSR_RIGHT jsr keyboard_key_pressed //SEG163 [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) // (byte) keyboard_key_pressed::return#3 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - //SEG164 form_control::@30 + //SEG164 form_control::@34 //SEG165 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) // (byte) form_control::key_right#0 = (byte) keyboard_key_pressed::return#3 // register copy reg byte a //SEG166 [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuaa_eq_vbuz1_then_la1 cmp key_right_debounce beq breturn - //SEG167 form_control::@24 + //SEG167 form_control::@26 //SEG168 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) -- vbuz1=vbuaa sta key_right_debounce //SEG169 [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_eq_0_then_la1 cmp #0 beq breturn - //SEG170 [84] phi from form_control::@24 to form_control::@25 [phi:form_control::@24->form_control::@25] - //SEG171 form_control::@25 + //SEG170 [84] phi from form_control::@26 to form_control::@27 [phi:form_control::@26->form_control::@27] + //SEG171 form_control::@27 //SEG172 [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) - //SEG173 [99] phi from form_control::@25 to keyboard_key_pressed [phi:form_control::@25->keyboard_key_pressed] - //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@25->keyboard_key_pressed#0] -- vbuyy=vbuc1 - ldy #KEY_RSHIFT + //SEG173 [99] phi from form_control::@27 to keyboard_key_pressed [phi:form_control::@27->keyboard_key_pressed] + //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@27->keyboard_key_pressed#0] -- vbuxx=vbuc1 + ldx #KEY_RSHIFT jsr keyboard_key_pressed //SEG175 [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) // (byte) keyboard_key_pressed::return#10 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - //SEG176 form_control::@32 + //SEG176 form_control::@36 //SEG177 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) // (byte~) form_control::$28 = (byte) keyboard_key_pressed::return#10 // register copy reg byte a //SEG178 [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b12 - //SEG179 form_control::@26 - //SEG180 [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_plus_1 - lda form_fields_val,x - clc - adc #1 - //SEG181 [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) -- vbuaa=vbuaa_band_vbuc1 - and #$f - //SEG182 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa - sta form_fields_val,x - //SEG183 form_control::@13 - b13: - //SEG184 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuxx - lda form_fields_val,x + //SEG179 form_control::@28 + //SEG180 [89] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← ++ *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 + ldx form_field_idx + inc form_fields_val,x + //SEG181 [90] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1_le_pbuc2_derefidx_vbuz1_then_la1 + ldy form_field_idx + lda form_fields_val,y + cmp form_fields_max,y + bcc b14 + beq b14 + //SEG182 form_control::@29 + //SEG183 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + lda #0 + sta form_fields_val,y + //SEG184 form_control::@14 + b14: + //SEG185 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + ldy form_field_idx + lda form_fields_val,y tay lda print_hextab,y ldy #0 sta (field),y jmp breturn - //SEG185 form_control::@12 + //SEG186 form_control::@12 b12: - //SEG186 [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_minus_1 + //SEG187 [93] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 + ldx form_field_idx lda form_fields_val,x sec sbc #1 - //SEG187 [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) -- vbuaa=vbuaa_band_vbuc1 - and #$f - //SEG188 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta form_fields_val,x - jmp b13 - //SEG189 form_control::@2 + //SEG188 [94] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@14 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 + ldy form_field_idx + lda form_fields_val,y + cmp #$ff + bne b14 + //SEG189 form_control::@31 + //SEG190 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#14) [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + lda form_fields_max,y + sta form_fields_val,y + jmp b14 + //SEG191 form_control::@2 b2: - //SEG190 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG192 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y - //SEG191 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + //SEG193 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa sta (field),y jmp b3 - //SEG192 [98] phi from form_control::@28 to form_control::@33 [phi:form_control::@28->form_control::@33] - //SEG193 form_control::@33 - //SEG194 [51] phi from form_control::@33 to form_control::@1 [phi:form_control::@33->form_control::@1] - //SEG195 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@33->form_control::@1#0] -- register_copy + //SEG194 [98] phi from form_control::@32 to form_control::@37 [phi:form_control::@32->form_control::@37] + //SEG195 form_control::@37 + //SEG196 [51] phi from form_control::@37 to form_control::@1 [phi:form_control::@37->form_control::@1] + //SEG197 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@37->form_control::@1#0] -- register_copy } -//SEG196 keyboard_key_pressed +//SEG198 keyboard_key_pressed keyboard_key_pressed: { - .label colidx = 7 - //SEG197 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuyy_band_vbuc1 - tya + //SEG199 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuyy=vbuxx_band_vbuc1 + txa and #7 - sta colidx - //SEG198 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuyy_ror_3 - tya - lsr - lsr - lsr - //SEG199 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuyy=vbuaa tay - //SEG200 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) + //SEG200 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuxx_ror_3 + txa + lsr + lsr + lsr + //SEG201 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuxx=vbuaa + tax + //SEG202 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) jsr keyboard_matrix_read - //SEG201 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) + //SEG203 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a - //SEG202 keyboard_key_pressed::@2 - //SEG203 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) + //SEG204 keyboard_key_pressed::@2 + //SEG205 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) // (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a - //SEG204 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 - ldy colidx + //SEG206 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy and keyboard_matrix_col_bitmask,y - //SEG205 keyboard_key_pressed::@return - //SEG206 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) + //SEG207 keyboard_key_pressed::@return + //SEG208 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) rts } -//SEG207 keyboard_matrix_read +//SEG209 keyboard_matrix_read keyboard_matrix_read: { - //SEG208 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuyy - lda keyboard_matrix_row_bitmask,y + //SEG210 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG209 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 + //SEG211 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG210 keyboard_matrix_read::@return - //SEG211 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) + //SEG212 keyboard_matrix_read::@return + //SEG213 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) rts } -//SEG212 form_field_ptr +//SEG214 form_field_ptr form_field_ptr: { - .label return = 5 - .label field_idx = 7 - .label _2 = 5 - //SEG213 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 - ldy field_idx - lda form_fields_y,y - //SEG214 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa - tay + .label return = 6 + .label _2 = 6 + //SEG215 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuyy=pbuc1_derefidx_vbuxx + ldy form_fields_y,x + //SEG216 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda form_line_hi,y sta _2+1 lda form_line_lo,y sta _2 - //SEG215 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 - ldy field_idx - lda form_fields_x,y - //SEG216 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz1_plus_vbuaa + //SEG217 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx + lda form_fields_x,x + //SEG218 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz1_plus_vbuaa clc adc return sta return lda #0 adc return+1 sta return+1 - //SEG217 form_field_ptr::@return - //SEG218 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + //SEG219 form_field_ptr::@return + //SEG220 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) rts } -//SEG219 form_render_values +//SEG221 form_render_values form_render_values: { - .label field = 5 - .label idx = 7 - //SEG220 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] - //SEG221 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuz1=vbuc1 - lda #0 - sta idx - //SEG222 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] - //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy - //SEG224 form_render_values::@1 + .label field = 6 + //SEG222 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG224 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + //SEG225 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy + //SEG226 form_render_values::@1 b1: - //SEG225 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) - // (byte) form_field_ptr::field_idx#0 = (byte) form_render_values::idx#2 // register copy zp ZP_BYTE:7 - //SEG226 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) - //SEG227 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] - //SEG228 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy + //SEG227 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) + // (byte) form_field_ptr::field_idx#0 = (byte) form_render_values::idx#2 // register copy reg byte x + //SEG228 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG229 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + //SEG230 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy jsr form_field_ptr - //SEG229 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) - // (byte*) form_field_ptr::return#2 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 - //SEG230 form_render_values::@3 - //SEG231 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) - // (byte*) form_render_values::field#0 = (byte*) form_field_ptr::return#2 // register copy zp ZP_WORD:5 - //SEG232 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 - ldy idx - lda form_fields_val,y + //SEG231 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) + // (byte*) form_field_ptr::return#2 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:6 + //SEG232 form_render_values::@3 + //SEG233 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) + // (byte*) form_render_values::field#0 = (byte*) form_field_ptr::return#2 // register copy zp ZP_WORD:6 + //SEG234 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuxx + lda form_fields_val,x tay lda print_hextab,y ldy #0 sta (field),y - //SEG233 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 - inc idx - //SEG234 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 - lda idx - cmp #form_fields_cnt + //SEG235 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG236 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuxx_lt_vbuc1_then_la1 + cpx #form_fields_cnt bcc b1 - //SEG235 form_render_values::@return - //SEG236 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG237 form_render_values::@return + //SEG238 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts } -//SEG237 form_set_screen +//SEG239 form_set_screen form_set_screen: { - .label line = 5 - //SEG238 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] - //SEG239 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuyy=vbuc1 - ldy #0 - //SEG240 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + .label line = 6 + //SEG240 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + //SEG241 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG242 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta line+1 - //SEG241 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] - //SEG242 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy - //SEG243 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy - //SEG244 form_set_screen::@1 + //SEG243 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + //SEG244 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy + //SEG245 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy + //SEG246 form_set_screen::@1 b1: - //SEG245 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 + //SEG247 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 lda line - //SEG246 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa - sta form_line_lo,y - //SEG247 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 + //SEG248 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_line_lo,x + //SEG249 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 lda line+1 - //SEG248 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa - sta form_line_hi,y - //SEG249 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG250 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_line_hi,x + //SEG251 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -9754,99 +9892,99 @@ form_set_screen: { bcc !+ inc line+1 !: - //SEG250 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG251 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy_neq_vbuc1_then_la1 - cpy #$19 + //SEG252 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG253 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$19 bne b1 - //SEG252 form_set_screen::@return - //SEG253 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG254 form_set_screen::@return + //SEG255 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts } -//SEG254 print_str_lines +//SEG256 print_str_lines print_str_lines: { - .label str = 5 - //SEG255 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] - //SEG256 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 + .label str = 6 + //SEG257 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] + //SEG258 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_line_cursor+1 - //SEG257 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 + //SEG259 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_char_cursor+1 - //SEG258 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 + //SEG260 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 lda #MENU_TEXT sta str+1 - //SEG259 print_str_lines::@1 + //SEG261 print_str_lines::@1 b1: - //SEG260 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG262 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4 - //SEG261 print_str_lines::@return - //SEG262 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG263 print_str_lines::@return + //SEG264 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts - //SEG263 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] - //SEG264 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG265 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy - //SEG266 print_str_lines::@4 + //SEG265 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] + //SEG266 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG267 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG268 print_str_lines::@4 b4: - //SEG267 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 + //SEG269 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - //SEG268 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG270 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG269 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 + //SEG271 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 cmp #'@' beq b5 - //SEG270 print_str_lines::@8 - //SEG271 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa + //SEG272 print_str_lines::@8 + //SEG273 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - //SEG272 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG274 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 inc print_char_cursor bne !+ inc print_char_cursor+1 !: - //SEG273 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] - //SEG274 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy - //SEG275 print_str_lines::@5 + //SEG275 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] + //SEG276 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG277 print_str_lines::@5 b5: - //SEG276 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 + //SEG278 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 cmp #'@' bne b4 - //SEG277 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] - //SEG278 print_str_lines::@9 - //SEG279 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) - //SEG280 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG279 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG280 print_str_lines::@9 + //SEG281 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG282 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] jsr print_ln - //SEG281 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 + //SEG283 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 - //SEG282 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] - //SEG283 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG284 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG285 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG284 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] + //SEG285 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG286 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG287 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 } -//SEG286 print_ln +//SEG288 print_ln print_ln: { - //SEG287 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] - //SEG288 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy - //SEG289 print_ln::@1 + //SEG289 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG290 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG291 print_ln::@1 b1: - //SEG290 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG292 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -9854,7 +9992,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG291 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG293 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1 @@ -9863,47 +10001,47 @@ print_ln: { cmp print_char_cursor bcc b1 !: - //SEG292 print_ln::@return - //SEG293 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG294 print_ln::@return + //SEG295 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) rts } -//SEG294 print_cls +//SEG296 print_cls print_cls: { - .label sc = 5 - //SEG295 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG296 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + .label sc = 6 + //SEG297 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + //SEG298 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta sc+1 - //SEG297 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] - //SEG298 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy - //SEG299 print_cls::@1 + //SEG299 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + //SEG300 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + //SEG301 print_cls::@1 b1: - //SEG300 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG302 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG301 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG303 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG302 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG304 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1 lda sc cmp #