diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuxx.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuxx.asm new file mode 100644 index 000000000..c25da4956 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuxx.asm @@ -0,0 +1 @@ +eor {c1},x diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy.asm new file mode 100644 index 000000000..f8c177f35 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy.asm @@ -0,0 +1 @@ +eor {c1},y 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 e055070d9..30ca21e0d 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 @@ -92,11 +92,6 @@ byte[] form_fields_max = { $d, 1, 1, 1, 1, 1, 2, 1, 1, 1, $f, $f, $f, $ // Form fields values byte[] form_fields_val = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -// Press-status for the DOWN key from last frame - used for debounce -byte key_down_debounce = 0; -// Press-status for the right key from last frame - used for debounce -byte key_right_debounce = 0; - // The number of frames to use for a full blink cycle const signed byte FORM_CURSOR_BLINK = 40; // Counts down to blink for form cursor (it is inversed in the lower half) @@ -146,50 +141,46 @@ void form_control() { *field = *field & $7f; } + // Scan the keyboard + keyboard_event_scan(); + byte key_event = keyboard_event_get(); + // Navigation using cursor up/down - byte key_down = keyboard_key_pressed(KEY_CRSR_DOWN); - if(key_down!=key_down_debounce) { - key_down_debounce = key_down; - if(key_down!=0) { - // Unblink the cursor - *field = *field & $7f; - if(keyboard_key_pressed(KEY_RSHIFT)==0) { - // Move to next field - if(++form_field_idx==form_fields_cnt) { - form_field_idx = 0; - } - } else { - // Move to previous field - if(--form_field_idx==$ff) { - form_field_idx = form_fields_cnt-1; - } - } - // Always blink cursor in new field - form_cursor_count = FORM_CURSOR_BLINK/2; - // Return to refresh - return; - } + if(key_event==KEY_CRSR_DOWN) { + // Unblink the cursor + *field = *field & $7f; + if((keyboard_modifiers&KEY_MODIFIER_SHIFT)==0) { + // Move to next field + if(++form_field_idx==form_fields_cnt) { + form_field_idx = 0; + } + } else { + // Move to previous field + if(--form_field_idx==$ff) { + form_field_idx = form_fields_cnt-1; + } + } + // Always blink cursor in new field + form_cursor_count = FORM_CURSOR_BLINK/2; + // Return to refresh + return; } // Change value with cursor left/right - 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 - if(++form_fields_val[form_field_idx]>form_fields_max[form_field_idx]) { - form_fields_val[form_field_idx] = 0; - } - } else { - // Decrease value - if(--form_fields_val[form_field_idx]==$ff) { - form_fields_val[form_field_idx] = form_fields_max[form_field_idx]; - } + if(key_event==KEY_CRSR_RIGHT) { + if((keyboard_modifiers&KEY_MODIFIER_SHIFT)==0) { + // Increase value + if(++form_fields_val[form_field_idx]>form_fields_max[form_field_idx]) { + form_fields_val[form_field_idx] = 0; + } + } else { + // Decrease value + 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]]; } + // Render field value + *field = print_hextab[form_fields_val[form_field_idx]]; } } diff --git a/src/test/java/dk/camelot64/kickc/test/kc/keyboard.kc b/src/test/java/dk/camelot64/kickc/test/kc/keyboard.kc index 6c16dd281..82b71861f 100644 --- a/src/test/java/dk/camelot64/kickc/test/kc/keyboard.kc +++ b/src/test/java/dk/camelot64/kickc/test/kc/keyboard.kc @@ -103,7 +103,7 @@ const byte[] keyboard_char_keycodes = { byte[8] keyboard_matrix_row_bitmask = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; // Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7) -byte[] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; +byte[8] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; // Initialize keyboard reading by setting CIA#$ Data Direction Registers void keyboard_init() { @@ -123,7 +123,7 @@ byte keyboard_matrix_read(byte rowid) { return row_pressed_bits; } -// Determines whether a specific key is currently pressed +// Determines whether a specific key is currently pressed by accessing the matrix directly // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed @@ -139,4 +139,94 @@ byte keyboard_key_pressed(byte key) { // If there is no non-shifted key representing the char $3f is returned (representing RUN/STOP) . byte keyboard_get_keycode(byte ch) { return keyboard_char_keycodes[ch]; -} \ No newline at end of file +} + +// Keyboard event buffer. Contains keycodes for key presses/releases. Presses are represented by the keycode. Releases by keycode | $40. The buffer is filled by keyboard_scan() +byte[8] keyboard_events; +// Keyboard event buffer size. The number of events currently in the event buffer +byte keyboard_events_size = 0; +// Current keyboard modifiers (left shift, right shift, ctrl, commodore) +byte keyboard_modifiers = 0; +// Left shift is pressed +const byte KEY_MODIFIER_LSHIFT = 1; +// Right shift is pressed +const byte KEY_MODIFIER_RSHIFT = 2; +// CTRL is pressed +const byte KEY_MODIFIER_CTRL = 4; +// Commodore is pressed +const byte KEY_MODIFIER_COMMODORE = 8; +// Any shift is pressed +const byte KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT; +// The values scanned values for each row. Set by keyboard_scan() and used by keyboard_get_event() +byte[8] keyboard_scan_values; + +// Scans the entire matrix to determine which keys have been pressed/depressed. +// Generates keyboard events into the event buffer. Events can be read using keyboard_event_get(). +// Handles debounce and only generates events when the status of a key changes. +// Also stores current status of modifiers in keyboard_modifiers. +void keyboard_event_scan() { + byte keycode = 0; + for(byte row : 0..7) { + byte row_scan = keyboard_matrix_read(row); + if(row_scan!=keyboard_scan_values[row]) { + // Something has changed on the keyboard row - check each column + for(byte col : 0..7){ + // XOR of row scan with the last seen row scan AND'ed with the col bitmask will be non-0 if the key status is changed + if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) { + // Key(row, col) status has changed. We have an event. + // Only process event if there is still room in the buffer + if(keyboard_events_size!=8) { + // AND of row scan and bit mask determines if key is pressed or released + byte event_type = row_scan&keyboard_matrix_col_bitmask[col]; + if(event_type==0) { + // Key released + keyboard_events[keyboard_events_size++] = keycode|$40; + } else { + // Key pressed + keyboard_events[keyboard_events_size++] = keycode; + } + } + } + keycode++; + } + // Store the current keyboard status for the row to debounce + keyboard_scan_values[row] = row_scan; + } else { + // Update current keycode + keycode = keycode + 8; + } + } + // Update the keyboard modifiers + keyboard_modifiers = 0; + if(keyboard_event_pressed(KEY_LSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_LSHIFT; + } + if(keyboard_event_pressed(KEY_RSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_RSHIFT; + } + if(keyboard_event_pressed(KEY_CTRL)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_CTRL; + } + if(keyboard_event_pressed(KEY_COMMODORE)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_COMMODORE; + } +} + +// Determine if a specific key is currently pressed based on the last keyboard_event_scan() +// Returns 0 is not pressed and non-0 if pressed +byte keyboard_event_pressed(byte keycode) { + byte row_bits = keyboard_scan_values[keycode>>3]; + return row_bits & keyboard_matrix_col_bitmask[keycode&7]; +} + +// Get the next event from the keyboard event buffer. +// Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. +// The buffer is filled by keyboard_scan() +byte keyboard_event_get() { + if(keyboard_events_size==0) { + return $ff; + } else { + return keyboard_events[--keyboard_events_size]; + } +} + 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 57860a035..91d341d33 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 @@ -25,24 +25,32 @@ .label DTV_GRAPHICS_VIC_BANK = $d03d .const KEY_CRSR_RIGHT = 2 .const KEY_CRSR_DOWN = 7 + .const KEY_LSHIFT = $f .const KEY_RSHIFT = $34 + .const KEY_CTRL = $3a + .const KEY_COMMODORE = $3d + .const KEY_MODIFIER_LSHIFT = 1 + .const KEY_MODIFIER_RSHIFT = 2 + .const KEY_MODIFIER_CTRL = 4 + .const KEY_MODIFIER_COMMODORE = 8 .const form_fields_cnt = $23 .const FORM_CURSOR_BLINK = $28 - .label print_char_cursor = 8 - .label print_line_cursor = $a + .const KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT + .label print_char_cursor = 9 + .label print_line_cursor = $b + .label keyboard_events_size = 6 + .label keyboard_modifiers = 3 .label form_cursor_count = 2 - .label key_down_debounce = 3 .label form_field_idx = 4 - .label key_right_debounce = 5 jsr main main: { sei lda #DTV_FEATURE_ENABLE sta DTV_FEATURE lda #0 - sta key_right_debounce sta form_field_idx - sta key_down_debounce + sta keyboard_modifiers + sta keyboard_events_size lda #FORM_CURSOR_BLINK/2 sta form_cursor_count b2: @@ -111,7 +119,7 @@ menu: { jmp b5 } form_control: { - .label field = 6 + .label field = 7 ldx form_field_idx jsr form_field_ptr dec form_cursor_count @@ -135,62 +143,54 @@ form_control: { ora (field),y sta (field),y b3: - ldx #KEY_CRSR_DOWN - jsr keyboard_key_pressed - cmp key_down_debounce - beq b4 - sta key_down_debounce - cmp #0 - beq b4 + jsr keyboard_event_scan + jsr keyboard_event_get + cmp #KEY_CRSR_DOWN + bne b4 lda #$7f ldy #0 and (field),y sta (field),y - ldx #KEY_RSHIFT - jsr keyboard_key_pressed + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers cmp #0 - bne b6 + bne b5 inc form_field_idx lda form_field_idx cmp #form_fields_cnt - bne b8 - lda #0 + bne b7 + tya sta form_field_idx - b8: + b7: lda #FORM_CURSOR_BLINK/2 sta form_cursor_count breturn: rts - b6: + b5: dec form_field_idx lda form_field_idx cmp #$ff - bne b8 + bne b7 lda #form_fields_cnt-1 sta form_field_idx - jmp b8 + jmp b7 b4: - ldx #KEY_CRSR_RIGHT - jsr keyboard_key_pressed - cmp key_right_debounce - beq breturn - sta key_right_debounce + cmp #KEY_CRSR_RIGHT + bne breturn + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers cmp #0 - beq breturn - ldx #KEY_RSHIFT - jsr keyboard_key_pressed - cmp #0 - bne b12 + bne b10 ldx form_field_idx inc form_fields_val,x ldy form_field_idx lda form_fields_val,y cmp form_fields_max,y - bcc b14 - beq b14 + bcc b12 + beq b12 lda #0 sta form_fields_val,y - b14: + b12: ldy form_field_idx lda form_fields_val,y tay @@ -198,7 +198,7 @@ form_control: { ldy #0 sta (field),y jmp breturn - b12: + b10: ldx form_field_idx lda form_fields_val,x sec @@ -207,10 +207,10 @@ form_control: { ldy form_field_idx lda form_fields_val,y cmp #$ff - bne b14 + bne b12 lda form_fields_max,y sta form_fields_val,y - jmp b14 + jmp b12 b2: lda #$7f ldy #0 @@ -218,17 +218,134 @@ form_control: { sta (field),y jmp b3 } -keyboard_key_pressed: { - txa - and #7 - tay - txa +keyboard_event_get: { + lda keyboard_events_size + bne b1 + lda #$ff + breturn: + rts + b1: + dec keyboard_events_size + ldy keyboard_events_size + lda keyboard_events,y + jmp breturn +} +keyboard_event_scan: { + .label row_scan = $d + .label keycode = 5 + .label row = 3 + lda #0 + sta keycode + sta row + b1: + ldx row + jsr keyboard_matrix_read + sta row_scan + ldy row + lda keyboard_scan_values,y + cmp row_scan + bne !b2+ + jmp b2 + !b2: + ldx #0 + b3: + lda row_scan + ldy row + eor keyboard_scan_values,y + and keyboard_matrix_col_bitmask,x + cmp #0 + beq b4 + lda keyboard_events_size + cmp #8 + beq b4 + lda keyboard_matrix_col_bitmask,x + and row_scan + cmp #0 + bne b6 + lda #$40 + ora keycode + ldy keyboard_events_size + sta keyboard_events,y + inc keyboard_events_size + b4: + inc keycode + inx + cpx #8 + bne b3 + lda row_scan + ldy row + sta keyboard_scan_values,y + b8: + inc row + lda row + cmp #8 + bne b1 + lda #KEY_LSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + cmp #0 + beq b5 + lda #0|KEY_MODIFIER_LSHIFT + sta keyboard_modifiers + jmp b9 + b5: + lda #0 + sta keyboard_modifiers + b9: + lda #KEY_RSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + cmp #0 + beq b10 + lda #KEY_MODIFIER_RSHIFT + ora keyboard_modifiers + sta keyboard_modifiers + b10: + lda #KEY_CTRL + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + cmp #0 + beq b11 + lda #KEY_MODIFIER_CTRL + ora keyboard_modifiers + sta keyboard_modifiers + b11: + lda #KEY_COMMODORE + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + cmp #0 + beq breturn + lda #KEY_MODIFIER_COMMODORE + ora keyboard_modifiers + sta keyboard_modifiers + breturn: + rts + b6: + lda keycode + ldy keyboard_events_size + sta keyboard_events,y + inc keyboard_events_size + jmp b4 + b2: + lda #8 + clc + adc keycode + sta keycode + jmp b8 +} +keyboard_event_pressed: { + .label keycode = 5 + lda keycode lsr lsr lsr tax - jsr keyboard_matrix_read - and keyboard_matrix_col_bitmask,y + ldy keyboard_scan_values,x + lda #7 + and keycode + tax + tya + and keyboard_matrix_col_bitmask,x rts } keyboard_matrix_read: { @@ -239,8 +356,8 @@ keyboard_matrix_read: { rts } form_field_ptr: { - .label return = 6 - .label _2 = 6 + .label return = 7 + .label _2 = 7 ldy form_fields_y,x lda form_line_hi,y sta _2+1 @@ -256,7 +373,7 @@ form_field_ptr: { rts } form_render_values: { - .label field = 6 + .label field = 7 ldx #0 b1: jsr form_field_ptr @@ -271,7 +388,7 @@ form_render_values: { rts } form_set_screen: { - .label line = 6 + .label line = 7 ldx #0 lda #((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 ] ) - [14] *((const byte*) DTV_CONTROL#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 ] ) - [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 ] ) - [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ 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 ] ) - [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 ] ) - [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#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 ] ) - [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ 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 ] ) + [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 - [20] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) [ 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 ] ) - [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 ] ) - [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 ] ) - [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 ] ) + [20] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ) + [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 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ) + [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) + [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) to:menu::@8 menu::@8: scope:[menu] from menu::@1 - [24] *((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 ] ) - [25] *((const byte*) BORDERCOL#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 ] ) - [26] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [24] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [25] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [26] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@15 menu::@15: scope:[menu] from menu::@8 - [27] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [28] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [27] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [28] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@16 menu::@16: scope:[menu] from menu::@15 - [29] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [30] call print_str_lines param-assignment [ 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 ] ) + [29] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [30] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@17 menu::@17: scope:[menu] from menu::@16 - [31] phi() [ 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 ] ) - [32] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [31] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [32] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@18 menu::@18: scope:[menu] from menu::@17 - [33] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [34] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [33] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [34] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@19 menu::@19: scope:[menu] from menu::@18 - [35] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [36] call print_str_lines param-assignment [ 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 ] ) + [35] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [36] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@20 menu::@20: scope:[menu] from menu::@19 - [37] phi() [ 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 ] ) - [38] call form_set_screen param-assignment [ 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 ] ) + [37] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [38] call form_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@21 menu::@21: scope:[menu] from menu::@20 - [39] phi() [ 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 ] ) - [40] call form_render_values param-assignment [ 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 ] ) + [39] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [40] call form_render_values param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@2 menu::@2: scope:[menu] from menu::@21 menu::@7 - [41] (byte) key_right_debounce#11 ← phi( menu::@21/(byte) key_right_debounce#1 menu::@7/(byte) key_right_debounce#13 ) [ 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 ] ) - [41] (byte) form_field_idx#14 ← phi( menu::@21/(byte) form_field_idx#1 menu::@7/(byte) form_field_idx#18 ) [ 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 ] ) - [41] (byte) key_down_debounce#11 ← phi( menu::@21/(byte) key_down_debounce#1 menu::@7/(byte) key_down_debounce#13 ) [ 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 ] ) - [41] (signed byte) form_cursor_count#13 ← phi( menu::@21/(signed byte) form_cursor_count#1 menu::@7/(signed byte) form_cursor_count#16 ) [ 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 ] ) - [42] if(true) goto menu::@5 [ 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 ] ) + [41] (byte) form_field_idx#14 ← phi( menu::@21/(byte) form_field_idx#1 menu::@7/(byte) form_field_idx#18 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [41] (byte) keyboard_modifiers#10 ← phi( menu::@21/(byte) keyboard_modifiers#20 menu::@7/(byte) keyboard_modifiers#18 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [41] (byte) keyboard_events_size#24 ← phi( menu::@21/(byte) keyboard_events_size#22 menu::@7/(byte) keyboard_events_size#20 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [41] (signed byte) form_cursor_count#13 ← phi( menu::@21/(signed byte) form_cursor_count#1 menu::@7/(signed byte) form_cursor_count#16 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [42] if(true) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) to:menu::@return menu::@return: scope:[menu] from menu::@2 - [43] return [ 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 ] ) + [43] return [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) to:@return menu::@5: scope:[menu] from menu::@2 menu::@5 - [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ 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 ] ) + [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) to:menu::@7 menu::@7: scope:[menu] from menu::@5 - [45] phi() [ 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 ] ) - [46] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [45] phi() [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) + [46] call form_control param-assignment [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) to:menu::@2 form_control: scope:[form_control] from menu::@7 - [47] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) - [48] 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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) - [49] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) - to:form_control::@32 -form_control::@32: scope:[form_control] from form_control - [50] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) - [51] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) - [52] 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:46 [ 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::@32 form_control::@37 - [53] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - [54] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - to:form_control::@17 -form_control::@17: scope:[form_control] from form_control::@1 - [55] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) - [56] *((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:46 [ 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::@17 form_control::@2 - [57] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - [58] 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:46 [ 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 ] ) - [59] (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:46 [ 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::@33 -form_control::@33: scope:[form_control] from form_control::@3 - [60] (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:46 [ 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 ] ) - [61] 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:46 [ 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::@19 -form_control::@19: scope:[form_control] from form_control::@33 - [62] (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:46 [ 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 ] ) - [63] 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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) - to:form_control::@20 -form_control::@20: scope:[form_control] from form_control::@19 - [64] (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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) - [65] *((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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) - [66] 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:46 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - [67] (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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) - to:form_control::@35 -form_control::@35: scope:[form_control] from form_control::@20 - [68] (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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) - [69] 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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) - to:form_control::@21 -form_control::@21: scope:[form_control] from form_control::@35 - [70] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) - [71] 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:46 [ 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::@21 form_control::@38 form_control::@39 form_control::@6 - [72] (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:46 [ 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::@14 form_control::@26 form_control::@34 form_control::@8 - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [74] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - to:@return -form_control::@38: scope:[form_control] from form_control::@21 - [75] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ 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::@35 - [76] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) - [77] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) - to:form_control::@8 -form_control::@39: scope:[form_control] from form_control::@6 - [78] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:46 [ 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::@19 form_control::@33 - [79] (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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ) - [80] 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:46 [ 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 ] ) - [81] (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:46 [ 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::@34 -form_control::@34: scope:[form_control] from form_control::@4 - [82] (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:46 [ 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 ] ) - [83] 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:46 [ 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::@26 -form_control::@26: scope:[form_control] from form_control::@34 - [84] (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:46 [ 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 ] ) - [85] 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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@27 -form_control::@27: scope:[form_control] from form_control::@26 - [86] 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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - [87] 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:46 [ 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 ] ) - [88] (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:46 [ 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::@36 -form_control::@36: scope:[form_control] from form_control::@27 - [89] (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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) - [90] 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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + [47] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ) + [48] call form_field_ptr param-assignment [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ) + [49] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ) to:form_control::@28 -form_control::@28: scope:[form_control] from form_control::@36 - [91] *((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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - [92] 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:46 [ 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 - [93] *((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:46 [ 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 - [94] *((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:46 [ 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::@36 - [95] *((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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - [96] 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:46 [ 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 - [97] *((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:46 [ 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 - [98] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) - [99] *((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:46 [ 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::@37: scope:[form_control] from form_control::@32 - [100] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) +form_control::@28: scope:[form_control] from form_control + [50] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ) + [51] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) + [52] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@31 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) to:form_control::@1 -keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@20 form_control::@27 form_control::@3 form_control::@4 - [101] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [102] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [103] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [104] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [105] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [106] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - to:keyboard_key_pressed::@2 -keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed - [107] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [108] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - to:keyboard_key_pressed::@return -keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 - [109] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) +form_control::@1: scope:[form_control] from form_control::@28 form_control::@31 + [53] (signed byte) form_cursor_count#15 ← phi( form_control::@28/(const signed byte) FORM_CURSOR_BLINK#0 form_control::@31/(signed byte) form_cursor_count#5 ) [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + [54] 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 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@15 +form_control::@15: scope:[form_control] from form_control::@1 + [55] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) + [56] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 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 + [57] phi() [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + [58] call keyboard_event_scan param-assignment [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:form_control::@29 +form_control::@29: scope:[form_control] from form_control::@3 + [59] phi() [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + [60] call keyboard_event_get param-assignment [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ) + [61] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ) + to:form_control::@30 +form_control::@30: scope:[form_control] from form_control::@29 + [62] (byte) form_control::key_event#0 ← (byte) keyboard_event_get::return#3 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) + [63] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_DOWN#0) goto form_control::@4 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) + to:form_control::@17 +form_control::@17: scope:[form_control] from form_control::@30 + [64] (byte~) form_control::$12 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ) + [65] *((byte*) form_control::field#0) ← (byte~) form_control::$12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) + [66] (byte~) form_control::$13 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ) + [67] if((byte~) form_control::$13!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) + to:form_control::@18 +form_control::@18: scope:[form_control] from form_control::@17 + [68] (byte) form_field_idx#40 ← ++ (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) + [69] if((byte) form_field_idx#40!=(const byte) form_fields_cnt#0) goto form_control::@32 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) + to:form_control::@7 +form_control::@7: scope:[form_control] from form_control::@18 form_control::@32 form_control::@33 form_control::@5 + [70] (byte) form_field_idx#30 ← phi( form_control::@18/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@5/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@32/(byte) form_field_idx#40 form_control::@33/(byte) form_field_idx#41 ) [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#30 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#30 ] ) + to:form_control::@return +form_control::@return: scope:[form_control] from form_control::@12 form_control::@4 form_control::@7 + [71] (byte) form_field_idx#18 ← phi( form_control::@12/(byte) form_field_idx#14 form_control::@7/(byte) form_field_idx#30 form_control::@4/(byte) form_field_idx#14 ) [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) + [71] (signed byte) form_cursor_count#16 ← phi( form_control::@12/(signed byte) form_cursor_count#15 form_control::@7/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 form_control::@4/(signed byte) form_cursor_count#15 ) [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) + [72] return [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) to:@return -keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [110] *((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:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) - [111] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) +form_control::@32: scope:[form_control] from form_control::@18 + [73] phi() [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) + to:form_control::@7 +form_control::@5: scope:[form_control] from form_control::@17 + [74] (byte) form_field_idx#41 ← -- (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) + [75] if((byte) form_field_idx#41!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@33 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) + to:form_control::@7 +form_control::@33: scope:[form_control] from form_control::@5 + [76] phi() [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) + to:form_control::@7 +form_control::@4: scope:[form_control] from form_control::@30 + [77] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_RIGHT#0) goto form_control::@return [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@23 +form_control::@23: scope:[form_control] from form_control::@4 + [78] (byte~) form_control::$24 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ) + [79] if((byte~) form_control::$24!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@24 +form_control::@24: scope:[form_control] from form_control::@23 + [80] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + [81] 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::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@25 +form_control::@25: scope:[form_control] from form_control::@24 + [82] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@12 +form_control::@12: scope:[form_control] from form_control::@10 form_control::@24 form_control::@25 form_control::@27 + [83] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ) + to:form_control::@return +form_control::@10: scope:[form_control] from form_control::@23 + [84] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + [85] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@27 +form_control::@27: scope:[form_control] from form_control::@10 + [86] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@12 +form_control::@2: scope:[form_control] from form_control::@1 + [87] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) + [88] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@3 +form_control::@31: scope:[form_control] from form_control::@28 + [89] phi() [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) + to:form_control::@1 +keyboard_event_get: scope:[keyboard_event_get] from form_control::@29 + [90] if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@1 + [91] (byte) keyboard_events_size#20 ← phi( keyboard_event_get::@1/(byte) keyboard_events_size#4 keyboard_event_get/(byte) keyboard_events_size#17 ) [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + [91] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get::@1/(byte) keyboard_event_get::return#0 keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 ) [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + [92] return [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + to:@return +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get + [93] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#17 [ keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#4 ] ) + [94] (byte) keyboard_event_get::return#0 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) [ keyboard_event_get::return#0 keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#0 keyboard_events_size#4 ] ) + to:keyboard_event_get::@return +keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 + [95] phi() [ keyboard_events_size#24 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#24 ] ) + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + [96] (byte) keyboard_events_size#43 ← phi( keyboard_event_scan/(byte) keyboard_events_size#24 keyboard_event_scan::@8/(byte) keyboard_events_size#17 ) [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [96] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::keycode#14 ) [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [96] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::row#1 ) [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [97] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ) + [98] call keyboard_matrix_read param-assignment [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) + [99] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ) + to:keyboard_event_scan::@25 +keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + [100] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) + [101] if((byte) keyboard_event_scan::row_scan#0==*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@4 + [102] (byte) keyboard_events_size#14 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#43 keyboard_event_scan::@4/(byte) keyboard_events_size#44 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [102] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@4/(byte) keyboard_event_scan::keycode#15 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [102] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@4/(byte) keyboard_event_scan::col#1 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [103] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ) + [104] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ) + [105] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + to:keyboard_event_scan::@14 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + [106] if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + to:keyboard_event_scan::@15 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + [107] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ) + [108] if((byte) keyboard_event_scan::event_type#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@6 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + to:keyboard_event_scan::@16 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + [109] (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ) + [110] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte/word/dword~) keyboard_event_scan::$12 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [111] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ) + to:keyboard_event_scan::@4 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 + [112] (byte) keyboard_events_size#44 ← phi( keyboard_event_scan::@16/(byte) keyboard_events_size#2 keyboard_event_scan::@3/(byte) keyboard_events_size#14 keyboard_event_scan::@14/(byte) keyboard_events_size#14 keyboard_event_scan::@6/(byte) keyboard_events_size#1 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#44 ] ) + [113] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + [114] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + [115] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@3 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + to:keyboard_event_scan::@18 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + [116] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + [117] (byte) keyboard_events_size#17 ← phi( keyboard_event_scan::@18/(byte) keyboard_events_size#44 keyboard_event_scan::@2/(byte) keyboard_events_size#43 ) [ keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ) + [117] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@18/(byte) keyboard_event_scan::keycode#15 keyboard_event_scan::@2/(byte) keyboard_event_scan::keycode#1 ) [ keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ) + [118] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) + [119] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) + to:keyboard_event_scan::@20 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + [120] phi() [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + [121] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] ) + [122] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_event_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#0 ] ) + to:keyboard_event_scan::@26 +keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + [123] (byte~) keyboard_event_scan::$16 ← (byte) keyboard_event_pressed::return#0 [ keyboard_events_size#17 keyboard_event_scan::$16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::$16 ] ) + [124] if((byte~) keyboard_event_scan::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:keyboard_event_scan::@21 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 + [125] phi() [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:keyboard_event_scan::@9 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 + [126] (byte) keyboard_modifiers#15 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ keyboard_events_size#17 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 ] ) + [127] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ) + [128] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ) + to:keyboard_event_scan::@27 +keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + [129] (byte~) keyboard_event_scan::$20 ← (byte) keyboard_event_pressed::return#1 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ) + [130] if((byte~) keyboard_event_scan::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 [ keyboard_events_size#17 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 ] ) + to:keyboard_event_scan::@22 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27 + [131] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#15 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#17 keyboard_modifiers#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#3 ] ) + to:keyboard_event_scan::@10 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27 + [132] (byte) keyboard_modifiers#16 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#15 ) [ keyboard_events_size#17 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 ] ) + [133] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ) + [134] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ) + to:keyboard_event_scan::@28 +keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + [135] (byte~) keyboard_event_scan::$24 ← (byte) keyboard_event_pressed::return#2 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ) + [136] if((byte~) keyboard_event_scan::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 [ keyboard_events_size#17 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 ] ) + to:keyboard_event_scan::@23 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28 + [137] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#16 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#17 keyboard_modifiers#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#4 ] ) + to:keyboard_event_scan::@11 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28 + [138] (byte) keyboard_modifiers#17 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#16 ) [ keyboard_events_size#17 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 ] ) + [139] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ) + [140] (byte) keyboard_event_pressed::return#3 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ) + to:keyboard_event_scan::@29 +keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + [141] (byte~) keyboard_event_scan::$28 ← (byte) keyboard_event_pressed::return#3 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ) + [142] if((byte~) keyboard_event_scan::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return [ keyboard_events_size#17 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 ] ) + to:keyboard_event_scan::@24 +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29 + [143] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#17 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#17 keyboard_modifiers#5 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#5 ] ) + to:keyboard_event_scan::@return +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29 + [144] (byte) keyboard_modifiers#18 ← phi( keyboard_event_scan::@29/(byte) keyboard_modifiers#17 keyboard_event_scan::@24/(byte) keyboard_modifiers#5 ) [ keyboard_modifiers#18 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_modifiers#18 keyboard_events_size#17 ] ) + [145] return [ keyboard_modifiers#18 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_modifiers#18 keyboard_events_size#17 ] ) + to:@return +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + [146] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [147] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ) + to:keyboard_event_scan::@4 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@25 + [148] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ) + to:keyboard_event_scan::@8 +keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 + [149] (byte) keyboard_event_pressed::keycode#4 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 ) [ keyboard_event_pressed::keycode#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 ] ) + [150] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ) + [151] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ) + [152] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) + [153] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed + [154] return [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) + to:@return +keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 + [155] *((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:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [156] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [112] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) + [157] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) to:@return form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@1 - [113] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) [ form_field_ptr::field_idx#2 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 ] main:2::menu:10::form_render_values:40::form_field_ptr:122 [ 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 ] ) - [114] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) - [115] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) - [116] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) - [117] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) + [158] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) [ form_field_ptr::field_idx#2 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 ] ) + [159] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) + [160] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) + [161] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) + [162] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) to:form_field_ptr::@return form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr - [118] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) + [163] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) to:@return form_render_values: scope:[form_render_values] from menu::@21 - [119] phi() [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [164] phi() [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:form_render_values::@1 form_render_values::@1: scope:[form_render_values] from form_render_values form_render_values::@3 - [120] (byte) form_render_values::idx#2 ← phi( form_render_values/(byte/signed byte/word/signed word/dword/signed dword) 0 form_render_values::@3/(byte) form_render_values::idx#1 ) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) - [121] (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:40 [ 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 ] ) - [122] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ 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 ] ) - [123] (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:40 [ 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 ] ) + [165] (byte) form_render_values::idx#2 ← phi( form_render_values/(byte/signed byte/word/signed word/dword/signed dword) 0 form_render_values::@3/(byte) form_render_values::idx#1 ) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 ] ) + [166] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) + [167] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + [168] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) to:form_render_values::@3 form_render_values::@3: scope:[form_render_values] from form_render_values::@1 - [124] (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:40 [ 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 ] ) - [125] *((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:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) - [126] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) - [127] 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:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) + [169] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_render_values::field#0 ] ) + [170] *((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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 ] ) + [171] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) + [172] 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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) to:form_render_values::@return form_render_values::@return: scope:[form_render_values] from form_render_values::@3 - [128] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [173] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:@return form_set_screen: scope:[form_set_screen] from menu::@20 - [129] phi() [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [174] phi() [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:form_set_screen::@1 form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_screen::@1 - [130] (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 form_set_screen::@1/(byte) form_set_screen::y#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ 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 ] ) - [130] (byte*) form_set_screen::line#2 ← phi( form_set_screen/(const byte*) menu::SCREEN#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ 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 ] ) - [131] (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:38 [ 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 ] ) - [132] *((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:38 [ 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 ] ) - [133] (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:38 [ 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 ] ) - [134] *((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:38 [ 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 ] ) - [135] (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:38 [ 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 ] ) - [136] (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:38 [ 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 ] ) - [137] 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:38 [ 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 ] ) + [175] (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 form_set_screen::@1/(byte) form_set_screen::y#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [175] (byte*) form_set_screen::line#2 ← phi( form_set_screen/(const byte*) menu::SCREEN#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [176] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) + [177] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [178] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) + [179] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [180] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) + [181] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) + [182] 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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) to:form_set_screen::@return form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 - [138] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [183] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:@return print_str_lines: scope:[print_str_lines] from menu::@16 menu::@19 - [139] (byte*) print_str_lines::str#5 ← phi( menu::@16/(const string) MENU_COLS#0 menu::@19/(const string) MENU_TEXT#0 ) [ print_str_lines::str#5 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_set_screen::screen#2 ] ) - [140] (byte*~) print_char_cursor#63 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ) + [184] (byte*) print_str_lines::str#5 ← phi( menu::@16/(const string) MENU_COLS#0 menu::@19/(const string) MENU_TEXT#0 ) [ print_str_lines::str#5 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_set_screen::screen#2 ] ) + [185] (byte*~) print_char_cursor#64 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ) to:print_str_lines::@1 print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9 - [141] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@9/(byte*) print_line_cursor#22 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) - [141] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#63 print_str_lines::@9/(byte*~) print_char_cursor#64 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) - [141] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@9/(byte*) print_str_lines::str#0 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) - [142] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [186] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@9/(byte*) print_line_cursor#22 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [186] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#64 print_str_lines::@9/(byte*~) print_char_cursor#65 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [186] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@9/(byte*) print_str_lines::str#0 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [187] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) to:print_str_lines::@return print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1 - [143] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [188] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:@return print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5 - [144] (byte*) print_char_cursor#20 ← phi( print_str_lines::@1/(byte*) print_char_cursor#22 print_str_lines::@5/(byte*) print_char_cursor#38 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) - [144] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@5/(byte*) print_str_lines::str#0 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) - [145] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) - [146] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) - [147] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) + [189] (byte*) print_char_cursor#20 ← phi( print_str_lines::@1/(byte*) print_char_cursor#22 print_str_lines::@5/(byte*) print_char_cursor#38 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) + [189] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@5/(byte*) print_str_lines::str#0 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) + [190] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) + [191] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) + [192] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) to:print_str_lines::@8 print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4 - [148] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) - [149] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) + [193] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) + [194] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) to:print_str_lines::@5 print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8 - [150] (byte*) print_char_cursor#38 ← phi( print_str_lines::@4/(byte*) print_char_cursor#20 print_str_lines::@8/(byte*) print_char_cursor#1 ) [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ) - [151] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) + [195] (byte*) print_char_cursor#38 ← phi( print_str_lines::@4/(byte*) print_char_cursor#20 print_str_lines::@8/(byte*) print_char_cursor#1 ) [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ) + [196] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) to:print_str_lines::@9 print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5 - [152] phi() [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) - [153] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) - [154] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ) + [197] phi() [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) + [198] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) + [199] (byte*~) print_char_cursor#65 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ) to:print_str_lines::@1 print_ln: scope:[print_ln] from print_str_lines::@9 - [155] phi() [ print_line_cursor#2 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] ) + [200] phi() [ print_line_cursor#2 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [156] (byte*) print_line_cursor#21 ← phi( print_ln/(byte*) print_line_cursor#2 print_ln::@1/(byte*) print_line_cursor#22 ) [ print_char_cursor#38 print_line_cursor#21 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] ) - [157] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) - [158] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) + [201] (byte*) print_line_cursor#21 ← phi( print_ln/(byte*) print_line_cursor#2 print_ln::@1/(byte*) print_line_cursor#22 ) [ print_char_cursor#38 print_line_cursor#21 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] ) + [202] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) + [203] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 - [159] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) + [204] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) to:@return print_cls: scope:[print_cls] from menu::@15 menu::@18 - [160] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] ) + [205] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [161] (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) - [162] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) - [163] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) - [164] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) - [165] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) + [206] (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) + [207] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) + [208] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) + [209] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) + [210] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 - [166] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [211] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:@return print_set_screen: scope:[print_set_screen] from menu::@17 menu::@8 - [167] (byte*) print_set_screen::screen#2 ← phi( menu::@17/(const byte*) menu::SCREEN#0 menu::@8/(const byte*) COLS#0 ) [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [212] (byte*) print_set_screen::screen#2 ← phi( menu::@17/(const byte*) menu::SCREEN#0 menu::@8/(const byte*) COLS#0 ) [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:print_set_screen::@return print_set_screen::@return: scope:[print_set_screen] from print_set_screen - [168] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [213] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:@return 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 d06b4e596..15d4a59dd 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 @@ -93,11 +93,6 @@ byte[] form_fields_max = { $d, 1, 1, 1, 1, 1, 2, 1, 1, 1, $f, $f, $f, $ // Form fields values byte[] form_fields_val = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -// Press-status for the DOWN key from last frame - used for debounce -byte key_down_debounce = 0; -// Press-status for the right key from last frame - used for debounce -byte key_right_debounce = 0; - // The number of frames to use for a full blink cycle const signed byte FORM_CURSOR_BLINK = 40; // Counts down to blink for form cursor (it is inversed in the lower half) @@ -147,50 +142,46 @@ void form_control() { *field = *field & $7f; } + // Scan the keyboard + keyboard_event_scan(); + byte key_event = keyboard_event_get(); + // Navigation using cursor up/down - byte key_down = keyboard_key_pressed(KEY_CRSR_DOWN); - if(key_down!=key_down_debounce) { - key_down_debounce = key_down; - if(key_down!=0) { - // Unblink the cursor - *field = *field & $7f; - if(keyboard_key_pressed(KEY_RSHIFT)==0) { - // Move to next field - if(++form_field_idx==form_fields_cnt) { - form_field_idx = 0; - } - } else { - // Move to previous field - if(--form_field_idx==$ff) { - form_field_idx = form_fields_cnt-1; - } - } - // Always blink cursor in new field - form_cursor_count = FORM_CURSOR_BLINK/2; - // Return to refresh - return; - } + if(key_event==KEY_CRSR_DOWN) { + // Unblink the cursor + *field = *field & $7f; + if((keyboard_modifiers&KEY_MODIFIER_SHIFT)==0) { + // Move to next field + if(++form_field_idx==form_fields_cnt) { + form_field_idx = 0; + } + } else { + // Move to previous field + if(--form_field_idx==$ff) { + form_field_idx = form_fields_cnt-1; + } + } + // Always blink cursor in new field + form_cursor_count = FORM_CURSOR_BLINK/2; + // Return to refresh + return; } // Change value with cursor left/right - 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 - if(++form_fields_val[form_field_idx]>form_fields_max[form_field_idx]) { - form_fields_val[form_field_idx] = 0; - } - } else { - // Decrease value - if(--form_fields_val[form_field_idx]==$ff) { - form_fields_val[form_field_idx] = form_fields_max[form_field_idx]; - } + if(key_event==KEY_CRSR_RIGHT) { + if((keyboard_modifiers&KEY_MODIFIER_SHIFT)==0) { + // Increase value + if(++form_fields_val[form_field_idx]>form_fields_max[form_field_idx]) { + form_fields_val[form_field_idx] = 0; + } + } else { + // Decrease value + 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]]; } + // Render field value + *field = print_hextab[form_fields_val[form_field_idx]]; } } @@ -605,7 +596,7 @@ const byte[] keyboard_char_keycodes = { byte[8] keyboard_matrix_row_bitmask = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; // Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7) -byte[] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; +byte[8] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; // Initialize keyboard reading by setting CIA#$ Data Direction Registers void keyboard_init() { @@ -625,7 +616,7 @@ byte keyboard_matrix_read(byte rowid) { return row_pressed_bits; } -// Determines whether a specific key is currently pressed +// Determines whether a specific key is currently pressed by accessing the matrix directly // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed @@ -642,7 +633,102 @@ byte keyboard_key_pressed(byte key) { byte keyboard_get_keycode(byte ch) { return keyboard_char_keycodes[ch]; } + +// Keyboard event buffer. Contains keycodes for key presses/releases. Presses are represented by the keycode. Releases by keycode | $40. The buffer is filled by keyboard_scan() +byte[8] keyboard_events; +// Keyboard event buffer size. The number of events currently in the event buffer +byte keyboard_events_size = 0; +// Current keyboard modifiers (left shift, right shift, ctrl, commodore) +byte keyboard_modifiers = 0; +// Left shift is pressed +const byte KEY_MODIFIER_LSHIFT = 1; +// Right shift is pressed +const byte KEY_MODIFIER_RSHIFT = 2; +// CTRL is pressed +const byte KEY_MODIFIER_CTRL = 4; +// Commodore is pressed +const byte KEY_MODIFIER_COMMODORE = 8; +// Any shift is pressed +const byte KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT; +// The values scanned values for each row. Set by keyboard_scan() and used by keyboard_get_event() +byte[8] keyboard_scan_values; + +// Scans the entire matrix to determine which keys have been pressed/depressed. +// Generates keyboard events into the event buffer. Events can be read using keyboard_event_get(). +// Handles debounce and only generates events when the status of a key changes. +// Also stores current status of modifiers in keyboard_modifiers. +void keyboard_event_scan() { + byte keycode = 0; + for(byte row : 0..7) { + byte row_scan = keyboard_matrix_read(row); + if(row_scan!=keyboard_scan_values[row]) { + // Something has changed on the keyboard row - check each column + for(byte col : 0..7){ + // XOR of row scan with the last seen row scan AND'ed with the col bitmask will be non-0 if the key status is changed + if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) { + // Key(row, col) status has changed. We have an event. + // Only process event if there is still room in the buffer + if(keyboard_events_size!=8) { + // AND of row scan and bit mask determines if key is pressed or released + byte event_type = row_scan&keyboard_matrix_col_bitmask[col]; + if(event_type==0) { + // Key released + keyboard_events[keyboard_events_size++] = keycode|$40; + } else { + // Key pressed + keyboard_events[keyboard_events_size++] = keycode; + } + } + } + keycode++; + } + // Store the current keyboard status for the row to debounce + keyboard_scan_values[row] = row_scan; + } else { + // Update current keycode + keycode = keycode + 8; + } + } + // Update the keyboard modifiers + keyboard_modifiers = 0; + if(keyboard_event_pressed(KEY_LSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_LSHIFT; + } + if(keyboard_event_pressed(KEY_RSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_RSHIFT; + } + if(keyboard_event_pressed(KEY_CTRL)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_CTRL; + } + if(keyboard_event_pressed(KEY_COMMODORE)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_COMMODORE; + } +} + +// Determine if a specific key is currently pressed based on the last keyboard_event_scan() +// Returns 0 is not pressed and non-0 if pressed +byte keyboard_event_pressed(byte keycode) { + byte row_bits = keyboard_scan_values[keycode>>3]; + return row_bits & keyboard_matrix_col_bitmask[keycode&7]; +} + +// Get the next event from the keyboard event buffer. +// Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. +// The buffer is filled by keyboard_scan() +byte keyboard_event_get() { + if(keyboard_events_size==0) { + return $ff; + } else { + return keyboard_events[--keyboard_events_size]; + } +} + + Importing c64.kc +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode +Adding pre/post-modifier (byte) keyboard_events_size ← -- (byte) keyboard_events_size Adding pre/post-modifier (byte) form_render_values::idx ← ++ (byte) form_render_values::idx 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 @@ -980,7 +1066,7 @@ endproc // print_set_screen() (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } proc (void()) keyboard_init() *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1003,7 +1089,7 @@ proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 goto keyboard_key_pressed::@return keyboard_key_pressed::@return: @@ -1017,6 +1103,122 @@ keyboard_get_keycode::@return: (byte) keyboard_get_keycode::return ← (byte) keyboard_get_keycode::return return (byte) keyboard_get_keycode::return endproc // keyboard_get_keycode() + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } +proc (void()) keyboard_event_scan() + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@1: + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@3: + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + goto keyboard_event_scan::@7 +keyboard_event_scan::@6: + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +keyboard_event_scan::@7: +keyboard_event_scan::@5: +keyboard_event_scan::@4: + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + goto keyboard_event_scan::@8 +keyboard_event_scan::@2: + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +keyboard_event_scan::@8: + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 +keyboard_event_scan::@9: + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 +keyboard_event_scan::@10: + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 +keyboard_event_scan::@11: + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 +keyboard_event_scan::@12: +keyboard_event_scan::@return: + return +endproc // keyboard_event_scan() +proc (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + goto keyboard_event_pressed::@return +keyboard_event_pressed::@return: + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return +endproc // keyboard_event_pressed() +proc (byte()) keyboard_event_get() + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + goto keyboard_event_get::@return + goto keyboard_event_get::@2 +keyboard_event_get::@1: + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + goto keyboard_event_get::@return +keyboard_event_get::@2: +keyboard_event_get::@return: + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return +endproc // keyboard_event_get() proc (void()) main() asm { sei } *((byte*) DTV_FEATURE) ← (byte) DTV_FEATURE_ENABLE @@ -1030,26 +1232,26 @@ main::@3: main::@return: return endproc // main() - (string~) $0 ← (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" - (string~) $1 ← (string~) $0 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" + (string~) $1 ← (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (string~) $2 ← (string~) $1 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (string~) $3 ← (string~) $2 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (string~) $4 ← (string~) $3 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" - (string~) $5 ← (string~) $4 + (string) " nnnnnnn ooooooooo @" - (string~) $6 ← (string~) $5 + (string) " nnnnnnn nnnnnnnn ooooooooo @" + (string~) $5 ← (string~) $4 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" + (string~) $6 ← (string~) $5 + (string) " nnnnnnn ooooooooo @" (string~) $7 ← (string~) $6 + (string) " nnnnnnn nnnnnnnn ooooooooo @" - (string~) $8 ← (string~) $7 + (string) "@" - (byte[]) MENU_COLS ← (string~) $8 - (string~) $9 ← (string) " DTV GfxExplorer MODE 0 8bpp pixel cell @" + (string) " CONTROL PLANE A PLANE B VIC II @" - (string~) $10 ← (string~) $9 + (string) " bmm 0 patt p0 patt p0 screen s0 @" - (string~) $11 ← (string~) $10 + (string) " mcm 0 start 00 start 00 gfx g0 @" - (string~) $12 ← (string~) $11 + (string) " ecm 0 step 00 step 00 colors c0 @" - (string~) $13 ← (string~) $12 + (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" - (string~) $14 ← (string~) $13 + (string) " line 0 bgcol1 00 @" - (string~) $15 ← (string~) $14 + (string) " colof 0 borof 0 bgcol2 00 @" - (string~) $16 ← (string~) $15 + (string) " chunk 0 overs 0 bgcol3 00 @" - (string~) $17 ← (string~) $16 + (string) "@" - (byte[]) MENU_TEXT ← (string~) $17 + (string~) $8 ← (string~) $7 + (string) " nnnnnnn nnnnnnnn ooooooooo @" + (string~) $9 ← (string~) $8 + (string) "@" + (byte[]) MENU_COLS ← (string~) $9 + (string~) $10 ← (string) " DTV GfxExplorer MODE 0 8bpp pixel cell @" + (string) " CONTROL PLANE A PLANE B VIC II @" + (string~) $11 ← (string~) $10 + (string) " bmm 0 patt p0 patt p0 screen s0 @" + (string~) $12 ← (string~) $11 + (string) " mcm 0 start 00 start 00 gfx g0 @" + (string~) $13 ← (string~) $12 + (string) " ecm 0 step 00 step 00 colors c0 @" + (string~) $14 ← (string~) $13 + (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" + (string~) $15 ← (string~) $14 + (string) " line 0 bgcol1 00 @" + (string~) $16 ← (string~) $15 + (string) " colof 0 borof 0 bgcol2 00 @" + (string~) $17 ← (string~) $16 + (string) " chunk 0 overs 0 bgcol3 00 @" + (string~) $18 ← (string~) $17 + (string) "@" + (byte[]) MENU_TEXT ← (string~) $18 proc (void()) menu() (byte*) menu::SCREEN ← (word/dword/signed dword) 32768 (byte*) menu::CHARSET ← (word/dword/signed dword) 38912 @@ -1126,11 +1328,9 @@ endproc // menu() (byte[]) form_fields_y ← { (byte/signed byte/word/signed word/dword/signed dword) 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/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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (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) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8 } (byte[]) form_fields_max ← { (byte/signed byte/word/signed word/dword/signed dword) 13, (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/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15 } (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/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 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 (signed byte) FORM_CURSOR_BLINK ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (signed word/signed byte/signed dword~) $18 ← (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~) $18 + (signed word/signed byte/signed dword~) $19 ← (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~) $19 proc (void()) form_set_screen((byte*) form_set_screen::screen) (byte*) form_set_screen::line ← (byte*) form_set_screen::screen (byte) form_set_screen::y ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1192,80 +1392,69 @@ form_control::@2: (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 form_control::@3: - (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 - (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 - (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 + (void~) form_control::$8 ← call keyboard_event_scan + (byte~) form_control::$9 ← call keyboard_event_get + (byte) form_control::key_event ← (byte~) form_control::$9 + (boolean~) form_control::$10 ← (byte) form_control::key_event == (byte) KEY_CRSR_DOWN + (boolean~) form_control::$11 ← ! (boolean~) form_control::$10 + if((boolean~) form_control::$11) goto form_control::@4 + (byte~) form_control::$12 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field) ← (byte~) form_control::$12 + (byte~) form_control::$13 ← (byte) keyboard_modifiers & (byte) KEY_MODIFIER_SHIFT + (boolean~) form_control::$14 ← (byte~) form_control::$13 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$15 ← ! (boolean~) form_control::$14 + if((boolean~) form_control::$15) goto form_control::@5 (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 + (boolean~) form_control::$16 ← (byte) form_field_idx == (byte) form_fields_cnt + (boolean~) form_control::$17 ← ! (boolean~) form_control::$16 + if((boolean~) form_control::$17) goto form_control::@6 (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 -form_control::@7: - goto form_control::@8 form_control::@6: - (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 - (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 -form_control::@9: -form_control::@8: - (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 - goto form_control::@return + goto form_control::@7 form_control::@5: + (byte) form_field_idx ← -- (byte) form_field_idx + (boolean~) form_control::$18 ← (byte) form_field_idx == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$19 ← ! (boolean~) form_control::$18 + if((boolean~) form_control::$19) goto form_control::@8 + (byte/signed word/word/dword/signed dword~) form_control::$20 ← (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::$20 +form_control::@8: +form_control::@7: + (signed word/signed byte/signed dword~) form_control::$21 ← (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::$21 + goto form_control::@return form_control::@4: - (byte~) form_control::$23 ← call keyboard_key_pressed (byte) KEY_CRSR_RIGHT - (byte) form_control::key_right ← (byte~) form_control::$23 - (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 - (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 - (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 + (boolean~) form_control::$22 ← (byte) form_control::key_event == (byte) KEY_CRSR_RIGHT + (boolean~) form_control::$23 ← ! (boolean~) form_control::$22 + if((boolean~) form_control::$23) goto form_control::@9 + (byte~) form_control::$24 ← (byte) keyboard_modifiers & (byte) KEY_MODIFIER_SHIFT + (boolean~) form_control::$25 ← (byte~) form_control::$24 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$26 ← ! (boolean~) form_control::$25 + if((boolean~) form_control::$26) goto form_control::@10 *((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 + (boolean~) form_control::$27 ← *((byte[]) form_fields_val + (byte) form_field_idx) > *((byte[]) form_fields_max + (byte) form_field_idx) + (boolean~) form_control::$28 ← ! (boolean~) form_control::$27 + if((boolean~) form_control::$28) goto form_control::@11 *((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: + goto form_control::@12 form_control::@10: + *((byte[]) form_fields_val + (byte) form_field_idx) ← -- *((byte[]) form_fields_val + (byte) form_field_idx) + (boolean~) form_control::$29 ← *((byte[]) form_fields_val + (byte) form_field_idx) == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 + if((boolean~) form_control::$30) goto form_control::@13 + *((byte[]) form_fields_val + (byte) form_field_idx) ← *((byte[]) form_fields_max + (byte) form_field_idx) +form_control::@13: +form_control::@12: + *((byte*) form_control::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_field_idx)) +form_control::@9: form_control::@return: return endproc // form_control() call main SYMBOLS -(string~) $0 +(byte~) $0 (string~) $1 (string~) $10 (string~) $11 @@ -1275,7 +1464,8 @@ SYMBOLS (string~) $15 (string~) $16 (string~) $17 -(signed word/signed byte/signed dword~) $18 +(string~) $18 +(signed word/signed byte/signed dword~) $19 (string~) $2 (string~) $3 (string~) $4 @@ -1385,6 +1575,11 @@ SYMBOLS (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O (byte) KEY_P @@ -1456,44 +1651,38 @@ SYMBOLS (boolean~) form_control::$1 (boolean~) form_control::$10 (boolean~) form_control::$11 -(boolean~) form_control::$12 +(byte~) form_control::$12 (byte~) form_control::$13 -(byte~) form_control::$14 +(boolean~) form_control::$14 (boolean~) form_control::$15 (boolean~) form_control::$16 (boolean~) form_control::$17 (boolean~) form_control::$18 (boolean~) form_control::$19 (boolean~) form_control::$2 -(boolean~) form_control::$20 -(byte/signed word/word/dword/signed dword~) form_control::$21 -(signed word/signed byte/signed dword~) form_control::$22 -(byte~) form_control::$23 -(boolean~) form_control::$24 +(byte/signed word/word/dword/signed dword~) form_control::$20 +(signed word/signed byte/signed dword~) form_control::$21 +(boolean~) form_control::$22 +(boolean~) form_control::$23 +(byte~) form_control::$24 (boolean~) form_control::$25 (boolean~) form_control::$26 (boolean~) form_control::$27 -(byte~) form_control::$28 +(boolean~) form_control::$28 (boolean~) form_control::$29 (signed word/signed byte/signed dword~) form_control::$3 (boolean~) form_control::$30 -(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 (byte~) form_control::$7 -(byte~) form_control::$8 -(boolean~) form_control::$9 +(void~) form_control::$8 +(byte~) form_control::$9 (label) form_control::@1 (label) form_control::@10 (label) form_control::@11 (label) form_control::@12 (label) form_control::@13 -(label) form_control::@14 -(label) form_control::@15 (label) form_control::@2 (label) form_control::@3 (label) form_control::@4 @@ -1504,8 +1693,7 @@ SYMBOLS (label) form_control::@9 (label) form_control::@return (byte*) form_control::field -(byte) form_control::key_down -(byte) form_control::key_right +(byte) form_control::key_event (signed byte) form_cursor_count (byte) form_field_idx (byte*()) form_field_ptr((byte) form_field_ptr::field_idx) @@ -1542,9 +1730,75 @@ SYMBOLS (byte*) form_set_screen::line (byte*) form_set_screen::screen (byte) form_set_screen::y -(byte) key_down_debounce -(byte) key_right_debounce (byte[]) keyboard_char_keycodes +(byte()) keyboard_event_get() +(boolean~) keyboard_event_get::$0 +(boolean~) keyboard_event_get::$1 +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@2 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 +(byte~) keyboard_event_pressed::$1 +(byte~) keyboard_event_pressed::$2 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::row_bits +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 +(boolean~) keyboard_event_scan::$1 +(boolean~) keyboard_event_scan::$10 +(boolean~) keyboard_event_scan::$11 +(byte/word/dword~) keyboard_event_scan::$12 +(boolean~) keyboard_event_scan::$13 +(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +(boolean~) keyboard_event_scan::$15 +(byte~) keyboard_event_scan::$16 +(boolean~) keyboard_event_scan::$17 +(boolean~) keyboard_event_scan::$18 +(byte~) keyboard_event_scan::$19 +(boolean~) keyboard_event_scan::$2 +(byte~) keyboard_event_scan::$20 +(boolean~) keyboard_event_scan::$21 +(boolean~) keyboard_event_scan::$22 +(byte~) keyboard_event_scan::$23 +(byte~) keyboard_event_scan::$24 +(boolean~) keyboard_event_scan::$25 +(boolean~) keyboard_event_scan::$26 +(byte~) keyboard_event_scan::$27 +(byte~) keyboard_event_scan::$28 +(boolean~) keyboard_event_scan::$29 +(byte~) keyboard_event_scan::$3 +(boolean~) keyboard_event_scan::$30 +(byte~) keyboard_event_scan::$31 +(byte~) keyboard_event_scan::$4 +(boolean~) keyboard_event_scan::$5 +(boolean~) keyboard_event_scan::$6 +(boolean~) keyboard_event_scan::$7 +(boolean~) keyboard_event_scan::$8 +(byte~) keyboard_event_scan::$9 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row_scan +(byte[8]) keyboard_events +(byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) (label) keyboard_get_keycode::@return (byte) keyboard_get_keycode::ch @@ -1561,7 +1815,7 @@ SYMBOLS (byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::rowidx -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -1569,6 +1823,8 @@ SYMBOLS (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask +(byte) keyboard_modifiers +(byte[8]) keyboard_scan_values (void()) main() (void~) main::$0 (label) main::@1 @@ -2206,7 +2462,7 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } to:@16 keyboard_init: scope:[keyboard_init] from *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 @@ -2237,7 +2493,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1 @@ -2258,7 +2514,174 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k keyboard_get_keycode::@1: scope:[keyboard_get_keycode] from to:keyboard_get_keycode::@return @19: scope:[] from @18 + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } to:@20 +keyboard_event_scan: scope:[keyboard_event_scan] from + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + to:keyboard_event_scan::@13 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19 + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 + to:keyboard_event_scan::@8 +keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4 + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + to:keyboard_event_scan::@14 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5 + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + to:keyboard_event_scan::@18 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + to:keyboard_event_scan::@15 +keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7 + to:keyboard_event_scan::@4 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + to:keyboard_event_scan::@16 +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6 + to:keyboard_event_scan::@5 +keyboard_event_scan::@17: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@6 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + to:keyboard_event_scan::@20 +keyboard_event_scan::@19: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@2 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + to:keyboard_event_scan::@21 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21 + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + to:keyboard_event_scan::@22 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 + to:keyboard_event_scan::@9 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + to:keyboard_event_scan::@23 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 + to:keyboard_event_scan::@10 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23 + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + to:keyboard_event_scan::@24 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 + to:keyboard_event_scan::@11 +keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24 + to:keyboard_event_scan::@return +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 + to:keyboard_event_scan::@12 +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12 + return + to:@return +@20: scope:[] from @19 + to:@21 +keyboard_event_pressed: scope:[keyboard_event_pressed] from + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed keyboard_event_pressed::@1 + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return + to:@return +keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from + to:keyboard_event_pressed::@return +@21: scope:[] from @20 + to:@22 +keyboard_event_get: scope:[keyboard_event_get] from + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + to:keyboard_event_get::@3 +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5 + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + to:keyboard_event_get::@return +keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3 + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return + to:@return +keyboard_event_get::@4: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +keyboard_event_get::@2: scope:[keyboard_event_get] from keyboard_event_get::@4 keyboard_event_get::@6 + to:keyboard_event_get::@return +keyboard_event_get::@5: scope:[keyboard_event_get] from + to:keyboard_event_get::@1 +keyboard_event_get::@6: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +@22: scope:[] from @21 + to:@23 main: scope:[main] from asm { sei } *((byte*) DTV_FEATURE) ← (byte) DTV_FEATURE_ENABLE @@ -2280,28 +2703,28 @@ main::@6: scope:[main] from main::@return: scope:[main] from main::@3 return to:@return -@20: scope:[] from @19 - (string~) $0 ← (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" - (string~) $1 ← (string~) $0 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +@23: scope:[] from @22 + (string~) $1 ← (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (string~) $2 ← (string~) $1 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (string~) $3 ← (string~) $2 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (string~) $4 ← (string~) $3 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" - (string~) $5 ← (string~) $4 + (string) " nnnnnnn ooooooooo @" - (string~) $6 ← (string~) $5 + (string) " nnnnnnn nnnnnnnn ooooooooo @" + (string~) $5 ← (string~) $4 + (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" + (string~) $6 ← (string~) $5 + (string) " nnnnnnn ooooooooo @" (string~) $7 ← (string~) $6 + (string) " nnnnnnn nnnnnnnn ooooooooo @" - (string~) $8 ← (string~) $7 + (string) "@" - (byte[]) MENU_COLS ← (string~) $8 - (string~) $9 ← (string) " DTV GfxExplorer MODE 0 8bpp pixel cell @" + (string) " CONTROL PLANE A PLANE B VIC II @" - (string~) $10 ← (string~) $9 + (string) " bmm 0 patt p0 patt p0 screen s0 @" - (string~) $11 ← (string~) $10 + (string) " mcm 0 start 00 start 00 gfx g0 @" - (string~) $12 ← (string~) $11 + (string) " ecm 0 step 00 step 00 colors c0 @" - (string~) $13 ← (string~) $12 + (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" - (string~) $14 ← (string~) $13 + (string) " line 0 bgcol1 00 @" - (string~) $15 ← (string~) $14 + (string) " colof 0 borof 0 bgcol2 00 @" - (string~) $16 ← (string~) $15 + (string) " chunk 0 overs 0 bgcol3 00 @" - (string~) $17 ← (string~) $16 + (string) "@" - (byte[]) MENU_TEXT ← (string~) $17 - to:@21 + (string~) $8 ← (string~) $7 + (string) " nnnnnnn nnnnnnnn ooooooooo @" + (string~) $9 ← (string~) $8 + (string) "@" + (byte[]) MENU_COLS ← (string~) $9 + (string~) $10 ← (string) " DTV GfxExplorer MODE 0 8bpp pixel cell @" + (string) " CONTROL PLANE A PLANE B VIC II @" + (string~) $11 ← (string~) $10 + (string) " bmm 0 patt p0 patt p0 screen s0 @" + (string~) $12 ← (string~) $11 + (string) " mcm 0 start 00 start 00 gfx g0 @" + (string~) $13 ← (string~) $12 + (string) " ecm 0 step 00 step 00 colors c0 @" + (string~) $14 ← (string~) $13 + (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" + (string~) $15 ← (string~) $14 + (string) " line 0 bgcol1 00 @" + (string~) $16 ← (string~) $15 + (string) " colof 0 borof 0 bgcol2 00 @" + (string~) $17 ← (string~) $16 + (string) " chunk 0 overs 0 bgcol3 00 @" + (string~) $18 ← (string~) $17 + (string) "@" + (byte[]) MENU_TEXT ← (string~) $18 + to:@24 menu: scope:[menu] from (byte*) menu::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) menu::CHARSET ← ((byte*)) (word/dword/signed dword) 38912 @@ -2388,7 +2811,7 @@ menu::@14: scope:[menu] from menu::@return: scope:[menu] from menu::@4 return to:@return -@21: scope:[] from @20 +@24: scope:[] from @23 (byte[25]) form_line_lo ← { fill( 25, 0) } (byte[25]) form_line_hi ← { fill( 25, 0) } (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2397,12 +2820,10 @@ menu::@return: scope:[menu] from menu::@4 (byte[]) form_fields_y ← { (byte/signed byte/word/signed word/dword/signed dword) 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/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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (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) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8 } (byte[]) form_fields_max ← { (byte/signed byte/word/signed word/dword/signed dword) 13, (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/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15 } (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/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 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 (signed byte) FORM_CURSOR_BLINK ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (signed word/signed byte/signed dword~) $18 ← (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~) $18 - to:@22 + (signed word/signed byte/signed dword~) $19 ← (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~) $19 + to:@25 form_set_screen: scope:[form_set_screen] from (byte*) form_set_screen::line ← (byte*) form_set_screen::screen (byte) form_set_screen::y ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2423,8 +2844,8 @@ form_set_screen::@2: scope:[form_set_screen] from form_set_screen::@1 form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@2 return to:@return -@22: scope:[] from @21 - to:@23 +@25: scope:[] from @24 + to:@26 form_field_ptr: scope:[form_field_ptr] from (byte) form_field_ptr::y ← *((byte[]) form_fields_y + (byte) form_field_ptr::field_idx) (byte*~) form_field_ptr::$0 ← ((byte*)) { *((byte[25]) form_line_hi + (byte) form_field_ptr::y), *((byte[25]) form_line_lo + (byte) form_field_ptr::y) } @@ -2440,8 +2861,8 @@ form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr form_field_ to:@return form_field_ptr::@1: scope:[form_field_ptr] from to:form_field_ptr::@return -@23: scope:[] from @22 - to:@24 +@26: scope:[] from @25 + to:@27 form_render_values: scope:[form_render_values] from (byte) form_render_values::idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:form_render_values::@1 @@ -2458,8 +2879,8 @@ form_render_values::@2: scope:[form_render_values] from form_render_values::@1 form_render_values::@return: scope:[form_render_values] from form_render_values::@2 return to:@return -@24: scope:[] from @23 - to:@25 +@27: scope:[] from @26 + to:@28 form_control: scope:[form_control] from (byte*~) form_control::$0 ← call form_field_ptr (byte) form_field_idx (byte*) form_control::field ← (byte*~) form_control::$0 @@ -2467,137 +2888,120 @@ 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::@16 -form_control::@1: scope:[form_control] from form_control form_control::@16 + to:form_control::@14 +form_control::@1: scope:[form_control] from form_control form_control::@14 (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::@17 -form_control::@16: scope:[form_control] from form_control + to:form_control::@15 +form_control::@14: 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::@18 +form_control::@2: scope:[form_control] from form_control::@1 form_control::@16 (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::@17: scope:[form_control] from form_control::@1 +form_control::@15: 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::@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::@19 -form_control::@18: scope:[form_control] from +form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 + (void~) form_control::$8 ← call keyboard_event_scan + (byte~) form_control::$9 ← call keyboard_event_get + (byte) form_control::key_event ← (byte~) form_control::$9 + (boolean~) form_control::$10 ← (byte) form_control::key_event == (byte) KEY_CRSR_DOWN + (boolean~) form_control::$11 ← ! (boolean~) form_control::$10 + if((boolean~) form_control::$11) goto form_control::@4 + to:form_control::@17 +form_control::@16: 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 - (byte) form_control::key_right ← (byte~) form_control::$23 - (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::@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::@20 -form_control::@5: scope:[form_control] from form_control::@19 form_control::@25 - to:form_control::@4 -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::@21 -form_control::@6: scope:[form_control] from form_control::@20 form_control::@23 +form_control::@4: scope:[form_control] from form_control::@22 form_control::@3 + (boolean~) form_control::$22 ← (byte) form_control::key_event == (byte) KEY_CRSR_RIGHT + (boolean~) form_control::$23 ← ! (boolean~) form_control::$22 + if((boolean~) form_control::$23) goto form_control::@9 + to:form_control::@23 +form_control::@17: scope:[form_control] from form_control::@3 + (byte~) form_control::$12 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field) ← (byte~) form_control::$12 + (byte~) form_control::$13 ← (byte) keyboard_modifiers & (byte) KEY_MODIFIER_SHIFT + (boolean~) form_control::$14 ← (byte~) form_control::$13 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$15 ← ! (boolean~) form_control::$14 + if((boolean~) form_control::$15) goto form_control::@5 + to:form_control::@18 +form_control::@5: scope:[form_control] from form_control::@17 form_control::@20 (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::@24 -form_control::@21: scope:[form_control] from form_control::@20 + (boolean~) form_control::$18 ← (byte) form_field_idx == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$19 ← ! (boolean~) form_control::$18 + if((boolean~) form_control::$19) goto form_control::@8 + to:form_control::@21 +form_control::@18: scope:[form_control] from form_control::@17 (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::@22 -form_control::@7: scope:[form_control] from form_control::@21 form_control::@22 - to:form_control::@8 -form_control::@22: scope:[form_control] from form_control::@21 - (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$16 ← (byte) form_field_idx == (byte) form_fields_cnt + (boolean~) form_control::$17 ← ! (boolean~) form_control::$16 + if((boolean~) form_control::$17) goto form_control::@6 + to:form_control::@19 +form_control::@6: scope:[form_control] from form_control::@18 form_control::@19 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::@23: scope:[form_control] from +form_control::@19: scope:[form_control] from form_control::@18 + (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:form_control::@6 -form_control::@9: scope:[form_control] from form_control::@24 form_control::@6 +form_control::@7: scope:[form_control] from form_control::@6 form_control::@8 + (signed word/signed byte/signed dword~) form_control::$21 ← (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::$21 + to:form_control::@return +form_control::@20: scope:[form_control] from + to:form_control::@5 +form_control::@8: scope:[form_control] from form_control::@21 form_control::@5 + to:form_control::@7 +form_control::@21: scope:[form_control] from form_control::@5 + (byte/signed word/word/dword/signed dword~) form_control::$20 ← (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::$20 to:form_control::@8 -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 +form_control::@return: scope:[form_control] from form_control::@7 form_control::@9 return to:@return -form_control::@25: scope:[form_control] from - to:form_control::@5 -form_control::@10: scope:[form_control] from form_control::@11 form_control::@4 +form_control::@22: scope:[form_control] from + to:form_control::@4 +form_control::@9: scope:[form_control] from form_control::@12 form_control::@4 to:form_control::@return -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::@27 -form_control::@11: scope:[form_control] from form_control::@14 form_control::@26 - to:form_control::@10 -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::@28 -form_control::@12: scope:[form_control] from form_control::@27 form_control::@30 +form_control::@23: scope:[form_control] from form_control::@4 + (byte~) form_control::$24 ← (byte) keyboard_modifiers & (byte) KEY_MODIFIER_SHIFT + (boolean~) form_control::$25 ← (byte~) form_control::$24 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$26 ← ! (boolean~) form_control::$25 + if((boolean~) form_control::$26) goto form_control::@10 + to:form_control::@24 +form_control::@10: scope:[form_control] from form_control::@23 form_control::@26 *((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 + (boolean~) form_control::$29 ← *((byte[]) form_fields_val + (byte) form_field_idx) == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 + if((boolean~) form_control::$30) goto form_control::@13 + to:form_control::@27 +form_control::@24: scope:[form_control] from form_control::@23 *((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::@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::@30: scope:[form_control] from + (boolean~) form_control::$27 ← *((byte[]) form_fields_val + (byte) form_field_idx) > *((byte[]) form_fields_max + (byte) form_field_idx) + (boolean~) form_control::$28 ← ! (boolean~) form_control::$27 + if((boolean~) form_control::$28) goto form_control::@11 + to:form_control::@25 +form_control::@11: scope:[form_control] from form_control::@24 form_control::@25 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 +form_control::@25: scope:[form_control] from form_control::@24 + *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_control::@11 +form_control::@12: scope:[form_control] from form_control::@11 form_control::@13 + *((byte*) form_control::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_field_idx)) + to:form_control::@9 +form_control::@26: scope:[form_control] from + to:form_control::@10 +form_control::@13: scope:[form_control] from form_control::@10 form_control::@27 + to:form_control::@12 +form_control::@27: scope:[form_control] from form_control::@10 *((byte[]) form_fields_val + (byte) form_field_idx) ← *((byte[]) form_fields_max + (byte) form_field_idx) - to:form_control::@15 -@25: scope:[] from @24 + to:form_control::@13 +@28: scope:[] from @27 call main to:@end -@end: scope:[] from @25 +@end: scope:[] from @28 Removing unused procedure dtvSetCpuBankSegment1 Removing unused procedure print_str_ln @@ -2606,6 +3010,7 @@ Removing unused procedure print_sword Removing unused procedure print_sbyte Removing unused procedure print_sdword Removing unused procedure keyboard_init +Removing unused procedure keyboard_key_pressed Removing unused procedure keyboard_get_keycode Removing unused procedure print_str Removing unused procedure print_dword @@ -2692,10 +3097,7 @@ Eliminating unused variable (byte) KEY_F7 and assignment [135] (byte) KEY_F7 ← Eliminating unused variable (byte) KEY_F1 and assignment [136] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4 Eliminating unused variable (byte) KEY_F3 and assignment [137] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5 Eliminating unused variable (byte) KEY_F5 and assignment [138] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6 -Eliminating unused variable (byte) KEY_LSHIFT and assignment [147] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15 Eliminating unused variable (byte) KEY_HOME and assignment [183] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51 -Eliminating unused variable (byte) KEY_CTRL and assignment [190] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58 -Eliminating unused variable (byte) KEY_COMMODORE and assignment [193] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 Eliminating unused variable (byte) KEY_RUNSTOP and assignment [195] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [196] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } Eliminating unused variable - keeping the call (void~) main::$0 @@ -2708,6 +3110,7 @@ Eliminating unused variable - keeping the call (void~) menu::$29 Eliminating unused variable - keeping the call (void~) menu::$30 Eliminating unused variable - keeping the call (void~) menu::$31 Eliminating unused variable - keeping the call (void~) menu::$33 +Eliminating unused variable - keeping the call (void~) form_control::$8 Eliminating unused variable (byte) KEY_3 and assignment [61] (byte) KEY_3 ← (byte/signed byte/word/signed word/dword/signed dword) 8 Eliminating unused variable (byte) KEY_W and assignment [62] (byte) KEY_W ← (byte/signed byte/word/signed word/dword/signed dword) 9 Eliminating unused variable (byte) KEY_A and assignment [63] (byte) KEY_A ← (byte/signed byte/word/signed word/dword/signed dword) 10 @@ -2715,70 +3118,70 @@ Eliminating unused variable (byte) KEY_4 and assignment [64] (byte) KEY_4 ← (b Eliminating unused variable (byte) KEY_Z and assignment [65] (byte) KEY_Z ← (byte/signed byte/word/signed word/dword/signed dword) 12 Eliminating unused variable (byte) KEY_S and assignment [66] (byte) KEY_S ← (byte/signed byte/word/signed word/dword/signed dword) 13 Eliminating unused variable (byte) KEY_E and assignment [67] (byte) KEY_E ← (byte/signed byte/word/signed word/dword/signed dword) 14 -Eliminating unused variable (byte) KEY_5 and assignment [68] (byte) KEY_5 ← (byte/signed byte/word/signed word/dword/signed dword) 16 -Eliminating unused variable (byte) KEY_R and assignment [69] (byte) KEY_R ← (byte/signed byte/word/signed word/dword/signed dword) 17 -Eliminating unused variable (byte) KEY_D and assignment [70] (byte) KEY_D ← (byte/signed byte/word/signed word/dword/signed dword) 18 -Eliminating unused variable (byte) KEY_6 and assignment [71] (byte) KEY_6 ← (byte/signed byte/word/signed word/dword/signed dword) 19 -Eliminating unused variable (byte) KEY_C and assignment [72] (byte) KEY_C ← (byte/signed byte/word/signed word/dword/signed dword) 20 -Eliminating unused variable (byte) KEY_F and assignment [73] (byte) KEY_F ← (byte/signed byte/word/signed word/dword/signed dword) 21 -Eliminating unused variable (byte) KEY_T and assignment [74] (byte) KEY_T ← (byte/signed byte/word/signed word/dword/signed dword) 22 -Eliminating unused variable (byte) KEY_X and assignment [75] (byte) KEY_X ← (byte/signed byte/word/signed word/dword/signed dword) 23 -Eliminating unused variable (byte) KEY_7 and assignment [76] (byte) KEY_7 ← (byte/signed byte/word/signed word/dword/signed dword) 24 -Eliminating unused variable (byte) KEY_Y and assignment [77] (byte) KEY_Y ← (byte/signed byte/word/signed word/dword/signed dword) 25 -Eliminating unused variable (byte) KEY_G and assignment [78] (byte) KEY_G ← (byte/signed byte/word/signed word/dword/signed dword) 26 -Eliminating unused variable (byte) KEY_8 and assignment [79] (byte) KEY_8 ← (byte/signed byte/word/signed word/dword/signed dword) 27 -Eliminating unused variable (byte) KEY_B and assignment [80] (byte) KEY_B ← (byte/signed byte/word/signed word/dword/signed dword) 28 -Eliminating unused variable (byte) KEY_H and assignment [81] (byte) KEY_H ← (byte/signed byte/word/signed word/dword/signed dword) 29 -Eliminating unused variable (byte) KEY_U and assignment [82] (byte) KEY_U ← (byte/signed byte/word/signed word/dword/signed dword) 30 -Eliminating unused variable (byte) KEY_V and assignment [83] (byte) KEY_V ← (byte/signed byte/word/signed word/dword/signed dword) 31 -Eliminating unused variable (byte) KEY_9 and assignment [84] (byte) KEY_9 ← (byte/signed byte/word/signed word/dword/signed dword) 32 -Eliminating unused variable (byte) KEY_I and assignment [85] (byte) KEY_I ← (byte/signed byte/word/signed word/dword/signed dword) 33 -Eliminating unused variable (byte) KEY_J and assignment [86] (byte) KEY_J ← (byte/signed byte/word/signed word/dword/signed dword) 34 -Eliminating unused variable (byte) KEY_0 and assignment [87] (byte) KEY_0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 -Eliminating unused variable (byte) KEY_M and assignment [88] (byte) KEY_M ← (byte/signed byte/word/signed word/dword/signed dword) 36 -Eliminating unused variable (byte) KEY_K and assignment [89] (byte) KEY_K ← (byte/signed byte/word/signed word/dword/signed dword) 37 -Eliminating unused variable (byte) KEY_O and assignment [90] (byte) KEY_O ← (byte/signed byte/word/signed word/dword/signed dword) 38 -Eliminating unused variable (byte) KEY_N and assignment [91] (byte) KEY_N ← (byte/signed byte/word/signed word/dword/signed dword) 39 -Eliminating unused variable (byte) KEY_PLUS and assignment [92] (byte) KEY_PLUS ← (byte/signed byte/word/signed word/dword/signed dword) 40 -Eliminating unused variable (byte) KEY_P and assignment [93] (byte) KEY_P ← (byte/signed byte/word/signed word/dword/signed dword) 41 -Eliminating unused variable (byte) KEY_L and assignment [94] (byte) KEY_L ← (byte/signed byte/word/signed word/dword/signed dword) 42 -Eliminating unused variable (byte) KEY_MINUS and assignment [95] (byte) KEY_MINUS ← (byte/signed byte/word/signed word/dword/signed dword) 43 -Eliminating unused variable (byte) KEY_DOT and assignment [96] (byte) KEY_DOT ← (byte/signed byte/word/signed word/dword/signed dword) 44 -Eliminating unused variable (byte) KEY_COLON and assignment [97] (byte) KEY_COLON ← (byte/signed byte/word/signed word/dword/signed dword) 45 -Eliminating unused variable (byte) KEY_AT and assignment [98] (byte) KEY_AT ← (byte/signed byte/word/signed word/dword/signed dword) 46 -Eliminating unused variable (byte) KEY_COMMA and assignment [99] (byte) KEY_COMMA ← (byte/signed byte/word/signed word/dword/signed dword) 47 -Eliminating unused variable (byte) KEY_POUND and assignment [100] (byte) KEY_POUND ← (byte/signed byte/word/signed word/dword/signed dword) 48 -Eliminating unused variable (byte) KEY_ASTERISK and assignment [101] (byte) KEY_ASTERISK ← (byte/signed byte/word/signed word/dword/signed dword) 49 -Eliminating unused variable (byte) KEY_SEMICOLON and assignment [102] (byte) KEY_SEMICOLON ← (byte/signed byte/word/signed word/dword/signed dword) 50 -Eliminating unused variable (byte) KEY_EQUALS and assignment [104] (byte) KEY_EQUALS ← (byte/signed byte/word/signed word/dword/signed dword) 53 -Eliminating unused variable (byte) KEY_ARROW_UP and assignment [105] (byte) KEY_ARROW_UP ← (byte/signed byte/word/signed word/dword/signed dword) 54 -Eliminating unused variable (byte) KEY_SLASH and assignment [106] (byte) KEY_SLASH ← (byte/signed byte/word/signed word/dword/signed dword) 55 -Eliminating unused variable (byte) KEY_1 and assignment [107] (byte) KEY_1 ← (byte/signed byte/word/signed word/dword/signed dword) 56 -Eliminating unused variable (byte) KEY_ARROW_LEFT and assignment [108] (byte) KEY_ARROW_LEFT ← (byte/signed byte/word/signed word/dword/signed dword) 57 -Eliminating unused variable (byte) KEY_2 and assignment [109] (byte) KEY_2 ← (byte/signed byte/word/signed word/dword/signed dword) 59 -Eliminating unused variable (byte) KEY_SPACE and assignment [110] (byte) KEY_SPACE ← (byte/signed byte/word/signed word/dword/signed dword) 60 -Eliminating unused variable (byte) KEY_Q and assignment [111] (byte) KEY_Q ← (byte/signed byte/word/signed word/dword/signed dword) 62 -Creating constant string variable for inline (const string) $19 "0123456789abcdef" -Creating constant string variable for inline (const string) $20 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" -Creating constant string variable for inline (const string) $21 " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +Eliminating unused variable (byte) KEY_5 and assignment [69] (byte) KEY_5 ← (byte/signed byte/word/signed word/dword/signed dword) 16 +Eliminating unused variable (byte) KEY_R and assignment [70] (byte) KEY_R ← (byte/signed byte/word/signed word/dword/signed dword) 17 +Eliminating unused variable (byte) KEY_D and assignment [71] (byte) KEY_D ← (byte/signed byte/word/signed word/dword/signed dword) 18 +Eliminating unused variable (byte) KEY_6 and assignment [72] (byte) KEY_6 ← (byte/signed byte/word/signed word/dword/signed dword) 19 +Eliminating unused variable (byte) KEY_C and assignment [73] (byte) KEY_C ← (byte/signed byte/word/signed word/dword/signed dword) 20 +Eliminating unused variable (byte) KEY_F and assignment [74] (byte) KEY_F ← (byte/signed byte/word/signed word/dword/signed dword) 21 +Eliminating unused variable (byte) KEY_T and assignment [75] (byte) KEY_T ← (byte/signed byte/word/signed word/dword/signed dword) 22 +Eliminating unused variable (byte) KEY_X and assignment [76] (byte) KEY_X ← (byte/signed byte/word/signed word/dword/signed dword) 23 +Eliminating unused variable (byte) KEY_7 and assignment [77] (byte) KEY_7 ← (byte/signed byte/word/signed word/dword/signed dword) 24 +Eliminating unused variable (byte) KEY_Y and assignment [78] (byte) KEY_Y ← (byte/signed byte/word/signed word/dword/signed dword) 25 +Eliminating unused variable (byte) KEY_G and assignment [79] (byte) KEY_G ← (byte/signed byte/word/signed word/dword/signed dword) 26 +Eliminating unused variable (byte) KEY_8 and assignment [80] (byte) KEY_8 ← (byte/signed byte/word/signed word/dword/signed dword) 27 +Eliminating unused variable (byte) KEY_B and assignment [81] (byte) KEY_B ← (byte/signed byte/word/signed word/dword/signed dword) 28 +Eliminating unused variable (byte) KEY_H and assignment [82] (byte) KEY_H ← (byte/signed byte/word/signed word/dword/signed dword) 29 +Eliminating unused variable (byte) KEY_U and assignment [83] (byte) KEY_U ← (byte/signed byte/word/signed word/dword/signed dword) 30 +Eliminating unused variable (byte) KEY_V and assignment [84] (byte) KEY_V ← (byte/signed byte/word/signed word/dword/signed dword) 31 +Eliminating unused variable (byte) KEY_9 and assignment [85] (byte) KEY_9 ← (byte/signed byte/word/signed word/dword/signed dword) 32 +Eliminating unused variable (byte) KEY_I and assignment [86] (byte) KEY_I ← (byte/signed byte/word/signed word/dword/signed dword) 33 +Eliminating unused variable (byte) KEY_J and assignment [87] (byte) KEY_J ← (byte/signed byte/word/signed word/dword/signed dword) 34 +Eliminating unused variable (byte) KEY_0 and assignment [88] (byte) KEY_0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 +Eliminating unused variable (byte) KEY_M and assignment [89] (byte) KEY_M ← (byte/signed byte/word/signed word/dword/signed dword) 36 +Eliminating unused variable (byte) KEY_K and assignment [90] (byte) KEY_K ← (byte/signed byte/word/signed word/dword/signed dword) 37 +Eliminating unused variable (byte) KEY_O and assignment [91] (byte) KEY_O ← (byte/signed byte/word/signed word/dword/signed dword) 38 +Eliminating unused variable (byte) KEY_N and assignment [92] (byte) KEY_N ← (byte/signed byte/word/signed word/dword/signed dword) 39 +Eliminating unused variable (byte) KEY_PLUS and assignment [93] (byte) KEY_PLUS ← (byte/signed byte/word/signed word/dword/signed dword) 40 +Eliminating unused variable (byte) KEY_P and assignment [94] (byte) KEY_P ← (byte/signed byte/word/signed word/dword/signed dword) 41 +Eliminating unused variable (byte) KEY_L and assignment [95] (byte) KEY_L ← (byte/signed byte/word/signed word/dword/signed dword) 42 +Eliminating unused variable (byte) KEY_MINUS and assignment [96] (byte) KEY_MINUS ← (byte/signed byte/word/signed word/dword/signed dword) 43 +Eliminating unused variable (byte) KEY_DOT and assignment [97] (byte) KEY_DOT ← (byte/signed byte/word/signed word/dword/signed dword) 44 +Eliminating unused variable (byte) KEY_COLON and assignment [98] (byte) KEY_COLON ← (byte/signed byte/word/signed word/dword/signed dword) 45 +Eliminating unused variable (byte) KEY_AT and assignment [99] (byte) KEY_AT ← (byte/signed byte/word/signed word/dword/signed dword) 46 +Eliminating unused variable (byte) KEY_COMMA and assignment [100] (byte) KEY_COMMA ← (byte/signed byte/word/signed word/dword/signed dword) 47 +Eliminating unused variable (byte) KEY_POUND and assignment [101] (byte) KEY_POUND ← (byte/signed byte/word/signed word/dword/signed dword) 48 +Eliminating unused variable (byte) KEY_ASTERISK and assignment [102] (byte) KEY_ASTERISK ← (byte/signed byte/word/signed word/dword/signed dword) 49 +Eliminating unused variable (byte) KEY_SEMICOLON and assignment [103] (byte) KEY_SEMICOLON ← (byte/signed byte/word/signed word/dword/signed dword) 50 +Eliminating unused variable (byte) KEY_EQUALS and assignment [105] (byte) KEY_EQUALS ← (byte/signed byte/word/signed word/dword/signed dword) 53 +Eliminating unused variable (byte) KEY_ARROW_UP and assignment [106] (byte) KEY_ARROW_UP ← (byte/signed byte/word/signed word/dword/signed dword) 54 +Eliminating unused variable (byte) KEY_SLASH and assignment [107] (byte) KEY_SLASH ← (byte/signed byte/word/signed word/dword/signed dword) 55 +Eliminating unused variable (byte) KEY_1 and assignment [108] (byte) KEY_1 ← (byte/signed byte/word/signed word/dword/signed dword) 56 +Eliminating unused variable (byte) KEY_ARROW_LEFT and assignment [109] (byte) KEY_ARROW_LEFT ← (byte/signed byte/word/signed word/dword/signed dword) 57 +Eliminating unused variable (byte) KEY_2 and assignment [111] (byte) KEY_2 ← (byte/signed byte/word/signed word/dword/signed dword) 59 +Eliminating unused variable (byte) KEY_SPACE and assignment [112] (byte) KEY_SPACE ← (byte/signed byte/word/signed word/dword/signed dword) 60 +Eliminating unused variable (byte) KEY_Q and assignment [114] (byte) KEY_Q ← (byte/signed byte/word/signed word/dword/signed dword) 62 +Creating constant string variable for inline (const string) $20 "0123456789abcdef" +Creating constant string variable for inline (const string) $21 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" Creating constant string variable for inline (const string) $22 " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" Creating constant string variable for inline (const string) $23 " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" Creating constant string variable for inline (const string) $24 " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" Creating constant string variable for inline (const string) $25 " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" -Creating constant string variable for inline (const string) $26 " nnnnnnn ooooooooo @" -Creating constant string variable for inline (const string) $27 " nnnnnnn nnnnnnnn ooooooooo @" +Creating constant string variable for inline (const string) $26 " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +Creating constant string variable for inline (const string) $27 " nnnnnnn ooooooooo @" Creating constant string variable for inline (const string) $28 " nnnnnnn nnnnnnnn ooooooooo @" -Creating constant string variable for inline (const string) $29 "@" -Creating constant string variable for inline (const string) $30 " DTV GfxExplorer MODE 0 8bpp pixel cell @" -Creating constant string variable for inline (const string) $31 " CONTROL PLANE A PLANE B VIC II @" -Creating constant string variable for inline (const string) $32 " bmm 0 patt p0 patt p0 screen s0 @" -Creating constant string variable for inline (const string) $33 " mcm 0 start 00 start 00 gfx g0 @" -Creating constant string variable for inline (const string) $34 " ecm 0 step 00 step 00 colors c0 @" -Creating constant string variable for inline (const string) $35 " hicol 0 mod 00 mod 00 bgcol0 00 @" -Creating constant string variable for inline (const string) $36 " line 0 bgcol1 00 @" -Creating constant string variable for inline (const string) $37 " colof 0 borof 0 bgcol2 00 @" -Creating constant string variable for inline (const string) $38 " chunk 0 overs 0 bgcol3 00 @" -Creating constant string variable for inline (const string) $39 "@" +Creating constant string variable for inline (const string) $29 " nnnnnnn nnnnnnnn ooooooooo @" +Creating constant string variable for inline (const string) $30 "@" +Creating constant string variable for inline (const string) $31 " DTV GfxExplorer MODE 0 8bpp pixel cell @" +Creating constant string variable for inline (const string) $32 " CONTROL PLANE A PLANE B VIC II @" +Creating constant string variable for inline (const string) $33 " bmm 0 patt p0 patt p0 screen s0 @" +Creating constant string variable for inline (const string) $34 " mcm 0 start 00 start 00 gfx g0 @" +Creating constant string variable for inline (const string) $35 " ecm 0 step 00 step 00 colors c0 @" +Creating constant string variable for inline (const string) $36 " hicol 0 mod 00 mod 00 bgcol0 00 @" +Creating constant string variable for inline (const string) $37 " line 0 bgcol1 00 @" +Creating constant string variable for inline (const string) $38 " colof 0 borof 0 bgcol2 00 @" +Creating constant string variable for inline (const string) $39 " chunk 0 overs 0 bgcol3 00 @" +Creating constant string variable for inline (const string) $40 "@" Removing empty block print_str_lines::@6 Removing empty block print_str_lines::@3 Removing empty block print_str_lines::@7 @@ -2798,9 +3201,18 @@ Removing empty block @14 Removing empty block @16 Removing empty block keyboard_matrix_read::@1 Removing empty block @17 -Removing empty block keyboard_key_pressed::@1 Removing empty block @18 -Removing empty block @19 +Removing empty block keyboard_event_scan::@7 +Removing empty block keyboard_event_scan::@17 +Removing empty block keyboard_event_scan::@19 +Removing empty block @20 +Removing empty block keyboard_event_pressed::@1 +Removing empty block @21 +Removing empty block keyboard_event_get::@4 +Removing empty block keyboard_event_get::@2 +Removing empty block keyboard_event_get::@5 +Removing empty block keyboard_event_get::@6 +Removing empty block @22 Removing empty block main::@4 Removing empty block main::@3 Removing empty block main::@5 @@ -2813,15 +3225,15 @@ Removing empty block menu::@12 Removing empty block menu::@13 Removing empty block menu::@14 Removing empty block form_set_screen::@2 -Removing empty block @22 +Removing empty block @25 Removing empty block form_field_ptr::@1 -Removing empty block @23 +Removing empty block @26 Removing empty block form_render_values::@2 -Removing empty block @24 -Removing empty block form_control::@18 -Removing empty block form_control::@23 -Removing empty block form_control::@25 -Removing empty block form_control::@30 +Removing empty block @27 +Removing empty block form_control::@16 +Removing empty block form_control::@20 +Removing empty block form_control::@22 +Removing empty block form_control::@26 PROCEDURE MODIFY VARIABLE ANALYSIS print_str_lines modifies print_char_cursor print_str_lines modifies print_line_cursor @@ -2832,24 +3244,27 @@ print_cls modifies print_char_cursor print_set_screen modifies print_screen print_set_screen modifies print_line_cursor print_set_screen modifies print_char_cursor +keyboard_event_scan modifies keyboard_events_size +keyboard_event_scan modifies keyboard_modifiers +keyboard_event_get modifies keyboard_events_size main modifies print_screen main modifies print_line_cursor main modifies print_char_cursor main modifies form_cursor_count -main modifies key_down_debounce +main modifies keyboard_events_size +main modifies keyboard_modifiers main modifies form_field_idx -main modifies key_right_debounce menu modifies print_screen menu modifies print_line_cursor menu modifies print_char_cursor menu modifies form_cursor_count -menu modifies key_down_debounce +menu modifies keyboard_events_size +menu modifies keyboard_modifiers menu modifies form_field_idx -menu modifies key_right_debounce form_control modifies form_cursor_count -form_control modifies key_down_debounce +form_control modifies keyboard_events_size +form_control modifies keyboard_modifiers form_control modifies form_field_idx -form_control modifies key_right_debounce Completing Phi functions... Completing Phi functions... @@ -2987,10 +3402,10 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return @11: scope:[] from @1 - (byte*) print_char_cursor#60 ← phi( @1/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#60 ← phi( @1/(byte*) print_line_cursor#0 ) - (byte*) print_screen#38 ← phi( @1/(byte*) print_screen#0 ) - (byte[]) print_hextab#0 ← (const string) $19 + (byte*) print_char_cursor#63 ← phi( @1/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#63 ← phi( @1/(byte*) print_line_cursor#0 ) + (byte*) print_screen#42 ← phi( @1/(byte*) print_screen#0 ) + (byte[]) print_hextab#0 ← (const string) $20 to:@15 print_cls: scope:[print_cls] from menu::@15 menu::@18 (byte*) print_screen#9 ← phi( menu::@15/(byte*) print_screen#5 menu::@18/(byte*) print_screen#6 ) @@ -3033,17 +3448,20 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen return to:@return @15: scope:[] from @11 - (byte*) print_char_cursor#58 ← phi( @11/(byte*) print_char_cursor#60 ) - (byte*) print_line_cursor#58 ← phi( @11/(byte*) print_line_cursor#60 ) - (byte*) print_screen#35 ← phi( @11/(byte*) print_screen#38 ) + (byte*) print_char_cursor#60 ← phi( @11/(byte*) print_char_cursor#63 ) + (byte*) print_line_cursor#60 ← phi( @11/(byte*) print_line_cursor#63 ) + (byte*) print_screen#38 ← phi( @11/(byte*) print_screen#42 ) (byte) KEY_CRSR_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } - to:@20 -keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 ) + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + to:@19 +keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 + (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_event_scan::@1/(byte) keyboard_matrix_read::rowid#0 ) *((byte*) CIA1_PORT_A#0) ← *((byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#1) (byte~) keyboard_matrix_read::$0 ← ~ *((byte*) CIA1_PORT_B#0) (byte) keyboard_matrix_read::row_pressed_bits#0 ← (byte~) keyboard_matrix_read::$0 @@ -3054,56 +3472,307 @@ 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::@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 - (byte) keyboard_key_pressed::rowidx#0 ← (byte~) keyboard_key_pressed::$1 - (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 +@19: scope:[] from @15 + (byte*) print_char_cursor#58 ← phi( @15/(byte*) print_char_cursor#60 ) + (byte*) print_line_cursor#58 ← phi( @15/(byte*) print_line_cursor#60 ) + (byte*) print_screen#35 ← phi( @15/(byte*) print_screen#38 ) + (byte[8]) keyboard_events#0 ← { fill( 8, 0) } + (byte) keyboard_events_size#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT#0 | (byte) KEY_MODIFIER_RSHIFT#0 + (byte) KEY_MODIFIER_SHIFT#0 ← (byte~) $0 + (byte[8]) keyboard_scan_values#0 ← { fill( 8, 0) } + to:@23 +keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 + (byte) keyboard_events_size#81 ← phi( form_control::@3/(byte) keyboard_events_size#38 ) + (byte) keyboard_event_scan::keycode#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + (byte) keyboard_events_size#73 ← phi( keyboard_event_scan/(byte) keyboard_events_size#81 keyboard_event_scan::@8/(byte) keyboard_events_size#82 ) + (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte) keyboard_event_scan::keycode#0 keyboard_event_scan::@8/(byte) keyboard_event_scan::keycode#14 ) + (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte) keyboard_event_scan::row#0 keyboard_event_scan::@8/(byte) keyboard_event_scan::row#1 ) + (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 call keyboard_matrix_read param-assignment (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#1 - to:keyboard_key_pressed::@2 -keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed - (byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 ) - (byte) keyboard_matrix_read::return#4 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 ) - (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#4 - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) - (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3 - to:keyboard_key_pressed::@return -keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 - (byte) keyboard_key_pressed::return#6 ← phi( keyboard_key_pressed::@2/(byte) keyboard_key_pressed::return#0 ) - (byte) keyboard_key_pressed::return#1 ← (byte) keyboard_key_pressed::return#6 + to:keyboard_event_scan::@25 +keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + (byte) keyboard_events_size#61 ← phi( keyboard_event_scan::@1/(byte) keyboard_events_size#73 ) + (byte) keyboard_event_scan::keycode#7 ← phi( keyboard_event_scan::@1/(byte) keyboard_event_scan::keycode#11 ) + (byte) keyboard_event_scan::row#3 ← phi( keyboard_event_scan::@1/(byte) keyboard_event_scan::row#2 ) + (byte) keyboard_matrix_read::return#4 ← phi( keyboard_event_scan::@1/(byte) keyboard_matrix_read::return#2 ) + (byte~) keyboard_event_scan::$0 ← (byte) keyboard_matrix_read::return#4 + (byte) keyboard_event_scan::row_scan#0 ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan#0 != *((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#3) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + to:keyboard_event_scan::@13 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@25 + (byte) keyboard_events_size#87 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#61 ) + (byte) keyboard_event_scan::row#9 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::row#3 ) + (byte) keyboard_event_scan::keycode#3 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#7 ) + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode#3 + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode#1 ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 + to:keyboard_event_scan::@8 +keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25 + (byte) keyboard_events_size#43 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#61 ) + (byte) keyboard_event_scan::keycode#12 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#7 ) + (byte) keyboard_event_scan::row#7 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::row#3 ) + (byte) keyboard_event_scan::row_scan#4 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::row_scan#0 ) + (byte) keyboard_event_scan::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4 + (byte) keyboard_events_size#29 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#43 keyboard_event_scan::@4/(byte) keyboard_events_size#44 ) + (byte) keyboard_event_scan::keycode#8 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#12 keyboard_event_scan::@4/(byte) keyboard_event_scan::keycode#2 ) + (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::col#0 keyboard_event_scan::@4/(byte) keyboard_event_scan::col#1 ) + (byte) keyboard_event_scan::row#4 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::row#7 keyboard_event_scan::@4/(byte) keyboard_event_scan::row#8 ) + (byte) keyboard_event_scan::row_scan#1 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::row_scan#4 keyboard_event_scan::@4/(byte) keyboard_event_scan::row_scan#5 ) + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#1 ^ *((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#4) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + to:keyboard_event_scan::@14 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@5 keyboard_event_scan::@6 + (byte) keyboard_events_size#44 ← phi( keyboard_event_scan::@16/(byte) keyboard_events_size#2 keyboard_event_scan::@3/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#62 keyboard_event_scan::@6/(byte) keyboard_events_size#1 ) + (byte) keyboard_event_scan::row#8 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::row#10 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#4 keyboard_event_scan::@5/(byte) keyboard_event_scan::row#11 keyboard_event_scan::@6/(byte) keyboard_event_scan::row#12 ) + (byte) keyboard_event_scan::row_scan#5 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::row_scan#7 keyboard_event_scan::@3/(byte) keyboard_event_scan::row_scan#1 keyboard_event_scan::@5/(byte) keyboard_event_scan::row_scan#8 keyboard_event_scan::@6/(byte) keyboard_event_scan::row_scan#9 ) + (byte) keyboard_event_scan::col#3 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::col#5 keyboard_event_scan::@3/(byte) keyboard_event_scan::col#2 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#6 keyboard_event_scan::@6/(byte) keyboard_event_scan::col#7 ) + (byte) keyboard_event_scan::keycode#4 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::keycode#6 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#8 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#9 keyboard_event_scan::@6/(byte) keyboard_event_scan::keycode#5 ) + (byte) keyboard_event_scan::keycode#2 ← ++ (byte) keyboard_event_scan::keycode#4 + (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#3 + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col#1 != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + to:keyboard_event_scan::@18 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + (byte) keyboard_event_scan::row#13 ← phi( keyboard_event_scan::@3/(byte) keyboard_event_scan::row#4 ) + (byte) keyboard_event_scan::keycode#13 ← phi( keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#8 ) + (byte) keyboard_event_scan::col#8 ← phi( keyboard_event_scan::@3/(byte) keyboard_event_scan::col#2 ) + (byte) keyboard_event_scan::row_scan#6 ← phi( keyboard_event_scan::@3/(byte) keyboard_event_scan::row_scan#1 ) + (byte) keyboard_events_size#14 ← phi( keyboard_event_scan::@3/(byte) keyboard_events_size#29 ) + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size#14 != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + to:keyboard_event_scan::@15 +keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte) keyboard_events_size#62 ← phi( keyboard_event_scan::@14/(byte) keyboard_events_size#14 ) + (byte) keyboard_event_scan::row#11 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::row#13 ) + (byte) keyboard_event_scan::row_scan#8 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::row_scan#6 ) + (byte) keyboard_event_scan::col#6 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::col#8 ) + (byte) keyboard_event_scan::keycode#9 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::keycode#13 ) + to:keyboard_event_scan::@4 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte) keyboard_event_scan::row#14 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::row#13 ) + (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@14/(byte) keyboard_events_size#14 ) + (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::keycode#13 ) + (byte) keyboard_event_scan::col#4 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::col#8 ) + (byte) keyboard_event_scan::row_scan#2 ← phi( keyboard_event_scan::@14/(byte) keyboard_event_scan::row_scan#6 ) + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan#2 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#4) + (byte) keyboard_event_scan::event_type#0 ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + to:keyboard_event_scan::@16 +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte) keyboard_event_scan::row#12 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::row#14 ) + (byte) keyboard_event_scan::row_scan#9 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::row_scan#2 ) + (byte) keyboard_event_scan::col#7 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::col#4 ) + (byte) keyboard_events_size#15 ← phi( keyboard_event_scan::@15/(byte) keyboard_events_size#30 ) + (byte) keyboard_event_scan::keycode#5 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::keycode#10 ) + *((byte[8]) keyboard_events#0 + (byte) keyboard_events_size#15) ← (byte) keyboard_event_scan::keycode#5 + (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#15 + to:keyboard_event_scan::@4 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte) keyboard_event_scan::row#10 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::row#14 ) + (byte) keyboard_event_scan::row_scan#7 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::row_scan#2 ) + (byte) keyboard_event_scan::col#5 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::col#4 ) + (byte) keyboard_events_size#16 ← phi( keyboard_event_scan::@15/(byte) keyboard_events_size#30 ) + (byte) keyboard_event_scan::keycode#6 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::keycode#10 ) + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#6 | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events#0 + (byte) keyboard_events_size#16) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#16 + to:keyboard_event_scan::@4 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + (byte) keyboard_events_size#86 ← phi( keyboard_event_scan::@4/(byte) keyboard_events_size#44 ) + (byte) keyboard_event_scan::keycode#15 ← phi( keyboard_event_scan::@4/(byte) keyboard_event_scan::keycode#2 ) + (byte) keyboard_event_scan::row#5 ← phi( keyboard_event_scan::@4/(byte) keyboard_event_scan::row#8 ) + (byte) keyboard_event_scan::row_scan#3 ← phi( keyboard_event_scan::@4/(byte) keyboard_event_scan::row_scan#5 ) + *((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#5) ← (byte) keyboard_event_scan::row_scan#3 + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + (byte) keyboard_events_size#82 ← phi( keyboard_event_scan::@18/(byte) keyboard_events_size#86 keyboard_event_scan::@2/(byte) keyboard_events_size#87 ) + (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@18/(byte) keyboard_event_scan::keycode#15 keyboard_event_scan::@2/(byte) keyboard_event_scan::keycode#1 ) + (byte) keyboard_event_scan::row#6 ← phi( keyboard_event_scan::@18/(byte) keyboard_event_scan::row#5 keyboard_event_scan::@2/(byte) keyboard_event_scan::row#9 ) + (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#6 + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row#1 != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + to:keyboard_event_scan::@20 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + (byte) keyboard_events_size#96 ← phi( keyboard_event_scan::@8/(byte) keyboard_events_size#82 ) + (byte) keyboard_modifiers#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_pressed::keycode#0 ← (byte) KEY_LSHIFT#0 + call keyboard_event_pressed param-assignment + (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#5 + to:keyboard_event_scan::@26 +keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + (byte) keyboard_events_size#94 ← phi( keyboard_event_scan::@20/(byte) keyboard_events_size#96 ) + (byte) keyboard_modifiers#28 ← phi( keyboard_event_scan::@20/(byte) keyboard_modifiers#1 ) + (byte) keyboard_event_pressed::return#6 ← phi( keyboard_event_scan::@20/(byte) keyboard_event_pressed::return#0 ) + (byte~) keyboard_event_scan::$16 ← (byte) keyboard_event_pressed::return#6 + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + to:keyboard_event_scan::@21 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 + (byte) keyboard_events_size#91 ← phi( keyboard_event_scan::@21/(byte) keyboard_events_size#93 keyboard_event_scan::@26/(byte) keyboard_events_size#94 ) + (byte) keyboard_modifiers#44 ← phi( keyboard_event_scan::@21/(byte) keyboard_modifiers#2 keyboard_event_scan::@26/(byte) keyboard_modifiers#28 ) + (byte) keyboard_event_pressed::keycode#1 ← (byte) KEY_RSHIFT#0 + call keyboard_event_pressed param-assignment + (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#5 + to:keyboard_event_scan::@27 +keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + (byte) keyboard_events_size#89 ← phi( keyboard_event_scan::@9/(byte) keyboard_events_size#91 ) + (byte) keyboard_modifiers#29 ← phi( keyboard_event_scan::@9/(byte) keyboard_modifiers#44 ) + (byte) keyboard_event_pressed::return#7 ← phi( keyboard_event_scan::@9/(byte) keyboard_event_pressed::return#1 ) + (byte~) keyboard_event_scan::$20 ← (byte) keyboard_event_pressed::return#7 + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + to:keyboard_event_scan::@22 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 + (byte) keyboard_events_size#93 ← phi( keyboard_event_scan::@26/(byte) keyboard_events_size#94 ) + (byte) keyboard_modifiers#14 ← phi( keyboard_event_scan::@26/(byte) keyboard_modifiers#28 ) + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers#14 | (byte) KEY_MODIFIER_LSHIFT#0 + (byte) keyboard_modifiers#2 ← (byte~) keyboard_event_scan::$19 + to:keyboard_event_scan::@9 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27 + (byte) keyboard_events_size#83 ← phi( keyboard_event_scan::@22/(byte) keyboard_events_size#88 keyboard_event_scan::@27/(byte) keyboard_events_size#89 ) + (byte) keyboard_modifiers#45 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#29 ) + (byte) keyboard_event_pressed::keycode#2 ← (byte) KEY_CTRL#0 + call keyboard_event_pressed param-assignment + (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#5 + to:keyboard_event_scan::@28 +keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + (byte) keyboard_events_size#75 ← phi( keyboard_event_scan::@10/(byte) keyboard_events_size#83 ) + (byte) keyboard_modifiers#30 ← phi( keyboard_event_scan::@10/(byte) keyboard_modifiers#45 ) + (byte) keyboard_event_pressed::return#8 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_pressed::return#2 ) + (byte~) keyboard_event_scan::$24 ← (byte) keyboard_event_pressed::return#8 + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + to:keyboard_event_scan::@23 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27 + (byte) keyboard_events_size#88 ← phi( keyboard_event_scan::@27/(byte) keyboard_events_size#89 ) + (byte) keyboard_modifiers#15 ← phi( keyboard_event_scan::@27/(byte) keyboard_modifiers#29 ) + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers#15 | (byte) KEY_MODIFIER_RSHIFT#0 + (byte) keyboard_modifiers#3 ← (byte~) keyboard_event_scan::$23 + to:keyboard_event_scan::@10 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28 + (byte) keyboard_events_size#63 ← phi( keyboard_event_scan::@23/(byte) keyboard_events_size#74 keyboard_event_scan::@28/(byte) keyboard_events_size#75 ) + (byte) keyboard_modifiers#46 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#30 ) + (byte) keyboard_event_pressed::keycode#3 ← (byte) KEY_COMMODORE#0 + call keyboard_event_pressed param-assignment + (byte) keyboard_event_pressed::return#3 ← (byte) keyboard_event_pressed::return#5 + to:keyboard_event_scan::@29 +keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + (byte) keyboard_events_size#45 ← phi( keyboard_event_scan::@11/(byte) keyboard_events_size#63 ) + (byte) keyboard_modifiers#31 ← phi( keyboard_event_scan::@11/(byte) keyboard_modifiers#46 ) + (byte) keyboard_event_pressed::return#9 ← phi( keyboard_event_scan::@11/(byte) keyboard_event_pressed::return#3 ) + (byte~) keyboard_event_scan::$28 ← (byte) keyboard_event_pressed::return#9 + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + to:keyboard_event_scan::@24 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28 + (byte) keyboard_events_size#74 ← phi( keyboard_event_scan::@28/(byte) keyboard_events_size#75 ) + (byte) keyboard_modifiers#16 ← phi( keyboard_event_scan::@28/(byte) keyboard_modifiers#30 ) + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers#16 | (byte) KEY_MODIFIER_CTRL#0 + (byte) keyboard_modifiers#4 ← (byte~) keyboard_event_scan::$27 + to:keyboard_event_scan::@11 +keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@29 + (byte) keyboard_modifiers#32 ← phi( keyboard_event_scan::@29/(byte) keyboard_modifiers#31 ) + (byte) keyboard_events_size#31 ← phi( keyboard_event_scan::@29/(byte) keyboard_events_size#45 ) + to:keyboard_event_scan::@return +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29 + (byte) keyboard_events_size#32 ← phi( keyboard_event_scan::@29/(byte) keyboard_events_size#45 ) + (byte) keyboard_modifiers#17 ← phi( keyboard_event_scan::@29/(byte) keyboard_modifiers#31 ) + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers#17 | (byte) KEY_MODIFIER_COMMODORE#0 + (byte) keyboard_modifiers#5 ← (byte~) keyboard_event_scan::$31 + to:keyboard_event_scan::@return +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12 keyboard_event_scan::@24 + (byte) keyboard_modifiers#18 ← phi( keyboard_event_scan::@12/(byte) keyboard_modifiers#32 keyboard_event_scan::@24/(byte) keyboard_modifiers#5 ) + (byte) keyboard_events_size#17 ← phi( keyboard_event_scan::@12/(byte) keyboard_events_size#31 keyboard_event_scan::@24/(byte) keyboard_events_size#32 ) + (byte) keyboard_events_size#3 ← (byte) keyboard_events_size#17 + (byte) keyboard_modifiers#6 ← (byte) keyboard_modifiers#18 return to:@return -main: scope:[main] from @25 - (byte) form_fields_cnt#37 ← phi( @25/(byte) form_fields_cnt#39 ) - (byte) key_right_debounce#25 ← phi( @25/(byte) key_right_debounce#24 ) - (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#49 ← phi( @25/(byte*) print_char_cursor#45 ) - (byte*) print_line_cursor#46 ← phi( @25/(byte*) print_line_cursor#43 ) - (byte*) print_screen#25 ← phi( @25/(byte*) print_screen#24 ) +keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 + (byte) keyboard_event_pressed::keycode#4 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_pressed::keycode#2 keyboard_event_scan::@11/(byte) keyboard_event_pressed::keycode#3 keyboard_event_scan::@20/(byte) keyboard_event_pressed::keycode#0 keyboard_event_scan::@9/(byte) keyboard_event_pressed::keycode#1 ) + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits#0 ← *((byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits#0 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return#4 ← (byte~) keyboard_event_pressed::$2 + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed + (byte) keyboard_event_pressed::return#10 ← phi( keyboard_event_pressed/(byte) keyboard_event_pressed::return#4 ) + (byte) keyboard_event_pressed::return#5 ← (byte) keyboard_event_pressed::return#10 + return + to:@return +keyboard_event_get: scope:[keyboard_event_get] from form_control::@29 + (byte) keyboard_events_size#18 ← phi( form_control::@29/(byte) keyboard_events_size#10 ) + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size#18 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + to:keyboard_event_get::@3 +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_events_size#19 ← phi( keyboard_event_get/(byte) keyboard_events_size#18 ) + (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#19 + (byte) keyboard_event_get::return#0 ← *((byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + to:keyboard_event_get::@return +keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_events_size#33 ← phi( keyboard_event_get/(byte) keyboard_events_size#18 ) + (byte) keyboard_event_get::return#1 ← (byte/word/signed word/dword/signed dword) 255 + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@3 + (byte) keyboard_events_size#20 ← phi( keyboard_event_get::@1/(byte) keyboard_events_size#4 keyboard_event_get::@3/(byte) keyboard_events_size#33 ) + (byte) keyboard_event_get::return#4 ← phi( keyboard_event_get::@1/(byte) keyboard_event_get::return#0 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + (byte) keyboard_event_get::return#2 ← (byte) keyboard_event_get::return#4 + (byte) keyboard_events_size#5 ← (byte) keyboard_events_size#20 + return + to:@return +main: scope:[main] from @28 + (byte) form_fields_cnt#36 ← phi( @28/(byte) form_fields_cnt#38 ) + (byte) form_field_idx#36 ← phi( @28/(byte) form_field_idx#35 ) + (byte) keyboard_modifiers#47 ← phi( @28/(byte) keyboard_modifiers#43 ) + (byte) keyboard_events_size#46 ← phi( @28/(byte) keyboard_events_size#42 ) + (signed byte) form_cursor_count#26 ← phi( @28/(signed byte) form_cursor_count#25 ) + (byte*) print_char_cursor#49 ← phi( @28/(byte*) print_char_cursor#45 ) + (byte*) print_line_cursor#46 ← phi( @28/(byte*) print_line_cursor#43 ) + (byte*) print_screen#25 ← phi( @28/(byte*) print_screen#24 ) asm { sei } *((byte*) DTV_FEATURE#0) ← (byte) DTV_FEATURE_ENABLE#0 to:main::@1 main::@1: scope:[main] from main main::@7 - (byte) form_fields_cnt#34 ← phi( main/(byte) form_fields_cnt#37 main::@7/(byte) form_fields_cnt#38 ) - (byte) key_right_debounce#16 ← phi( main/(byte) key_right_debounce#25 main::@7/(byte) key_right_debounce#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) form_fields_cnt#35 ← phi( main/(byte) form_fields_cnt#36 main::@7/(byte) form_fields_cnt#37 ) + (byte) form_field_idx#26 ← phi( main/(byte) form_field_idx#36 main::@7/(byte) form_field_idx#0 ) + (byte) keyboard_modifiers#34 ← phi( main/(byte) keyboard_modifiers#47 main::@7/(byte) keyboard_modifiers#7 ) + (byte) keyboard_events_size#35 ← phi( main/(byte) keyboard_events_size#46 main::@7/(byte) keyboard_events_size#6 ) + (signed byte) form_cursor_count#19 ← phi( main/(signed byte) form_cursor_count#26 main::@7/(signed byte) form_cursor_count#0 ) (byte*) print_char_cursor#42 ← phi( main/(byte*) print_char_cursor#49 main::@7/(byte*) print_char_cursor#10 ) (byte*) print_line_cursor#40 ← phi( main/(byte*) print_line_cursor#46 main::@7/(byte*) print_line_cursor#9 ) (byte*) print_screen#20 ← phi( main/(byte*) print_screen#25 main::@7/(byte*) print_screen#3 ) if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - (byte) form_fields_cnt#32 ← phi( main::@1/(byte) form_fields_cnt#34 ) - (byte) key_right_debounce#15 ← phi( main::@1/(byte) key_right_debounce#16 ) + (byte) form_fields_cnt#32 ← phi( main::@1/(byte) form_fields_cnt#35 ) (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 ) + (byte) keyboard_modifiers#33 ← phi( main::@1/(byte) keyboard_modifiers#34 ) + (byte) keyboard_events_size#34 ← phi( main::@1/(byte) keyboard_events_size#35 ) (signed byte) form_cursor_count#18 ← phi( main::@1/(signed byte) form_cursor_count#19 ) (byte*) print_char_cursor#41 ← phi( main::@1/(byte*) print_char_cursor#42 ) (byte*) print_line_cursor#39 ← phi( main::@1/(byte*) print_line_cursor#40 ) @@ -3111,10 +3780,10 @@ main::@2: scope:[main] from main::@1 call menu param-assignment to:main::@7 main::@7: scope:[main] from main::@2 - (byte) form_fields_cnt#38 ← phi( main::@2/(byte) form_fields_cnt#32 ) - (byte) key_right_debounce#8 ← phi( main::@2/(byte) key_right_debounce#3 ) + (byte) form_fields_cnt#37 ← phi( main::@2/(byte) form_fields_cnt#32 ) (byte) form_field_idx#11 ← phi( main::@2/(byte) form_field_idx#3 ) - (byte) key_down_debounce#8 ← phi( main::@2/(byte) key_down_debounce#3 ) + (byte) keyboard_modifiers#19 ← phi( main::@2/(byte) keyboard_modifiers#10 ) + (byte) keyboard_events_size#21 ← phi( main::@2/(byte) keyboard_events_size#9 ) (signed byte) form_cursor_count#10 ← phi( main::@2/(signed byte) form_cursor_count#3 ) (byte*) print_char_cursor#27 ← phi( main::@2/(byte*) print_char_cursor#18 ) (byte*) print_line_cursor#26 ← phi( main::@2/(byte*) print_line_cursor#17 ) @@ -3123,14 +3792,14 @@ main::@7: scope:[main] from main::@2 (byte*) print_line_cursor#9 ← (byte*) print_line_cursor#26 (byte*) print_char_cursor#10 ← (byte*) print_char_cursor#27 (signed byte) form_cursor_count#0 ← (signed byte) form_cursor_count#10 - (byte) key_down_debounce#0 ← (byte) key_down_debounce#8 + (byte) keyboard_events_size#6 ← (byte) keyboard_events_size#21 + (byte) keyboard_modifiers#7 ← (byte) keyboard_modifiers#19 (byte) form_field_idx#0 ← (byte) form_field_idx#11 - (byte) key_right_debounce#0 ← (byte) key_right_debounce#8 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#26 ) - (byte) key_down_debounce#9 ← phi( main::@1/(byte) key_down_debounce#16 ) + (byte) keyboard_modifiers#20 ← phi( main::@1/(byte) keyboard_modifiers#34 ) + (byte) keyboard_events_size#22 ← phi( main::@1/(byte) keyboard_events_size#35 ) (signed byte) form_cursor_count#11 ← phi( main::@1/(signed byte) form_cursor_count#19 ) (byte*) print_char_cursor#28 ← phi( main::@1/(byte*) print_char_cursor#42 ) (byte*) print_line_cursor#27 ← phi( main::@1/(byte*) print_line_cursor#40 ) @@ -3139,17 +3808,18 @@ main::@return: scope:[main] from main::@1 (byte*) print_line_cursor#10 ← (byte*) print_line_cursor#27 (byte*) print_char_cursor#11 ← (byte*) print_char_cursor#28 (signed byte) form_cursor_count#1 ← (signed byte) form_cursor_count#11 - (byte) key_down_debounce#1 ← (byte) key_down_debounce#9 + (byte) keyboard_events_size#7 ← (byte) keyboard_events_size#22 + (byte) keyboard_modifiers#8 ← (byte) keyboard_modifiers#20 (byte) form_field_idx#1 ← (byte) form_field_idx#12 - (byte) key_right_debounce#1 ← (byte) key_right_debounce#9 return to:@return -@20: scope:[] from @15 - (byte*) print_char_cursor#57 ← phi( @15/(byte*) print_char_cursor#58 ) - (byte*) print_line_cursor#56 ← phi( @15/(byte*) print_line_cursor#58 ) - (byte*) print_screen#34 ← phi( @15/(byte*) print_screen#35 ) - (string~) $0 ← (const string) $20 + (const string) $21 - (string~) $1 ← (string~) $0 + (const string) $22 +@23: scope:[] from @19 + (byte) keyboard_modifiers#64 ← phi( @19/(byte) keyboard_modifiers#0 ) + (byte) keyboard_events_size#67 ← phi( @19/(byte) keyboard_events_size#0 ) + (byte*) print_char_cursor#57 ← phi( @19/(byte*) print_char_cursor#58 ) + (byte*) print_line_cursor#56 ← phi( @19/(byte*) print_line_cursor#58 ) + (byte*) print_screen#34 ← phi( @19/(byte*) print_screen#35 ) + (string~) $1 ← (const string) $21 + (const string) $22 (string~) $2 ← (string~) $1 + (const string) $23 (string~) $3 ← (string~) $2 + (const string) $24 (string~) $4 ← (string~) $3 + (const string) $25 @@ -3157,9 +3827,9 @@ main::@return: scope:[main] from main::@1 (string~) $6 ← (string~) $5 + (const string) $27 (string~) $7 ← (string~) $6 + (const string) $28 (string~) $8 ← (string~) $7 + (const string) $29 - (byte[]) MENU_COLS#0 ← (string~) $8 - (string~) $9 ← (const string) $30 + (const string) $31 - (string~) $10 ← (string~) $9 + (const string) $32 + (string~) $9 ← (string~) $8 + (const string) $30 + (byte[]) MENU_COLS#0 ← (string~) $9 + (string~) $10 ← (const string) $31 + (const string) $32 (string~) $11 ← (string~) $10 + (const string) $33 (string~) $12 ← (string~) $11 + (const string) $34 (string~) $13 ← (string~) $12 + (const string) $35 @@ -3167,14 +3837,15 @@ main::@return: scope:[main] from main::@1 (string~) $15 ← (string~) $14 + (const string) $37 (string~) $16 ← (string~) $15 + (const string) $38 (string~) $17 ← (string~) $16 + (const string) $39 - (byte[]) MENU_TEXT#0 ← (string~) $17 - to:@21 + (string~) $18 ← (string~) $17 + (const string) $40 + (byte[]) MENU_TEXT#0 ← (string~) $18 + to:@24 menu: scope:[menu] from main::@2 - (byte) form_fields_cnt#29 ← phi( main::@2/(byte) form_fields_cnt#32 ) - (byte) key_right_debounce#65 ← phi( main::@2/(byte) key_right_debounce#15 ) - (byte) form_field_idx#67 ← phi( main::@2/(byte) form_field_idx#25 ) - (byte) key_down_debounce#65 ← phi( main::@2/(byte) key_down_debounce#15 ) - (signed byte) form_cursor_count#58 ← phi( main::@2/(signed byte) form_cursor_count#18 ) + (byte) form_fields_cnt#30 ← phi( main::@2/(byte) form_fields_cnt#32 ) + (byte) form_field_idx#61 ← phi( main::@2/(byte) form_field_idx#25 ) + (byte) keyboard_modifiers#81 ← phi( main::@2/(byte) keyboard_modifiers#33 ) + (byte) keyboard_events_size#100 ← phi( main::@2/(byte) keyboard_events_size#34 ) + (signed byte) form_cursor_count#53 ← phi( main::@2/(signed byte) form_cursor_count#18 ) (byte*) print_char_cursor#54 ← phi( main::@2/(byte*) print_char_cursor#41 ) (byte*) print_line_cursor#53 ← phi( main::@2/(byte*) print_line_cursor#39 ) (byte*) print_screen#31 ← phi( main::@2/(byte*) print_screen#19 ) @@ -3215,11 +3886,11 @@ menu: scope:[menu] from main::@2 (byte) menu::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 - (byte) form_fields_cnt#27 ← phi( menu/(byte) form_fields_cnt#29 menu::@1/(byte) form_fields_cnt#27 ) - (byte) key_right_debounce#64 ← phi( menu/(byte) key_right_debounce#65 menu::@1/(byte) key_right_debounce#64 ) - (byte) form_field_idx#66 ← phi( menu/(byte) form_field_idx#67 menu::@1/(byte) form_field_idx#66 ) - (byte) key_down_debounce#64 ← phi( menu/(byte) key_down_debounce#65 menu::@1/(byte) key_down_debounce#64 ) - (signed byte) form_cursor_count#57 ← phi( menu/(signed byte) form_cursor_count#58 menu::@1/(signed byte) form_cursor_count#57 ) + (byte) form_fields_cnt#27 ← phi( menu/(byte) form_fields_cnt#30 menu::@1/(byte) form_fields_cnt#27 ) + (byte) form_field_idx#60 ← phi( menu/(byte) form_field_idx#61 menu::@1/(byte) form_field_idx#60 ) + (byte) keyboard_modifiers#80 ← phi( menu/(byte) keyboard_modifiers#81 menu::@1/(byte) keyboard_modifiers#80 ) + (byte) keyboard_events_size#99 ← phi( menu/(byte) keyboard_events_size#100 menu::@1/(byte) keyboard_events_size#99 ) + (signed byte) form_cursor_count#52 ← phi( menu/(signed byte) form_cursor_count#53 menu::@1/(signed byte) form_cursor_count#52 ) (byte*) print_char_cursor#50 ← phi( menu/(byte*) print_char_cursor#54 menu::@1/(byte*) print_char_cursor#50 ) (byte*) print_line_cursor#47 ← phi( menu/(byte*) print_line_cursor#53 menu::@1/(byte*) print_line_cursor#47 ) (byte*) print_screen#26 ← phi( menu/(byte*) print_screen#31 menu::@1/(byte*) print_screen#26 ) @@ -3231,10 +3902,10 @@ menu::@1: scope:[menu] from menu menu::@1 to:menu::@8 menu::@8: scope:[menu] from menu::@1 (byte) form_fields_cnt#25 ← phi( menu::@1/(byte) form_fields_cnt#27 ) - (byte) key_right_debounce#63 ← phi( menu::@1/(byte) key_right_debounce#64 ) - (byte) form_field_idx#65 ← phi( menu::@1/(byte) form_field_idx#66 ) - (byte) key_down_debounce#63 ← phi( menu::@1/(byte) key_down_debounce#64 ) - (signed byte) form_cursor_count#56 ← phi( menu::@1/(signed byte) form_cursor_count#57 ) + (byte) form_field_idx#59 ← phi( menu::@1/(byte) form_field_idx#60 ) + (byte) keyboard_modifiers#79 ← phi( menu::@1/(byte) keyboard_modifiers#80 ) + (byte) keyboard_events_size#98 ← phi( menu::@1/(byte) keyboard_events_size#99 ) + (signed byte) form_cursor_count#51 ← phi( menu::@1/(signed byte) form_cursor_count#52 ) (byte*) print_char_cursor#43 ← phi( menu::@1/(byte*) print_char_cursor#50 ) (byte*) print_line_cursor#41 ← phi( menu::@1/(byte*) print_line_cursor#47 ) (byte*) print_screen#21 ← phi( menu::@1/(byte*) print_screen#26 ) @@ -3245,10 +3916,10 @@ menu::@8: scope:[menu] from menu::@1 to:menu::@15 menu::@15: scope:[menu] from menu::@8 (byte) form_fields_cnt#23 ← phi( menu::@8/(byte) form_fields_cnt#25 ) - (byte) key_right_debounce#62 ← phi( menu::@8/(byte) key_right_debounce#63 ) - (byte) form_field_idx#64 ← phi( menu::@8/(byte) form_field_idx#65 ) - (byte) key_down_debounce#62 ← phi( menu::@8/(byte) key_down_debounce#63 ) - (signed byte) form_cursor_count#55 ← phi( menu::@8/(signed byte) form_cursor_count#56 ) + (byte) form_field_idx#58 ← phi( menu::@8/(byte) form_field_idx#59 ) + (byte) keyboard_modifiers#78 ← phi( menu::@8/(byte) keyboard_modifiers#79 ) + (byte) keyboard_events_size#97 ← phi( menu::@8/(byte) keyboard_events_size#98 ) + (signed byte) form_cursor_count#50 ← phi( menu::@8/(signed byte) form_cursor_count#51 ) (byte*) print_char_cursor#29 ← phi( menu::@8/(byte*) print_char_cursor#9 ) (byte*) print_line_cursor#28 ← phi( menu::@8/(byte*) print_line_cursor#8 ) (byte*) print_screen#15 ← phi( menu::@8/(byte*) print_screen#2 ) @@ -3258,11 +3929,11 @@ menu::@15: scope:[menu] from menu::@8 call print_cls param-assignment to:menu::@16 menu::@16: scope:[menu] from menu::@15 - (byte) form_fields_cnt#20 ← phi( menu::@15/(byte) form_fields_cnt#23 ) - (byte) key_right_debounce#61 ← phi( menu::@15/(byte) key_right_debounce#62 ) - (byte) form_field_idx#61 ← phi( menu::@15/(byte) form_field_idx#64 ) - (byte) key_down_debounce#61 ← phi( menu::@15/(byte) key_down_debounce#62 ) - (signed byte) form_cursor_count#54 ← phi( menu::@15/(signed byte) form_cursor_count#55 ) + (byte) form_fields_cnt#21 ← phi( menu::@15/(byte) form_fields_cnt#23 ) + (byte) form_field_idx#57 ← phi( menu::@15/(byte) form_field_idx#58 ) + (byte) keyboard_modifiers#77 ← phi( menu::@15/(byte) keyboard_modifiers#78 ) + (byte) keyboard_events_size#95 ← phi( menu::@15/(byte) keyboard_events_size#97 ) + (signed byte) form_cursor_count#49 ← phi( menu::@15/(signed byte) form_cursor_count#50 ) (byte*) print_screen#27 ← phi( menu::@15/(byte*) print_screen#5 ) (byte*) print_char_cursor#30 ← phi( menu::@15/(byte*) print_char_cursor#7 ) (byte*) print_line_cursor#29 ← phi( menu::@15/(byte*) print_line_cursor#6 ) @@ -3272,11 +3943,11 @@ menu::@16: scope:[menu] from menu::@15 call print_str_lines param-assignment to:menu::@17 menu::@17: scope:[menu] from menu::@16 - (byte) form_fields_cnt#18 ← phi( menu::@16/(byte) form_fields_cnt#20 ) - (byte) key_right_debounce#59 ← phi( menu::@16/(byte) key_right_debounce#61 ) - (byte) form_field_idx#59 ← phi( menu::@16/(byte) form_field_idx#61 ) - (byte) key_down_debounce#60 ← phi( menu::@16/(byte) key_down_debounce#61 ) - (signed byte) form_cursor_count#53 ← phi( menu::@16/(signed byte) form_cursor_count#54 ) + (byte) form_fields_cnt#18 ← phi( menu::@16/(byte) form_fields_cnt#21 ) + (byte) form_field_idx#54 ← phi( menu::@16/(byte) form_field_idx#57 ) + (byte) keyboard_modifiers#76 ← phi( menu::@16/(byte) keyboard_modifiers#77 ) + (byte) keyboard_events_size#92 ← phi( menu::@16/(byte) keyboard_events_size#95 ) + (signed byte) form_cursor_count#48 ← phi( menu::@16/(signed byte) form_cursor_count#49 ) (byte*) print_screen#22 ← phi( menu::@16/(byte*) print_screen#27 ) (byte*) print_line_cursor#30 ← phi( menu::@16/(byte*) print_line_cursor#2 ) (byte*) print_char_cursor#31 ← phi( menu::@16/(byte*) print_char_cursor#3 ) @@ -3286,11 +3957,11 @@ menu::@17: scope:[menu] from menu::@16 call print_set_screen param-assignment to:menu::@18 menu::@18: scope:[menu] from menu::@17 - (byte) form_fields_cnt#15 ← phi( menu::@17/(byte) form_fields_cnt#18 ) - (byte) key_right_debounce#56 ← phi( menu::@17/(byte) key_right_debounce#59 ) - (byte) form_field_idx#56 ← phi( menu::@17/(byte) form_field_idx#59 ) - (byte) key_down_debounce#59 ← phi( menu::@17/(byte) key_down_debounce#60 ) - (signed byte) form_cursor_count#50 ← phi( menu::@17/(signed byte) form_cursor_count#53 ) + (byte) form_fields_cnt#16 ← phi( menu::@17/(byte) form_fields_cnt#18 ) + (byte) form_field_idx#52 ← phi( menu::@17/(byte) form_field_idx#54 ) + (byte) keyboard_modifiers#75 ← phi( menu::@17/(byte) keyboard_modifiers#76 ) + (byte) keyboard_events_size#90 ← phi( menu::@17/(byte) keyboard_events_size#92 ) + (signed byte) form_cursor_count#45 ← phi( menu::@17/(signed byte) form_cursor_count#48 ) (byte*) print_char_cursor#32 ← phi( menu::@17/(byte*) print_char_cursor#9 ) (byte*) print_line_cursor#31 ← phi( menu::@17/(byte*) print_line_cursor#8 ) (byte*) print_screen#16 ← phi( menu::@17/(byte*) print_screen#2 ) @@ -3300,11 +3971,11 @@ menu::@18: scope:[menu] from menu::@17 call print_cls param-assignment to:menu::@19 menu::@19: scope:[menu] from menu::@18 - (byte) form_fields_cnt#13 ← phi( menu::@18/(byte) form_fields_cnt#15 ) - (byte) key_right_debounce#52 ← phi( menu::@18/(byte) key_right_debounce#56 ) - (byte) form_field_idx#54 ← phi( menu::@18/(byte) form_field_idx#56 ) - (byte) key_down_debounce#55 ← phi( menu::@18/(byte) key_down_debounce#59 ) - (signed byte) form_cursor_count#46 ← phi( menu::@18/(signed byte) form_cursor_count#50 ) + (byte) form_fields_cnt#13 ← phi( menu::@18/(byte) form_fields_cnt#16 ) + (byte) form_field_idx#49 ← phi( menu::@18/(byte) form_field_idx#52 ) + (byte) keyboard_modifiers#73 ← phi( menu::@18/(byte) keyboard_modifiers#75 ) + (byte) keyboard_events_size#84 ← phi( menu::@18/(byte) keyboard_events_size#90 ) + (signed byte) form_cursor_count#43 ← phi( menu::@18/(signed byte) form_cursor_count#45 ) (byte*) print_screen#39 ← phi( menu::@18/(byte*) print_screen#6 ) (byte*) print_char_cursor#33 ← phi( menu::@18/(byte*) print_char_cursor#7 ) (byte*) print_line_cursor#32 ← phi( menu::@18/(byte*) print_line_cursor#6 ) @@ -3315,10 +3986,10 @@ menu::@19: scope:[menu] from menu::@18 to:menu::@20 menu::@20: scope:[menu] from menu::@19 (byte) form_fields_cnt#11 ← phi( menu::@19/(byte) form_fields_cnt#13 ) - (byte) key_right_debounce#47 ← phi( menu::@19/(byte) key_right_debounce#52 ) - (byte) form_field_idx#51 ← phi( menu::@19/(byte) form_field_idx#54 ) - (byte) key_down_debounce#49 ← phi( menu::@19/(byte) key_down_debounce#55 ) - (signed byte) form_cursor_count#42 ← phi( menu::@19/(signed byte) form_cursor_count#46 ) + (byte) form_field_idx#47 ← phi( menu::@19/(byte) form_field_idx#49 ) + (byte) keyboard_modifiers#70 ← phi( menu::@19/(byte) keyboard_modifiers#73 ) + (byte) keyboard_events_size#76 ← phi( menu::@19/(byte) keyboard_events_size#84 ) + (signed byte) form_cursor_count#40 ← phi( menu::@19/(signed byte) form_cursor_count#43 ) (byte*) print_screen#36 ← phi( menu::@19/(byte*) print_screen#39 ) (byte*) print_line_cursor#33 ← phi( menu::@19/(byte*) print_line_cursor#2 ) (byte*) print_char_cursor#34 ← phi( menu::@19/(byte*) print_char_cursor#3 ) @@ -3329,97 +4000,97 @@ menu::@20: scope:[menu] from menu::@19 to:menu::@21 menu::@21: scope:[menu] from menu::@20 (byte) form_fields_cnt#9 ← phi( menu::@20/(byte) form_fields_cnt#11 ) - (byte) key_right_debounce#38 ← phi( menu::@20/(byte) key_right_debounce#47 ) - (byte) form_field_idx#46 ← phi( menu::@20/(byte) form_field_idx#51 ) - (byte) key_down_debounce#40 ← phi( menu::@20/(byte) key_down_debounce#49 ) - (signed byte) form_cursor_count#36 ← phi( menu::@20/(signed byte) form_cursor_count#42 ) + (byte) form_field_idx#43 ← phi( menu::@20/(byte) form_field_idx#47 ) + (byte) keyboard_modifiers#61 ← phi( menu::@20/(byte) keyboard_modifiers#70 ) + (byte) keyboard_events_size#64 ← phi( menu::@20/(byte) keyboard_events_size#76 ) + (signed byte) form_cursor_count#34 ← phi( menu::@20/(signed byte) form_cursor_count#40 ) (byte*) print_char_cursor#55 ← phi( menu::@20/(byte*) print_char_cursor#17 ) (byte*) print_line_cursor#54 ← phi( menu::@20/(byte*) print_line_cursor#16 ) (byte*) print_screen#32 ← phi( menu::@20/(byte*) print_screen#36 ) call form_render_values param-assignment to:menu::@22 menu::@22: scope:[menu] from menu::@21 - (byte) form_fields_cnt#35 ← phi( menu::@21/(byte) form_fields_cnt#9 ) - (byte) key_right_debounce#26 ← phi( menu::@21/(byte) key_right_debounce#38 ) - (byte) form_field_idx#38 ← phi( menu::@21/(byte) form_field_idx#46 ) - (byte) key_down_debounce#26 ← phi( menu::@21/(byte) key_down_debounce#40 ) - (signed byte) form_cursor_count#28 ← phi( menu::@21/(signed byte) form_cursor_count#36 ) + (byte) form_fields_cnt#33 ← phi( menu::@21/(byte) form_fields_cnt#9 ) + (byte) form_field_idx#37 ← phi( menu::@21/(byte) form_field_idx#43 ) + (byte) keyboard_modifiers#48 ← phi( menu::@21/(byte) keyboard_modifiers#61 ) + (byte) keyboard_events_size#47 ← phi( menu::@21/(byte) keyboard_events_size#64 ) + (signed byte) form_cursor_count#27 ← phi( menu::@21/(signed byte) form_cursor_count#34 ) (byte*) print_char_cursor#51 ← phi( menu::@21/(byte*) print_char_cursor#55 ) (byte*) print_line_cursor#48 ← phi( menu::@21/(byte*) print_line_cursor#54 ) (byte*) print_screen#28 ← phi( menu::@21/(byte*) print_screen#32 ) to:menu::@2 menu::@2: scope:[menu] from menu::@22 menu::@23 - (byte) form_fields_cnt#33 ← phi( menu::@22/(byte) form_fields_cnt#35 menu::@23/(byte) form_fields_cnt#36 ) - (byte) key_right_debounce#18 ← phi( menu::@22/(byte) key_right_debounce#26 menu::@23/(byte) key_right_debounce#2 ) - (byte) form_field_idx#28 ← phi( menu::@22/(byte) form_field_idx#38 menu::@23/(byte) form_field_idx#2 ) - (byte) key_down_debounce#18 ← phi( menu::@22/(byte) key_down_debounce#26 menu::@23/(byte) key_down_debounce#2 ) - (signed byte) form_cursor_count#21 ← phi( menu::@22/(signed byte) form_cursor_count#28 menu::@23/(signed byte) form_cursor_count#2 ) + (byte) form_fields_cnt#31 ← phi( menu::@22/(byte) form_fields_cnt#33 menu::@23/(byte) form_fields_cnt#34 ) + (byte) form_field_idx#28 ← phi( menu::@22/(byte) form_field_idx#37 menu::@23/(byte) form_field_idx#2 ) + (byte) keyboard_modifiers#36 ← phi( menu::@22/(byte) keyboard_modifiers#48 menu::@23/(byte) keyboard_modifiers#9 ) + (byte) keyboard_events_size#37 ← phi( menu::@22/(byte) keyboard_events_size#47 menu::@23/(byte) keyboard_events_size#8 ) + (signed byte) form_cursor_count#21 ← phi( menu::@22/(signed byte) form_cursor_count#27 menu::@23/(signed byte) form_cursor_count#2 ) (byte*) print_char_cursor#44 ← phi( menu::@22/(byte*) print_char_cursor#51 menu::@23/(byte*) print_char_cursor#52 ) (byte*) print_line_cursor#42 ← phi( menu::@22/(byte*) print_line_cursor#48 menu::@23/(byte*) print_line_cursor#49 ) (byte*) print_screen#23 ← phi( menu::@22/(byte*) print_screen#28 menu::@23/(byte*) print_screen#29 ) if(true) goto menu::@3 to:menu::@return menu::@3: scope:[menu] from menu::@2 - (byte) form_fields_cnt#30 ← phi( menu::@2/(byte) form_fields_cnt#33 ) + (byte) form_fields_cnt#28 ← phi( menu::@2/(byte) form_fields_cnt#31 ) (byte*) print_char_cursor#61 ← phi( menu::@2/(byte*) print_char_cursor#44 ) (byte*) print_line_cursor#61 ← phi( menu::@2/(byte*) print_line_cursor#42 ) (byte*) print_screen#40 ← phi( menu::@2/(byte*) print_screen#23 ) - (byte) key_right_debounce#39 ← phi( menu::@2/(byte) key_right_debounce#18 ) - (byte) form_field_idx#47 ← phi( menu::@2/(byte) form_field_idx#28 ) - (byte) key_down_debounce#41 ← phi( menu::@2/(byte) key_down_debounce#18 ) - (signed byte) form_cursor_count#37 ← phi( menu::@2/(signed byte) form_cursor_count#21 ) + (byte) form_field_idx#44 ← phi( menu::@2/(byte) form_field_idx#28 ) + (byte) keyboard_modifiers#62 ← phi( menu::@2/(byte) keyboard_modifiers#36 ) + (byte) keyboard_events_size#65 ← phi( menu::@2/(byte) keyboard_events_size#37 ) + (signed byte) form_cursor_count#35 ← phi( menu::@2/(signed byte) form_cursor_count#21 ) to:menu::@5 menu::@5: scope:[menu] from menu::@3 menu::@6 - (byte) form_fields_cnt#28 ← phi( menu::@3/(byte) form_fields_cnt#30 menu::@6/(byte) form_fields_cnt#31 ) + (byte) form_fields_cnt#26 ← phi( menu::@3/(byte) form_fields_cnt#28 menu::@6/(byte) form_fields_cnt#29 ) (byte*) print_char_cursor#59 ← phi( menu::@3/(byte*) print_char_cursor#61 menu::@6/(byte*) print_char_cursor#62 ) (byte*) print_line_cursor#59 ← phi( menu::@3/(byte*) print_line_cursor#61 menu::@6/(byte*) print_line_cursor#62 ) (byte*) print_screen#37 ← phi( menu::@3/(byte*) print_screen#40 menu::@6/(byte*) print_screen#41 ) - (byte) key_right_debounce#27 ← phi( menu::@3/(byte) key_right_debounce#39 menu::@6/(byte) key_right_debounce#40 ) - (byte) form_field_idx#39 ← phi( menu::@3/(byte) form_field_idx#47 menu::@6/(byte) form_field_idx#48 ) - (byte) key_down_debounce#27 ← phi( menu::@3/(byte) key_down_debounce#41 menu::@6/(byte) key_down_debounce#42 ) - (signed byte) form_cursor_count#29 ← phi( menu::@3/(signed byte) form_cursor_count#37 menu::@6/(signed byte) form_cursor_count#38 ) + (byte) form_field_idx#38 ← phi( menu::@3/(byte) form_field_idx#44 menu::@6/(byte) form_field_idx#45 ) + (byte) keyboard_modifiers#49 ← phi( menu::@3/(byte) keyboard_modifiers#62 menu::@6/(byte) keyboard_modifiers#63 ) + (byte) keyboard_events_size#48 ← phi( menu::@3/(byte) keyboard_events_size#65 menu::@6/(byte) keyboard_events_size#66 ) + (signed byte) form_cursor_count#28 ← phi( menu::@3/(signed byte) form_cursor_count#35 menu::@6/(signed byte) form_cursor_count#36 ) (boolean~) menu::$32 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 if((boolean~) menu::$32) goto menu::@6 to:menu::@7 menu::@6: scope:[menu] from menu::@5 - (byte) form_fields_cnt#31 ← phi( menu::@5/(byte) form_fields_cnt#28 ) + (byte) form_fields_cnt#29 ← phi( menu::@5/(byte) form_fields_cnt#26 ) (byte*) print_char_cursor#62 ← phi( menu::@5/(byte*) print_char_cursor#59 ) (byte*) print_line_cursor#62 ← phi( menu::@5/(byte*) print_line_cursor#59 ) (byte*) print_screen#41 ← phi( menu::@5/(byte*) print_screen#37 ) - (byte) key_right_debounce#40 ← phi( menu::@5/(byte) key_right_debounce#27 ) - (byte) form_field_idx#48 ← phi( menu::@5/(byte) form_field_idx#39 ) - (byte) key_down_debounce#42 ← phi( menu::@5/(byte) key_down_debounce#27 ) - (signed byte) form_cursor_count#38 ← phi( menu::@5/(signed byte) form_cursor_count#29 ) + (byte) form_field_idx#45 ← phi( menu::@5/(byte) form_field_idx#38 ) + (byte) keyboard_modifiers#63 ← phi( menu::@5/(byte) keyboard_modifiers#49 ) + (byte) keyboard_events_size#66 ← phi( menu::@5/(byte) keyboard_events_size#48 ) + (signed byte) form_cursor_count#36 ← phi( menu::@5/(signed byte) form_cursor_count#28 ) to:menu::@5 menu::@7: scope:[menu] from menu::@5 - (byte) form_fields_cnt#26 ← phi( menu::@5/(byte) form_fields_cnt#28 ) + (byte) form_fields_cnt#24 ← phi( menu::@5/(byte) form_fields_cnt#26 ) (byte*) print_char_cursor#56 ← phi( menu::@5/(byte*) print_char_cursor#59 ) (byte*) print_line_cursor#55 ← phi( menu::@5/(byte*) print_line_cursor#59 ) (byte*) print_screen#33 ← phi( menu::@5/(byte*) print_screen#37 ) - (byte) key_right_debounce#17 ← phi( menu::@5/(byte) key_right_debounce#27 ) - (byte) form_field_idx#27 ← phi( menu::@5/(byte) form_field_idx#39 ) - (byte) key_down_debounce#17 ← phi( menu::@5/(byte) key_down_debounce#27 ) - (signed byte) form_cursor_count#20 ← phi( menu::@5/(signed byte) form_cursor_count#29 ) + (byte) form_field_idx#27 ← phi( menu::@5/(byte) form_field_idx#38 ) + (byte) keyboard_modifiers#35 ← phi( menu::@5/(byte) keyboard_modifiers#49 ) + (byte) keyboard_events_size#36 ← phi( menu::@5/(byte) keyboard_events_size#48 ) + (signed byte) form_cursor_count#20 ← phi( menu::@5/(signed byte) form_cursor_count#28 ) call form_control param-assignment to:menu::@23 menu::@23: scope:[menu] from menu::@7 - (byte) form_fields_cnt#36 ← phi( menu::@7/(byte) form_fields_cnt#26 ) + (byte) form_fields_cnt#34 ← phi( menu::@7/(byte) form_fields_cnt#24 ) (byte*) print_char_cursor#52 ← phi( menu::@7/(byte*) print_char_cursor#56 ) (byte*) print_line_cursor#49 ← phi( menu::@7/(byte*) print_line_cursor#55 ) (byte*) print_screen#29 ← phi( menu::@7/(byte*) print_screen#33 ) - (byte) key_right_debounce#10 ← phi( menu::@7/(byte) key_right_debounce#5 ) (byte) form_field_idx#13 ← phi( menu::@7/(byte) form_field_idx#9 ) - (byte) key_down_debounce#10 ← phi( menu::@7/(byte) key_down_debounce#6 ) + (byte) keyboard_modifiers#21 ← phi( menu::@7/(byte) keyboard_modifiers#12 ) + (byte) keyboard_events_size#23 ← phi( menu::@7/(byte) keyboard_events_size#12 ) (signed byte) form_cursor_count#12 ← phi( menu::@7/(signed byte) form_cursor_count#8 ) (signed byte) form_cursor_count#2 ← (signed byte) form_cursor_count#12 - (byte) key_down_debounce#2 ← (byte) key_down_debounce#10 + (byte) keyboard_events_size#8 ← (byte) keyboard_events_size#23 + (byte) keyboard_modifiers#9 ← (byte) keyboard_modifiers#21 (byte) form_field_idx#2 ← (byte) form_field_idx#13 - (byte) key_right_debounce#2 ← (byte) key_right_debounce#10 to:menu::@2 menu::@return: scope:[menu] from menu::@2 - (byte) key_right_debounce#11 ← phi( menu::@2/(byte) key_right_debounce#18 ) (byte) form_field_idx#14 ← phi( menu::@2/(byte) form_field_idx#28 ) - (byte) key_down_debounce#11 ← phi( menu::@2/(byte) key_down_debounce#18 ) + (byte) keyboard_modifiers#22 ← phi( menu::@2/(byte) keyboard_modifiers#36 ) + (byte) keyboard_events_size#24 ← phi( menu::@2/(byte) keyboard_events_size#37 ) (signed byte) form_cursor_count#13 ← phi( menu::@2/(signed byte) form_cursor_count#21 ) (byte*) print_char_cursor#35 ← phi( menu::@2/(byte*) print_char_cursor#44 ) (byte*) print_line_cursor#34 ← phi( menu::@2/(byte*) print_line_cursor#42 ) @@ -3428,15 +4099,17 @@ menu::@return: scope:[menu] from menu::@2 (byte*) print_line_cursor#17 ← (byte*) print_line_cursor#34 (byte*) print_char_cursor#18 ← (byte*) print_char_cursor#35 (signed byte) form_cursor_count#3 ← (signed byte) form_cursor_count#13 - (byte) key_down_debounce#3 ← (byte) key_down_debounce#11 + (byte) keyboard_events_size#9 ← (byte) keyboard_events_size#24 + (byte) keyboard_modifiers#10 ← (byte) keyboard_modifiers#22 (byte) form_field_idx#3 ← (byte) form_field_idx#14 - (byte) key_right_debounce#3 ← (byte) key_right_debounce#11 return to:@return -@21: scope:[] from @20 - (byte*) print_char_cursor#53 ← phi( @20/(byte*) print_char_cursor#57 ) - (byte*) print_line_cursor#50 ← phi( @20/(byte*) print_line_cursor#56 ) - (byte*) print_screen#30 ← phi( @20/(byte*) print_screen#34 ) +@24: scope:[] from @23 + (byte) keyboard_modifiers#60 ← phi( @23/(byte) keyboard_modifiers#64 ) + (byte) keyboard_events_size#60 ← phi( @23/(byte) keyboard_events_size#67 ) + (byte*) print_char_cursor#53 ← phi( @23/(byte*) print_char_cursor#57 ) + (byte*) print_line_cursor#50 ← phi( @23/(byte*) print_line_cursor#56 ) + (byte*) print_screen#30 ← phi( @23/(byte*) print_screen#34 ) (byte[25]) form_line_lo#0 ← { fill( 25, 0) } (byte[25]) form_line_hi#0 ← { fill( 25, 0) } (byte) form_field_idx#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3445,12 +4118,10 @@ menu::@return: scope:[menu] from menu::@2 (byte[]) form_fields_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 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/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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (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) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8 } (byte[]) form_fields_max#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 13, (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/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15 } (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/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 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 (signed byte) FORM_CURSOR_BLINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (signed word/signed byte/signed dword~) $18 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 - (signed byte) form_cursor_count#4 ← (signed word/signed byte/signed dword~) $18 - to:@25 + (signed word/signed byte/signed dword~) $19 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) form_cursor_count#4 ← (signed word/signed byte/signed dword~) $19 + to:@28 form_set_screen: scope:[form_set_screen] from menu::@20 (byte*) form_set_screen::screen#1 ← phi( menu::@20/(byte*) form_set_screen::screen#0 ) (byte*) form_set_screen::line#0 ← (byte*) form_set_screen::screen#1 @@ -3513,20 +4184,20 @@ form_render_values::@return: scope:[form_render_values] from form_render_values return to:@return form_control: scope:[form_control] from menu::@7 - (byte) form_fields_cnt#24 ← phi( menu::@7/(byte) form_fields_cnt#26 ) - (byte) key_right_debounce#60 ← phi( menu::@7/(byte) key_right_debounce#17 ) - (byte) key_down_debounce#56 ← phi( menu::@7/(byte) key_down_debounce#17 ) + (byte) form_fields_cnt#22 ← phi( menu::@7/(byte) form_fields_cnt#24 ) + (byte) keyboard_modifiers#74 ← phi( menu::@7/(byte) keyboard_modifiers#35 ) + (byte) keyboard_events_size#85 ← phi( menu::@7/(byte) keyboard_events_size#36 ) (signed byte) form_cursor_count#22 ← phi( menu::@7/(signed byte) form_cursor_count#20 ) (byte) form_field_idx#15 ← phi( menu::@7/(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::@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#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 ) + to:form_control::@28 +form_control::@28: scope:[form_control] from form_control + (byte) form_fields_cnt#20 ← phi( form_control/(byte) form_fields_cnt#22 ) + (byte) form_field_idx#56 ← phi( form_control/(byte) form_field_idx#15 ) + (byte) keyboard_modifiers#72 ← phi( form_control/(byte) keyboard_modifiers#74 ) + (byte) keyboard_events_size#78 ← phi( form_control/(byte) keyboard_events_size#85 ) (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 @@ -3535,333 +4206,275 @@ form_control::@32: 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::@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 ) + to:form_control::@14 +form_control::@1: scope:[form_control] from form_control::@14 form_control::@28 + (byte) form_fields_cnt#17 ← phi( form_control::@14/(byte) form_fields_cnt#19 form_control::@28/(byte) form_fields_cnt#20 ) + (byte) form_field_idx#53 ← phi( form_control::@14/(byte) form_field_idx#55 form_control::@28/(byte) form_field_idx#56 ) + (byte) keyboard_modifiers#65 ← phi( form_control::@14/(byte) keyboard_modifiers#71 form_control::@28/(byte) keyboard_modifiers#72 ) + (byte) keyboard_events_size#68 ← phi( form_control::@14/(byte) keyboard_events_size#77 form_control::@28/(byte) keyboard_events_size#78 ) + (byte*) form_control::field#5 ← phi( form_control::@14/(byte*) form_control::field#11 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 ) (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::@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 ) + to:form_control::@15 +form_control::@14: scope:[form_control] from form_control::@28 + (byte) form_fields_cnt#19 ← phi( form_control::@28/(byte) form_fields_cnt#20 ) + (byte) form_field_idx#55 ← phi( form_control::@28/(byte) form_field_idx#56 ) + (byte) keyboard_modifiers#71 ← phi( form_control::@28/(byte) keyboard_modifiers#72 ) + (byte) keyboard_events_size#77 ← phi( form_control::@28/(byte) keyboard_events_size#78 ) + (byte*) form_control::field#11 ← phi( form_control::@28/(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#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 ) + (signed byte) form_cursor_count#47 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) + (byte) form_fields_cnt#15 ← phi( form_control::@1/(byte) form_fields_cnt#17 ) + (byte) form_field_idx#51 ← phi( form_control::@1/(byte) form_field_idx#53 ) + (byte) keyboard_modifiers#51 ← phi( form_control::@1/(byte) keyboard_modifiers#65 ) + (byte) keyboard_events_size#50 ← phi( form_control::@1/(byte) keyboard_events_size#68 ) (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::@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#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 ) +form_control::@15: scope:[form_control] from form_control::@1 + (signed byte) form_cursor_count#46 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) + (byte) form_fields_cnt#14 ← phi( form_control::@1/(byte) form_fields_cnt#17 ) + (byte) form_field_idx#50 ← phi( form_control::@1/(byte) form_field_idx#53 ) + (byte) keyboard_modifiers#50 ← phi( form_control::@1/(byte) keyboard_modifiers#65 ) + (byte) keyboard_events_size#49 ← phi( form_control::@1/(byte) keyboard_events_size#68 ) (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::@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::@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#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 ) +form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 + (signed byte) form_cursor_count#44 ← phi( form_control::@15/(signed byte) form_cursor_count#46 form_control::@2/(signed byte) form_cursor_count#47 ) + (byte) form_fields_cnt#12 ← phi( form_control::@15/(byte) form_fields_cnt#14 form_control::@2/(byte) form_fields_cnt#15 ) + (byte) form_field_idx#48 ← phi( form_control::@15/(byte) form_field_idx#50 form_control::@2/(byte) form_field_idx#51 ) + (byte*) form_control::field#15 ← phi( form_control::@15/(byte*) form_control::field#2 form_control::@2/(byte*) form_control::field#1 ) + (byte) keyboard_modifiers#37 ← phi( form_control::@15/(byte) keyboard_modifiers#50 form_control::@2/(byte) keyboard_modifiers#51 ) + (byte) keyboard_events_size#38 ← phi( form_control::@15/(byte) keyboard_events_size#49 form_control::@2/(byte) keyboard_events_size#50 ) + call keyboard_event_scan param-assignment + to:form_control::@29 +form_control::@29: scope:[form_control] from form_control::@3 + (signed byte) form_cursor_count#41 ← phi( form_control::@3/(signed byte) form_cursor_count#44 ) + (byte) form_fields_cnt#10 ← phi( form_control::@3/(byte) form_fields_cnt#12 ) + (byte) form_field_idx#46 ← phi( form_control::@3/(byte) form_field_idx#48 ) (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 - (byte) form_control::key_down#0 ← (byte~) form_control::$8 - (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::@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::@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 - (byte) form_control::key_right#0 ← (byte~) form_control::$23 - (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::@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::@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::@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::@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::@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) keyboard_modifiers#23 ← phi( form_control::@3/(byte) keyboard_modifiers#6 ) + (byte) keyboard_events_size#25 ← phi( form_control::@3/(byte) keyboard_events_size#3 ) + (byte) keyboard_events_size#10 ← (byte) keyboard_events_size#25 + (byte) keyboard_modifiers#11 ← (byte) keyboard_modifiers#23 + call keyboard_event_get param-assignment + (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + to:form_control::@30 +form_control::@30: scope:[form_control] from form_control::@29 + (signed byte) form_cursor_count#37 ← phi( form_control::@29/(signed byte) form_cursor_count#41 ) + (byte) form_fields_cnt#8 ← phi( form_control::@29/(byte) form_fields_cnt#10 ) + (byte) form_field_idx#39 ← phi( form_control::@29/(byte) form_field_idx#46 ) + (byte) keyboard_modifiers#38 ← phi( form_control::@29/(byte) keyboard_modifiers#11 ) + (byte*) form_control::field#6 ← phi( form_control::@29/(byte*) form_control::field#12 ) + (byte) keyboard_events_size#26 ← phi( form_control::@29/(byte) keyboard_events_size#5 ) + (byte) keyboard_event_get::return#5 ← phi( form_control::@29/(byte) keyboard_event_get::return#3 ) + (byte~) form_control::$9 ← (byte) keyboard_event_get::return#5 + (byte) keyboard_events_size#11 ← (byte) keyboard_events_size#26 + (byte) form_control::key_event#0 ← (byte~) form_control::$9 + (boolean~) form_control::$10 ← (byte) form_control::key_event#0 == (byte) KEY_CRSR_DOWN#0 + (boolean~) form_control::$11 ← ! (boolean~) form_control::$10 + if((boolean~) form_control::$11) goto form_control::@4 + to:form_control::@17 +form_control::@4: scope:[form_control] from form_control::@30 + (byte*) form_control::field#17 ← phi( form_control::@30/(byte*) form_control::field#6 ) + (byte) form_field_idx#42 ← phi( form_control::@30/(byte) form_field_idx#39 ) + (byte) keyboard_events_size#55 ← phi( form_control::@30/(byte) keyboard_events_size#11 ) + (signed byte) form_cursor_count#29 ← phi( form_control::@30/(signed byte) form_cursor_count#37 ) + (byte) keyboard_modifiers#42 ← phi( form_control::@30/(byte) keyboard_modifiers#38 ) + (byte) form_control::key_event#1 ← phi( form_control::@30/(byte) form_control::key_event#0 ) + (boolean~) form_control::$22 ← (byte) form_control::key_event#1 == (byte) KEY_CRSR_RIGHT#0 + (boolean~) form_control::$23 ← ! (boolean~) form_control::$22 + if((boolean~) form_control::$23) goto form_control::@9 + to:form_control::@23 +form_control::@17: scope:[form_control] from form_control::@30 + (byte) keyboard_events_size#79 ← phi( form_control::@30/(byte) keyboard_events_size#11 ) + (byte) form_fields_cnt#5 ← phi( form_control::@30/(byte) form_fields_cnt#8 ) + (byte) form_field_idx#29 ← phi( form_control::@30/(byte) form_field_idx#39 ) + (byte) keyboard_modifiers#24 ← phi( form_control::@30/(byte) keyboard_modifiers#38 ) + (byte*) form_control::field#3 ← phi( form_control::@30/(byte*) form_control::field#6 ) + (byte~) form_control::$12 ← *((byte*) form_control::field#3) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field#3) ← (byte~) form_control::$12 + (byte~) form_control::$13 ← (byte) keyboard_modifiers#24 & (byte) KEY_MODIFIER_SHIFT#0 + (boolean~) form_control::$14 ← (byte~) form_control::$13 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$15 ← ! (boolean~) form_control::$14 + if((boolean~) form_control::$15) goto form_control::@5 + to:form_control::@18 +form_control::@5: scope:[form_control] from form_control::@17 + (byte) keyboard_modifiers#67 ← phi( form_control::@17/(byte) keyboard_modifiers#24 ) + (byte) keyboard_events_size#70 ← phi( form_control::@17/(byte) keyboard_events_size#79 ) + (byte) form_fields_cnt#6 ← phi( form_control::@17/(byte) form_fields_cnt#5 ) + (byte) form_field_idx#16 ← phi( form_control::@17/(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::@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 ) + (boolean~) form_control::$18 ← (byte) form_field_idx#5 == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$19 ← ! (boolean~) form_control::$18 + if((boolean~) form_control::$19) goto form_control::@8 + to:form_control::@21 +form_control::@18: scope:[form_control] from form_control::@17 + (byte) keyboard_modifiers#66 ← phi( form_control::@17/(byte) keyboard_modifiers#24 ) + (byte) keyboard_events_size#69 ← phi( form_control::@17/(byte) keyboard_events_size#79 ) + (byte) form_fields_cnt#2 ← phi( form_control::@17/(byte) form_fields_cnt#5 ) + (byte) form_field_idx#17 ← phi( form_control::@17/(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::@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::@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 ) + (boolean~) form_control::$16 ← (byte) form_field_idx#6 == (byte) form_fields_cnt#2 + (boolean~) form_control::$17 ← ! (boolean~) form_control::$16 + if((boolean~) form_control::$17) goto form_control::@6 + to:form_control::@19 +form_control::@6: scope:[form_control] from form_control::@18 + (byte) form_field_idx#40 ← phi( form_control::@18/(byte) form_field_idx#6 ) + (byte) keyboard_modifiers#54 ← phi( form_control::@18/(byte) keyboard_modifiers#66 ) + (byte) keyboard_events_size#53 ← phi( form_control::@18/(byte) keyboard_events_size#69 ) + to:form_control::@7 +form_control::@19: scope:[form_control] from form_control::@18 + (byte) keyboard_modifiers#52 ← phi( form_control::@18/(byte) keyboard_modifiers#66 ) + (byte) keyboard_events_size#51 ← phi( form_control::@18/(byte) keyboard_events_size#69 ) (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::@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::@7 +form_control::@7: scope:[form_control] from form_control::@19 form_control::@21 form_control::@6 form_control::@8 + (byte) form_field_idx#30 ← phi( form_control::@19/(byte) form_field_idx#7 form_control::@21/(byte) form_field_idx#8 form_control::@6/(byte) form_field_idx#40 form_control::@8/(byte) form_field_idx#41 ) + (byte) keyboard_modifiers#40 ← phi( form_control::@19/(byte) keyboard_modifiers#52 form_control::@21/(byte) keyboard_modifiers#53 form_control::@6/(byte) keyboard_modifiers#54 form_control::@8/(byte) keyboard_modifiers#55 ) + (byte) keyboard_events_size#40 ← phi( form_control::@19/(byte) keyboard_events_size#51 form_control::@21/(byte) keyboard_events_size#52 form_control::@6/(byte) keyboard_events_size#53 form_control::@8/(byte) keyboard_events_size#54 ) + (signed word/signed byte/signed dword~) form_control::$21 ← (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::$21 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#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::@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::@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 ) +form_control::@8: scope:[form_control] from form_control::@5 + (byte) form_field_idx#41 ← phi( form_control::@5/(byte) form_field_idx#5 ) + (byte) keyboard_modifiers#55 ← phi( form_control::@5/(byte) keyboard_modifiers#67 ) + (byte) keyboard_events_size#54 ← phi( form_control::@5/(byte) keyboard_events_size#70 ) + to:form_control::@7 +form_control::@21: scope:[form_control] from form_control::@5 + (byte) keyboard_modifiers#53 ← phi( form_control::@5/(byte) keyboard_modifiers#67 ) + (byte) keyboard_events_size#52 ← phi( form_control::@5/(byte) keyboard_events_size#70 ) + (byte) form_fields_cnt#3 ← phi( form_control::@5/(byte) form_fields_cnt#6 ) + (byte/signed word/word/dword/signed dword~) form_control::$20 ← (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::$20 + to:form_control::@7 +form_control::@return: scope:[form_control] from form_control::@12 form_control::@7 form_control::@9 + (byte) form_field_idx#18 ← phi( form_control::@12/(byte) form_field_idx#22 form_control::@7/(byte) form_field_idx#30 form_control::@9/(byte) form_field_idx#31 ) + (byte) keyboard_modifiers#25 ← phi( form_control::@12/(byte) keyboard_modifiers#39 form_control::@7/(byte) keyboard_modifiers#40 form_control::@9/(byte) keyboard_modifiers#41 ) + (byte) keyboard_events_size#27 ← phi( form_control::@12/(byte) keyboard_events_size#39 form_control::@7/(byte) keyboard_events_size#40 form_control::@9/(byte) keyboard_events_size#41 ) + (signed byte) form_cursor_count#16 ← phi( form_control::@12/(signed byte) form_cursor_count#23 form_control::@7/(signed byte) form_cursor_count#7 form_control::@9/(signed byte) form_cursor_count#24 ) (signed byte) form_cursor_count#8 ← (signed byte) form_cursor_count#16 - (byte) key_down_debounce#6 ← (byte) key_down_debounce#13 + (byte) keyboard_events_size#12 ← (byte) keyboard_events_size#27 + (byte) keyboard_modifiers#12 ← (byte) keyboard_modifiers#25 (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::@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 ) +form_control::@9: scope:[form_control] from form_control::@4 + (byte) form_field_idx#31 ← phi( form_control::@4/(byte) form_field_idx#42 ) + (byte) keyboard_modifiers#41 ← phi( form_control::@4/(byte) keyboard_modifiers#42 ) + (byte) keyboard_events_size#41 ← phi( form_control::@4/(byte) keyboard_events_size#55 ) + (signed byte) form_cursor_count#24 ← phi( form_control::@4/(signed byte) form_cursor_count#29 ) to:form_control::@return -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::@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::@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::@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::@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 ) +form_control::@23: scope:[form_control] from form_control::@4 + (byte) keyboard_events_size#80 ← phi( form_control::@4/(byte) keyboard_events_size#55 ) + (signed byte) form_cursor_count#42 ← phi( form_control::@4/(signed byte) form_cursor_count#29 ) + (byte*) form_control::field#16 ← phi( form_control::@4/(byte*) form_control::field#17 ) + (byte) form_field_idx#32 ← phi( form_control::@4/(byte) form_field_idx#42 ) + (byte) keyboard_modifiers#26 ← phi( form_control::@4/(byte) keyboard_modifiers#42 ) + (byte~) form_control::$24 ← (byte) keyboard_modifiers#26 & (byte) KEY_MODIFIER_SHIFT#0 + (boolean~) form_control::$25 ← (byte~) form_control::$24 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$26 ← ! (boolean~) form_control::$25 + if((boolean~) form_control::$26) goto form_control::@10 + to:form_control::@24 +form_control::@10: scope:[form_control] from form_control::@23 + (byte) keyboard_modifiers#69 ← phi( form_control::@23/(byte) keyboard_modifiers#26 ) + (byte) keyboard_events_size#72 ← phi( form_control::@23/(byte) keyboard_events_size#80 ) + (signed byte) form_cursor_count#39 ← phi( form_control::@23/(signed byte) form_cursor_count#42 ) + (byte*) form_control::field#14 ← phi( form_control::@23/(byte*) form_control::field#16 ) + (byte) form_field_idx#19 ← phi( form_control::@23/(byte) form_field_idx#32 ) *((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 ) + (boolean~) form_control::$29 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 + if((boolean~) form_control::$30) goto form_control::@13 + to:form_control::@27 +form_control::@24: scope:[form_control] from form_control::@23 + (byte) keyboard_modifiers#68 ← phi( form_control::@23/(byte) keyboard_modifiers#26 ) + (byte) keyboard_events_size#71 ← phi( form_control::@23/(byte) keyboard_events_size#80 ) + (signed byte) form_cursor_count#38 ← phi( form_control::@23/(signed byte) form_cursor_count#42 ) + (byte*) form_control::field#13 ← phi( form_control::@23/(byte*) form_control::field#16 ) + (byte) form_field_idx#20 ← phi( form_control::@23/(byte) form_field_idx#32 ) *((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 ) + (boolean~) form_control::$27 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) > *((byte[]) form_fields_max#0 + (byte) form_field_idx#20) + (boolean~) form_control::$28 ← ! (boolean~) form_control::$27 + if((boolean~) form_control::$28) goto form_control::@11 + to:form_control::@25 +form_control::@11: scope:[form_control] from form_control::@24 + (byte) keyboard_modifiers#56 ← phi( form_control::@24/(byte) keyboard_modifiers#68 ) + (byte) keyboard_events_size#56 ← phi( form_control::@24/(byte) keyboard_events_size#71 ) + (signed byte) form_cursor_count#30 ← phi( form_control::@24/(signed byte) form_cursor_count#38 ) + (byte*) form_control::field#7 ← phi( form_control::@24/(byte*) form_control::field#13 ) + (byte) form_field_idx#33 ← phi( form_control::@24/(byte) form_field_idx#20 ) + to:form_control::@12 +form_control::@25: scope:[form_control] from form_control::@24 + (byte) keyboard_modifiers#58 ← phi( form_control::@24/(byte) keyboard_modifiers#68 ) + (byte) keyboard_events_size#58 ← phi( form_control::@24/(byte) keyboard_events_size#71 ) + (signed byte) form_cursor_count#32 ← phi( form_control::@24/(signed byte) form_cursor_count#38 ) + (byte*) form_control::field#9 ← phi( form_control::@24/(byte*) form_control::field#13 ) + (byte) form_field_idx#21 ← phi( form_control::@24/(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 ) + to:form_control::@12 +form_control::@12: scope:[form_control] from form_control::@11 form_control::@13 form_control::@25 form_control::@27 + (byte) keyboard_modifiers#39 ← phi( form_control::@11/(byte) keyboard_modifiers#56 form_control::@13/(byte) keyboard_modifiers#57 form_control::@25/(byte) keyboard_modifiers#58 form_control::@27/(byte) keyboard_modifiers#59 ) + (byte) keyboard_events_size#39 ← phi( form_control::@11/(byte) keyboard_events_size#56 form_control::@13/(byte) keyboard_events_size#57 form_control::@25/(byte) keyboard_events_size#58 form_control::@27/(byte) keyboard_events_size#59 ) + (signed byte) form_cursor_count#23 ← phi( form_control::@11/(signed byte) form_cursor_count#30 form_control::@13/(signed byte) form_cursor_count#31 form_control::@25/(signed byte) form_cursor_count#32 form_control::@27/(signed byte) form_cursor_count#33 ) + (byte*) form_control::field#4 ← phi( form_control::@11/(byte*) form_control::field#7 form_control::@13/(byte*) form_control::field#8 form_control::@25/(byte*) form_control::field#9 form_control::@27/(byte*) form_control::field#10 ) + (byte) form_field_idx#22 ← phi( form_control::@11/(byte) form_field_idx#33 form_control::@13/(byte) form_field_idx#34 form_control::@25/(byte) form_field_idx#21 form_control::@27/(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 ) +form_control::@13: scope:[form_control] from form_control::@10 + (byte) keyboard_modifiers#57 ← phi( form_control::@10/(byte) keyboard_modifiers#69 ) + (byte) keyboard_events_size#57 ← phi( form_control::@10/(byte) keyboard_events_size#72 ) + (signed byte) form_cursor_count#31 ← phi( form_control::@10/(signed byte) form_cursor_count#39 ) + (byte*) form_control::field#8 ← phi( form_control::@10/(byte*) form_control::field#14 ) + (byte) form_field_idx#34 ← phi( form_control::@10/(byte) form_field_idx#19 ) + to:form_control::@12 +form_control::@27: scope:[form_control] from form_control::@10 + (byte) keyboard_modifiers#59 ← phi( form_control::@10/(byte) keyboard_modifiers#69 ) + (byte) keyboard_events_size#59 ← phi( form_control::@10/(byte) keyboard_events_size#72 ) + (signed byte) form_cursor_count#33 ← phi( form_control::@10/(signed byte) form_cursor_count#39 ) + (byte*) form_control::field#10 ← phi( form_control::@10/(byte*) form_control::field#14 ) + (byte) form_field_idx#23 ← phi( form_control::@10/(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#39 ← phi( @21/(byte) form_fields_cnt#0 ) - (byte) key_right_debounce#24 ← phi( @21/(byte) key_right_debounce#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#45 ← phi( @21/(byte*) print_char_cursor#53 ) - (byte*) print_line_cursor#43 ← phi( @21/(byte*) print_line_cursor#50 ) - (byte*) print_screen#24 ← phi( @21/(byte*) print_screen#30 ) + to:form_control::@12 +@28: scope:[] from @24 + (byte) form_fields_cnt#38 ← phi( @24/(byte) form_fields_cnt#0 ) + (byte) form_field_idx#35 ← phi( @24/(byte) form_field_idx#4 ) + (byte) keyboard_modifiers#43 ← phi( @24/(byte) keyboard_modifiers#60 ) + (byte) keyboard_events_size#42 ← phi( @24/(byte) keyboard_events_size#60 ) + (signed byte) form_cursor_count#25 ← phi( @24/(signed byte) form_cursor_count#4 ) + (byte*) print_char_cursor#45 ← phi( @24/(byte*) print_char_cursor#53 ) + (byte*) print_line_cursor#43 ← phi( @24/(byte*) print_line_cursor#50 ) + (byte*) print_screen#24 ← phi( @24/(byte*) print_screen#30 ) call main param-assignment - to:@26 -@26: scope:[] from @25 - (byte) key_right_debounce#14 ← phi( @25/(byte) key_right_debounce#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#36 ← phi( @25/(byte*) print_char_cursor#11 ) - (byte*) print_line_cursor#35 ← phi( @25/(byte*) print_line_cursor#10 ) - (byte*) print_screen#18 ← phi( @25/(byte*) print_screen#4 ) + to:@29 +@29: scope:[] from @28 + (byte) form_field_idx#24 ← phi( @28/(byte) form_field_idx#1 ) + (byte) keyboard_modifiers#27 ← phi( @28/(byte) keyboard_modifiers#8 ) + (byte) keyboard_events_size#28 ← phi( @28/(byte) keyboard_events_size#7 ) + (signed byte) form_cursor_count#17 ← phi( @28/(signed byte) form_cursor_count#1 ) + (byte*) print_char_cursor#36 ← phi( @28/(byte*) print_char_cursor#11 ) + (byte*) print_line_cursor#35 ← phi( @28/(byte*) print_line_cursor#10 ) + (byte*) print_screen#18 ← phi( @28/(byte*) print_screen#4 ) (byte*) print_screen#8 ← (byte*) print_screen#18 (byte*) print_line_cursor#18 ← (byte*) print_line_cursor#35 (byte*) print_char_cursor#19 ← (byte*) print_char_cursor#36 (signed byte) form_cursor_count#9 ← (signed byte) form_cursor_count#17 - (byte) key_down_debounce#7 ← (byte) key_down_debounce#14 + (byte) keyboard_events_size#13 ← (byte) keyboard_events_size#28 + (byte) keyboard_modifiers#13 ← (byte) keyboard_modifiers#27 (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 +@end: scope:[] from @29 SYMBOL TABLE SSA -(string~) $0 +(byte~) $0 (string~) $1 (string~) $10 (string~) $11 @@ -3871,31 +4484,32 @@ SYMBOL TABLE SSA (string~) $15 (string~) $16 (string~) $17 -(signed word/signed byte/signed dword~) $18 -(const string) $19 = (string) "0123456789abcdef" +(string~) $18 +(signed word/signed byte/signed dword~) $19 (string~) $2 -(const string) $20 = (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" -(const string) $21 = (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +(const string) $20 = (string) "0123456789abcdef" +(const string) $21 = (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@" (const string) $22 = (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (const string) $23 = (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (const string) $24 = (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" (const string) $25 = (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" -(const string) $26 = (string) " nnnnnnn ooooooooo @" -(const string) $27 = (string) " nnnnnnn nnnnnnnn ooooooooo @" +(const string) $26 = (string) " nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +(const string) $27 = (string) " nnnnnnn ooooooooo @" (const string) $28 = (string) " nnnnnnn nnnnnnnn ooooooooo @" -(const string) $29 = (string) "@" +(const string) $29 = (string) " nnnnnnn nnnnnnnn ooooooooo @" (string~) $3 -(const string) $30 = (string) " DTV GfxExplorer MODE 0 8bpp pixel cell @" -(const string) $31 = (string) " CONTROL PLANE A PLANE B VIC II @" -(const string) $32 = (string) " bmm 0 patt p0 patt p0 screen s0 @" -(const string) $33 = (string) " mcm 0 start 00 start 00 gfx g0 @" -(const string) $34 = (string) " ecm 0 step 00 step 00 colors c0 @" -(const string) $35 = (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" -(const string) $36 = (string) " line 0 bgcol1 00 @" -(const string) $37 = (string) " colof 0 borof 0 bgcol2 00 @" -(const string) $38 = (string) " chunk 0 overs 0 bgcol3 00 @" -(const string) $39 = (string) "@" +(const string) $30 = (string) "@" +(const string) $31 = (string) " DTV GfxExplorer MODE 0 8bpp pixel cell @" +(const string) $32 = (string) " CONTROL PLANE A PLANE B VIC II @" +(const string) $33 = (string) " bmm 0 patt p0 patt p0 screen s0 @" +(const string) $34 = (string) " mcm 0 start 00 start 00 gfx g0 @" +(const string) $35 = (string) " ecm 0 step 00 step 00 colors c0 @" +(const string) $36 = (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" +(const string) $37 = (string) " line 0 bgcol1 00 @" +(const string) $38 = (string) " colof 0 borof 0 bgcol2 00 @" +(const string) $39 = (string) " chunk 0 overs 0 bgcol3 00 @" (string~) $4 +(const string) $40 = (string) "@" (string~) $5 (string~) $6 (string~) $7 @@ -3904,10 +4518,11 @@ SYMBOL TABLE SSA (label) @1 (label) @11 (label) @15 -(label) @20 -(label) @21 -(label) @25 -(label) @26 +(label) @19 +(label) @23 +(label) @24 +(label) @28 +(label) @29 (label) @begin (label) @end (byte*) BGCOL @@ -3944,10 +4559,26 @@ SYMBOL TABLE SSA (byte[16]) DTV_PALETTE_DEFAULT#0 (signed byte) FORM_CURSOR_BLINK (signed byte) FORM_CURSOR_BLINK#0 +(byte) KEY_COMMODORE +(byte) KEY_COMMODORE#0 (byte) KEY_CRSR_DOWN (byte) KEY_CRSR_DOWN#0 (byte) KEY_CRSR_RIGHT (byte) KEY_CRSR_RIGHT#0 +(byte) KEY_CTRL +(byte) KEY_CTRL#0 +(byte) KEY_LSHIFT +(byte) KEY_LSHIFT#0 +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_COMMODORE#0 +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_CTRL#0 +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_LSHIFT#0 +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_RSHIFT#0 +(byte) KEY_MODIFIER_SHIFT +(byte) KEY_MODIFIER_SHIFT#0 (byte) KEY_RSHIFT (byte) KEY_RSHIFT#0 (byte[]) MENU_COLS @@ -3973,37 +4604,32 @@ SYMBOL TABLE SSA (boolean~) form_control::$1 (boolean~) form_control::$10 (boolean~) form_control::$11 -(boolean~) form_control::$12 +(byte~) form_control::$12 (byte~) form_control::$13 -(byte~) form_control::$14 +(boolean~) form_control::$14 (boolean~) form_control::$15 (boolean~) form_control::$16 (boolean~) form_control::$17 (boolean~) form_control::$18 (boolean~) form_control::$19 (boolean~) form_control::$2 -(boolean~) form_control::$20 -(byte/signed word/word/dword/signed dword~) form_control::$21 -(signed word/signed byte/signed dword~) form_control::$22 -(byte~) form_control::$23 -(boolean~) form_control::$24 +(byte/signed word/word/dword/signed dword~) form_control::$20 +(signed word/signed byte/signed dword~) form_control::$21 +(boolean~) form_control::$22 +(boolean~) form_control::$23 +(byte~) form_control::$24 (boolean~) form_control::$25 (boolean~) form_control::$26 (boolean~) form_control::$27 -(byte~) form_control::$28 +(boolean~) form_control::$28 (boolean~) form_control::$29 (signed word/signed byte/signed dword~) form_control::$3 (boolean~) form_control::$30 -(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 (byte~) form_control::$7 -(byte~) form_control::$8 -(boolean~) form_control::$9 +(byte~) form_control::$9 (label) form_control::@1 (label) form_control::@10 (label) form_control::@11 @@ -4011,25 +4637,19 @@ 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::@23 (label) form_control::@24 -(label) form_control::@26 +(label) form_control::@25 (label) form_control::@27 (label) form_control::@28 (label) form_control::@29 (label) form_control::@3 -(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::@30 (label) form_control::@4 (label) form_control::@5 (label) form_control::@6 @@ -4048,11 +4668,7 @@ 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 @@ -4060,12 +4676,9 @@ SYMBOL TABLE SSA (byte*) form_control::field#7 (byte*) form_control::field#8 (byte*) form_control::field#9 -(byte) form_control::key_down -(byte) form_control::key_down#0 -(byte) form_control::key_down#1 -(byte) form_control::key_right -(byte) form_control::key_right#0 -(byte) form_control::key_right#1 +(byte) form_control::key_event +(byte) form_control::key_event#0 +(byte) form_control::key_event#1 (signed byte) form_cursor_count (signed byte) form_cursor_count#0 (signed byte) form_cursor_count#1 @@ -4117,11 +4730,6 @@ 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#58 (signed byte) form_cursor_count#6 (signed byte) form_cursor_count#7 (signed byte) form_cursor_count#8 @@ -4186,12 +4794,6 @@ SYMBOL TABLE SSA (byte) form_field_idx#6 (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#67 (byte) form_field_idx#7 (byte) form_field_idx#8 (byte) form_field_idx#9 @@ -4253,7 +4855,6 @@ SYMBOL TABLE SSA (byte) form_fields_cnt#36 (byte) form_fields_cnt#37 (byte) form_fields_cnt#38 -(byte) form_fields_cnt#39 (byte) form_fields_cnt#4 (byte) form_fields_cnt#5 (byte) form_fields_cnt#6 @@ -4303,172 +4904,266 @@ SYMBOL TABLE SSA (byte) form_set_screen::y#0 (byte) form_set_screen::y#1 (byte) form_set_screen::y#2 -(byte) key_down_debounce -(byte) key_down_debounce#0 -(byte) key_down_debounce#1 -(byte) key_down_debounce#10 -(byte) key_down_debounce#11 -(byte) key_down_debounce#12 -(byte) key_down_debounce#13 -(byte) key_down_debounce#14 -(byte) key_down_debounce#15 -(byte) key_down_debounce#16 -(byte) key_down_debounce#17 -(byte) key_down_debounce#18 -(byte) key_down_debounce#19 -(byte) key_down_debounce#2 -(byte) key_down_debounce#20 -(byte) key_down_debounce#21 -(byte) key_down_debounce#22 -(byte) key_down_debounce#23 -(byte) key_down_debounce#24 -(byte) key_down_debounce#25 -(byte) key_down_debounce#26 -(byte) key_down_debounce#27 -(byte) key_down_debounce#28 -(byte) key_down_debounce#29 -(byte) key_down_debounce#3 -(byte) key_down_debounce#30 -(byte) key_down_debounce#31 -(byte) key_down_debounce#32 -(byte) key_down_debounce#33 -(byte) key_down_debounce#34 -(byte) key_down_debounce#35 -(byte) key_down_debounce#36 -(byte) key_down_debounce#37 -(byte) key_down_debounce#38 -(byte) key_down_debounce#39 -(byte) key_down_debounce#4 -(byte) key_down_debounce#40 -(byte) key_down_debounce#41 -(byte) key_down_debounce#42 -(byte) key_down_debounce#43 -(byte) key_down_debounce#44 -(byte) key_down_debounce#45 -(byte) key_down_debounce#46 -(byte) key_down_debounce#47 -(byte) key_down_debounce#48 -(byte) key_down_debounce#49 -(byte) key_down_debounce#5 -(byte) key_down_debounce#50 -(byte) key_down_debounce#51 -(byte) key_down_debounce#52 -(byte) key_down_debounce#53 -(byte) key_down_debounce#54 -(byte) key_down_debounce#55 -(byte) key_down_debounce#56 -(byte) key_down_debounce#57 -(byte) key_down_debounce#58 -(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#65 -(byte) key_down_debounce#7 -(byte) key_down_debounce#8 -(byte) key_down_debounce#9 -(byte) key_right_debounce -(byte) key_right_debounce#0 -(byte) key_right_debounce#1 -(byte) key_right_debounce#10 -(byte) key_right_debounce#11 -(byte) key_right_debounce#12 -(byte) key_right_debounce#13 -(byte) key_right_debounce#14 -(byte) key_right_debounce#15 -(byte) key_right_debounce#16 -(byte) key_right_debounce#17 -(byte) key_right_debounce#18 -(byte) key_right_debounce#19 -(byte) key_right_debounce#2 -(byte) key_right_debounce#20 -(byte) key_right_debounce#21 -(byte) key_right_debounce#22 -(byte) key_right_debounce#23 -(byte) key_right_debounce#24 -(byte) key_right_debounce#25 -(byte) key_right_debounce#26 -(byte) key_right_debounce#27 -(byte) key_right_debounce#28 -(byte) key_right_debounce#29 -(byte) key_right_debounce#3 -(byte) key_right_debounce#30 -(byte) key_right_debounce#31 -(byte) key_right_debounce#32 -(byte) key_right_debounce#33 -(byte) key_right_debounce#34 -(byte) key_right_debounce#35 -(byte) key_right_debounce#36 -(byte) key_right_debounce#37 -(byte) key_right_debounce#38 -(byte) key_right_debounce#39 -(byte) key_right_debounce#4 -(byte) key_right_debounce#40 -(byte) key_right_debounce#41 -(byte) key_right_debounce#42 -(byte) key_right_debounce#43 -(byte) key_right_debounce#44 -(byte) key_right_debounce#45 -(byte) key_right_debounce#46 -(byte) key_right_debounce#47 -(byte) key_right_debounce#48 -(byte) key_right_debounce#49 -(byte) key_right_debounce#5 -(byte) key_right_debounce#50 -(byte) key_right_debounce#51 -(byte) key_right_debounce#52 -(byte) key_right_debounce#53 -(byte) key_right_debounce#54 -(byte) key_right_debounce#55 -(byte) key_right_debounce#56 -(byte) key_right_debounce#57 -(byte) key_right_debounce#58 -(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#65 -(byte) key_right_debounce#7 -(byte) key_right_debounce#8 -(byte) key_right_debounce#9 -(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) -(byte~) keyboard_key_pressed::$0 -(byte~) keyboard_key_pressed::$1 -(byte~) keyboard_key_pressed::$2 -(byte~) keyboard_key_pressed::$3 -(label) keyboard_key_pressed::@2 -(label) keyboard_key_pressed::@return -(byte) keyboard_key_pressed::colidx -(byte) keyboard_key_pressed::colidx#0 -(byte) keyboard_key_pressed::colidx#1 -(byte) keyboard_key_pressed::key -(byte) keyboard_key_pressed::key#0 -(byte) keyboard_key_pressed::key#1 -(byte) keyboard_key_pressed::key#2 -(byte) keyboard_key_pressed::key#3 -(byte) keyboard_key_pressed::key#4 -(byte) keyboard_key_pressed::return -(byte) keyboard_key_pressed::return#0 -(byte) keyboard_key_pressed::return#1 -(byte) keyboard_key_pressed::return#10 -(byte) keyboard_key_pressed::return#2 -(byte) keyboard_key_pressed::return#3 -(byte) keyboard_key_pressed::return#4 -(byte) keyboard_key_pressed::return#5 -(byte) keyboard_key_pressed::return#6 -(byte) keyboard_key_pressed::return#7 -(byte) keyboard_key_pressed::return#8 -(byte) keyboard_key_pressed::return#9 -(byte) keyboard_key_pressed::rowidx -(byte) keyboard_key_pressed::rowidx#0 -(byte[]) keyboard_matrix_col_bitmask -(byte[]) keyboard_matrix_col_bitmask#0 +(byte()) keyboard_event_get() +(boolean~) keyboard_event_get::$0 +(boolean~) keyboard_event_get::$1 +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@3 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte) keyboard_event_get::return#0 +(byte) keyboard_event_get::return#1 +(byte) keyboard_event_get::return#2 +(byte) keyboard_event_get::return#3 +(byte) keyboard_event_get::return#4 +(byte) keyboard_event_get::return#5 +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 +(byte~) keyboard_event_pressed::$1 +(byte~) keyboard_event_pressed::$2 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::keycode#0 +(byte) keyboard_event_pressed::keycode#1 +(byte) keyboard_event_pressed::keycode#2 +(byte) keyboard_event_pressed::keycode#3 +(byte) keyboard_event_pressed::keycode#4 +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::return#0 +(byte) keyboard_event_pressed::return#1 +(byte) keyboard_event_pressed::return#10 +(byte) keyboard_event_pressed::return#2 +(byte) keyboard_event_pressed::return#3 +(byte) keyboard_event_pressed::return#4 +(byte) keyboard_event_pressed::return#5 +(byte) keyboard_event_pressed::return#6 +(byte) keyboard_event_pressed::return#7 +(byte) keyboard_event_pressed::return#8 +(byte) keyboard_event_pressed::return#9 +(byte) keyboard_event_pressed::row_bits +(byte) keyboard_event_pressed::row_bits#0 +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 +(boolean~) keyboard_event_scan::$1 +(boolean~) keyboard_event_scan::$10 +(boolean~) keyboard_event_scan::$11 +(byte/word/dword~) keyboard_event_scan::$12 +(boolean~) keyboard_event_scan::$13 +(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +(boolean~) keyboard_event_scan::$15 +(byte~) keyboard_event_scan::$16 +(boolean~) keyboard_event_scan::$17 +(boolean~) keyboard_event_scan::$18 +(byte~) keyboard_event_scan::$19 +(boolean~) keyboard_event_scan::$2 +(byte~) keyboard_event_scan::$20 +(boolean~) keyboard_event_scan::$21 +(boolean~) keyboard_event_scan::$22 +(byte~) keyboard_event_scan::$23 +(byte~) keyboard_event_scan::$24 +(boolean~) keyboard_event_scan::$25 +(boolean~) keyboard_event_scan::$26 +(byte~) keyboard_event_scan::$27 +(byte~) keyboard_event_scan::$28 +(boolean~) keyboard_event_scan::$29 +(byte~) keyboard_event_scan::$3 +(boolean~) keyboard_event_scan::$30 +(byte~) keyboard_event_scan::$31 +(byte~) keyboard_event_scan::$4 +(boolean~) keyboard_event_scan::$5 +(boolean~) keyboard_event_scan::$6 +(boolean~) keyboard_event_scan::$7 +(boolean~) keyboard_event_scan::$8 +(byte~) keyboard_event_scan::$9 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@13 +(label) keyboard_event_scan::@14 +(label) keyboard_event_scan::@15 +(label) keyboard_event_scan::@16 +(label) keyboard_event_scan::@18 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@20 +(label) keyboard_event_scan::@21 +(label) keyboard_event_scan::@22 +(label) keyboard_event_scan::@23 +(label) keyboard_event_scan::@24 +(label) keyboard_event_scan::@25 +(label) keyboard_event_scan::@26 +(label) keyboard_event_scan::@27 +(label) keyboard_event_scan::@28 +(label) keyboard_event_scan::@29 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::col#0 +(byte) keyboard_event_scan::col#1 +(byte) keyboard_event_scan::col#2 +(byte) keyboard_event_scan::col#3 +(byte) keyboard_event_scan::col#4 +(byte) keyboard_event_scan::col#5 +(byte) keyboard_event_scan::col#6 +(byte) keyboard_event_scan::col#7 +(byte) keyboard_event_scan::col#8 +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::event_type#0 +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::keycode#0 +(byte) keyboard_event_scan::keycode#1 +(byte) keyboard_event_scan::keycode#10 +(byte) keyboard_event_scan::keycode#11 +(byte) keyboard_event_scan::keycode#12 +(byte) keyboard_event_scan::keycode#13 +(byte) keyboard_event_scan::keycode#14 +(byte) keyboard_event_scan::keycode#15 +(byte) keyboard_event_scan::keycode#2 +(byte) keyboard_event_scan::keycode#3 +(byte) keyboard_event_scan::keycode#4 +(byte) keyboard_event_scan::keycode#5 +(byte) keyboard_event_scan::keycode#6 +(byte) keyboard_event_scan::keycode#7 +(byte) keyboard_event_scan::keycode#8 +(byte) keyboard_event_scan::keycode#9 +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row#0 +(byte) keyboard_event_scan::row#1 +(byte) keyboard_event_scan::row#10 +(byte) keyboard_event_scan::row#11 +(byte) keyboard_event_scan::row#12 +(byte) keyboard_event_scan::row#13 +(byte) keyboard_event_scan::row#14 +(byte) keyboard_event_scan::row#2 +(byte) keyboard_event_scan::row#3 +(byte) keyboard_event_scan::row#4 +(byte) keyboard_event_scan::row#5 +(byte) keyboard_event_scan::row#6 +(byte) keyboard_event_scan::row#7 +(byte) keyboard_event_scan::row#8 +(byte) keyboard_event_scan::row#9 +(byte) keyboard_event_scan::row_scan +(byte) keyboard_event_scan::row_scan#0 +(byte) keyboard_event_scan::row_scan#1 +(byte) keyboard_event_scan::row_scan#2 +(byte) keyboard_event_scan::row_scan#3 +(byte) keyboard_event_scan::row_scan#4 +(byte) keyboard_event_scan::row_scan#5 +(byte) keyboard_event_scan::row_scan#6 +(byte) keyboard_event_scan::row_scan#7 +(byte) keyboard_event_scan::row_scan#8 +(byte) keyboard_event_scan::row_scan#9 +(byte[8]) keyboard_events +(byte[8]) keyboard_events#0 +(byte) keyboard_events_size +(byte) keyboard_events_size#0 +(byte) keyboard_events_size#1 +(byte) keyboard_events_size#10 +(byte) keyboard_events_size#100 +(byte) keyboard_events_size#11 +(byte) keyboard_events_size#12 +(byte) keyboard_events_size#13 +(byte) keyboard_events_size#14 +(byte) keyboard_events_size#15 +(byte) keyboard_events_size#16 +(byte) keyboard_events_size#17 +(byte) keyboard_events_size#18 +(byte) keyboard_events_size#19 +(byte) keyboard_events_size#2 +(byte) keyboard_events_size#20 +(byte) keyboard_events_size#21 +(byte) keyboard_events_size#22 +(byte) keyboard_events_size#23 +(byte) keyboard_events_size#24 +(byte) keyboard_events_size#25 +(byte) keyboard_events_size#26 +(byte) keyboard_events_size#27 +(byte) keyboard_events_size#28 +(byte) keyboard_events_size#29 +(byte) keyboard_events_size#3 +(byte) keyboard_events_size#30 +(byte) keyboard_events_size#31 +(byte) keyboard_events_size#32 +(byte) keyboard_events_size#33 +(byte) keyboard_events_size#34 +(byte) keyboard_events_size#35 +(byte) keyboard_events_size#36 +(byte) keyboard_events_size#37 +(byte) keyboard_events_size#38 +(byte) keyboard_events_size#39 +(byte) keyboard_events_size#4 +(byte) keyboard_events_size#40 +(byte) keyboard_events_size#41 +(byte) keyboard_events_size#42 +(byte) keyboard_events_size#43 +(byte) keyboard_events_size#44 +(byte) keyboard_events_size#45 +(byte) keyboard_events_size#46 +(byte) keyboard_events_size#47 +(byte) keyboard_events_size#48 +(byte) keyboard_events_size#49 +(byte) keyboard_events_size#5 +(byte) keyboard_events_size#50 +(byte) keyboard_events_size#51 +(byte) keyboard_events_size#52 +(byte) keyboard_events_size#53 +(byte) keyboard_events_size#54 +(byte) keyboard_events_size#55 +(byte) keyboard_events_size#56 +(byte) keyboard_events_size#57 +(byte) keyboard_events_size#58 +(byte) keyboard_events_size#59 +(byte) keyboard_events_size#6 +(byte) keyboard_events_size#60 +(byte) keyboard_events_size#61 +(byte) keyboard_events_size#62 +(byte) keyboard_events_size#63 +(byte) keyboard_events_size#64 +(byte) keyboard_events_size#65 +(byte) keyboard_events_size#66 +(byte) keyboard_events_size#67 +(byte) keyboard_events_size#68 +(byte) keyboard_events_size#69 +(byte) keyboard_events_size#7 +(byte) keyboard_events_size#70 +(byte) keyboard_events_size#71 +(byte) keyboard_events_size#72 +(byte) keyboard_events_size#73 +(byte) keyboard_events_size#74 +(byte) keyboard_events_size#75 +(byte) keyboard_events_size#76 +(byte) keyboard_events_size#77 +(byte) keyboard_events_size#78 +(byte) keyboard_events_size#79 +(byte) keyboard_events_size#8 +(byte) keyboard_events_size#80 +(byte) keyboard_events_size#81 +(byte) keyboard_events_size#82 +(byte) keyboard_events_size#83 +(byte) keyboard_events_size#84 +(byte) keyboard_events_size#85 +(byte) keyboard_events_size#86 +(byte) keyboard_events_size#87 +(byte) keyboard_events_size#88 +(byte) keyboard_events_size#89 +(byte) keyboard_events_size#9 +(byte) keyboard_events_size#90 +(byte) keyboard_events_size#91 +(byte) keyboard_events_size#92 +(byte) keyboard_events_size#93 +(byte) keyboard_events_size#94 +(byte) keyboard_events_size#95 +(byte) keyboard_events_size#96 +(byte) keyboard_events_size#97 +(byte) keyboard_events_size#98 +(byte) keyboard_events_size#99 +(byte[8]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask#0 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -4485,6 +5180,91 @@ SYMBOL TABLE SSA (byte) keyboard_matrix_read::rowid#1 (byte[8]) keyboard_matrix_row_bitmask (byte[8]) keyboard_matrix_row_bitmask#0 +(byte) keyboard_modifiers +(byte) keyboard_modifiers#0 +(byte) keyboard_modifiers#1 +(byte) keyboard_modifiers#10 +(byte) keyboard_modifiers#11 +(byte) keyboard_modifiers#12 +(byte) keyboard_modifiers#13 +(byte) keyboard_modifiers#14 +(byte) keyboard_modifiers#15 +(byte) keyboard_modifiers#16 +(byte) keyboard_modifiers#17 +(byte) keyboard_modifiers#18 +(byte) keyboard_modifiers#19 +(byte) keyboard_modifiers#2 +(byte) keyboard_modifiers#20 +(byte) keyboard_modifiers#21 +(byte) keyboard_modifiers#22 +(byte) keyboard_modifiers#23 +(byte) keyboard_modifiers#24 +(byte) keyboard_modifiers#25 +(byte) keyboard_modifiers#26 +(byte) keyboard_modifiers#27 +(byte) keyboard_modifiers#28 +(byte) keyboard_modifiers#29 +(byte) keyboard_modifiers#3 +(byte) keyboard_modifiers#30 +(byte) keyboard_modifiers#31 +(byte) keyboard_modifiers#32 +(byte) keyboard_modifiers#33 +(byte) keyboard_modifiers#34 +(byte) keyboard_modifiers#35 +(byte) keyboard_modifiers#36 +(byte) keyboard_modifiers#37 +(byte) keyboard_modifiers#38 +(byte) keyboard_modifiers#39 +(byte) keyboard_modifiers#4 +(byte) keyboard_modifiers#40 +(byte) keyboard_modifiers#41 +(byte) keyboard_modifiers#42 +(byte) keyboard_modifiers#43 +(byte) keyboard_modifiers#44 +(byte) keyboard_modifiers#45 +(byte) keyboard_modifiers#46 +(byte) keyboard_modifiers#47 +(byte) keyboard_modifiers#48 +(byte) keyboard_modifiers#49 +(byte) keyboard_modifiers#5 +(byte) keyboard_modifiers#50 +(byte) keyboard_modifiers#51 +(byte) keyboard_modifiers#52 +(byte) keyboard_modifiers#53 +(byte) keyboard_modifiers#54 +(byte) keyboard_modifiers#55 +(byte) keyboard_modifiers#56 +(byte) keyboard_modifiers#57 +(byte) keyboard_modifiers#58 +(byte) keyboard_modifiers#59 +(byte) keyboard_modifiers#6 +(byte) keyboard_modifiers#60 +(byte) keyboard_modifiers#61 +(byte) keyboard_modifiers#62 +(byte) keyboard_modifiers#63 +(byte) keyboard_modifiers#64 +(byte) keyboard_modifiers#65 +(byte) keyboard_modifiers#66 +(byte) keyboard_modifiers#67 +(byte) keyboard_modifiers#68 +(byte) keyboard_modifiers#69 +(byte) keyboard_modifiers#7 +(byte) keyboard_modifiers#70 +(byte) keyboard_modifiers#71 +(byte) keyboard_modifiers#72 +(byte) keyboard_modifiers#73 +(byte) keyboard_modifiers#74 +(byte) keyboard_modifiers#75 +(byte) keyboard_modifiers#76 +(byte) keyboard_modifiers#77 +(byte) keyboard_modifiers#78 +(byte) keyboard_modifiers#79 +(byte) keyboard_modifiers#8 +(byte) keyboard_modifiers#80 +(byte) keyboard_modifiers#81 +(byte) keyboard_modifiers#9 +(byte[8]) keyboard_scan_values +(byte[8]) keyboard_scan_values#0 (void()) main() (label) main::@1 (label) main::@2 @@ -4602,6 +5382,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#60 (byte*) print_char_cursor#61 (byte*) print_char_cursor#62 +(byte*) print_char_cursor#63 (byte*) print_char_cursor#7 (byte*) print_char_cursor#8 (byte*) print_char_cursor#9 @@ -4678,6 +5459,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#60 (byte*) print_line_cursor#61 (byte*) print_line_cursor#62 +(byte*) print_line_cursor#63 (byte*) print_line_cursor#7 (byte*) print_line_cursor#8 (byte*) print_line_cursor#9 @@ -4725,6 +5507,7 @@ SYMBOL TABLE SSA (byte*) print_screen#4 (byte*) print_screen#40 (byte*) print_screen#41 +(byte*) print_screen#42 (byte*) print_screen#5 (byte*) print_screen#6 (byte*) print_screen#7 @@ -4768,18 +5551,25 @@ SYMBOL TABLE SSA OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (boolean~) print_str_lines::$2 ← (byte) print_str_lines::ch#0 == (byte) '@' from (boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch#0 != (byte) '@' +Inversing boolean not (boolean~) keyboard_event_scan::$2 ← (byte) keyboard_event_scan::row_scan#0 == *((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#3) from (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan#0 != *((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#3) +Inversing boolean not (boolean~) keyboard_event_scan::$6 ← (byte~) keyboard_event_scan::$4 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) keyboard_event_scan::$8 ← (byte) keyboard_events_size#14 == (byte/signed byte/word/signed word/dword/signed dword) 8 from (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size#14 != (byte/signed byte/word/signed word/dword/signed dword) 8 +Inversing boolean not (boolean~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::event_type#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) keyboard_event_scan::$18 ← (byte~) keyboard_event_scan::$16 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) keyboard_event_scan::$22 ← (byte~) keyboard_event_scan::$20 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) keyboard_event_scan::$26 ← (byte~) keyboard_event_scan::$24 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) keyboard_event_scan::$30 ← (byte~) keyboard_event_scan::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) keyboard_event_get::$1 ← (byte) keyboard_events_size#18 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size#18 == (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) form_control::$2 ← (signed byte) form_cursor_count#5 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$1 ← (signed byte) form_cursor_count#5 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) form_control::$5 ← (signed byte) form_cursor_count#15 >= (signed word/signed byte/signed dword~) form_control::$3 from (boolean~) form_control::$4 ← (signed byte) form_cursor_count#15 < (signed word/signed byte/signed dword~) form_control::$3 -Inversing boolean not (boolean~) form_control::$10 ← (byte) form_control::key_down#0 == (byte) key_down_debounce#12 from (boolean~) form_control::$9 ← (byte) form_control::key_down#0 != (byte) key_down_debounce#12 -Inversing boolean not (boolean~) form_control::$25 ← (byte) form_control::key_right#0 == (byte) key_right_debounce#12 from (boolean~) form_control::$24 ← (byte) form_control::key_right#0 != (byte) key_right_debounce#12 -Inversing boolean not (boolean~) form_control::$12 ← (byte) form_control::key_down#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$11 ← (byte) form_control::key_down#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (boolean~) form_control::$16 ← (byte~) form_control::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$15 ← (byte~) form_control::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (boolean~) form_control::$20 ← (byte) form_field_idx#5 != (byte/word/signed word/dword/signed dword) 255 from (boolean~) form_control::$19 ← (byte) form_field_idx#5 == (byte/word/signed word/dword/signed dword) 255 -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) +Inversing boolean not (boolean~) form_control::$11 ← (byte) form_control::key_event#0 != (byte) KEY_CRSR_DOWN#0 from (boolean~) form_control::$10 ← (byte) form_control::key_event#0 == (byte) KEY_CRSR_DOWN#0 +Inversing boolean not (boolean~) form_control::$23 ← (byte) form_control::key_event#1 != (byte) KEY_CRSR_RIGHT#0 from (boolean~) form_control::$22 ← (byte) form_control::key_event#1 == (byte) KEY_CRSR_RIGHT#0 +Inversing boolean not (boolean~) form_control::$15 ← (byte~) form_control::$13 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$14 ← (byte~) form_control::$13 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$19 ← (byte) form_field_idx#5 != (byte/word/signed word/dword/signed dword) 255 from (boolean~) form_control::$18 ← (byte) form_field_idx#5 == (byte/word/signed word/dword/signed dword) 255 +Inversing boolean not (boolean~) form_control::$17 ← (byte) form_field_idx#6 != (byte) form_fields_cnt#2 from (boolean~) form_control::$16 ← (byte) form_field_idx#6 == (byte) form_fields_cnt#2 +Inversing boolean not (boolean~) form_control::$26 ← (byte~) form_control::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$25 ← (byte~) form_control::$24 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$30 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) != (byte/word/signed word/dword/signed dword) 255 from (boolean~) form_control::$29 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) == (byte/word/signed word/dword/signed dword) 255 +Inversing boolean not (boolean~) form_control::$28 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) <= *((byte[]) form_fields_max#0 + (byte) form_field_idx#20) from (boolean~) form_control::$27 ← *((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#5 print_str_lines::str#1 Not aliassing across scopes: print_char_cursor#46 print_char_cursor#13 @@ -4793,33 +5583,47 @@ Not aliassing across scopes: print_cls::sc#0 print_screen#9 Not aliassing across scopes: print_set_screen::screen#2 print_set_screen::screen#1 Not aliassing across scopes: print_screen#1 print_set_screen::screen#2 Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 -Not aliassing across scopes: keyboard_key_pressed::key#4 keyboard_key_pressed::key#2 -Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 +Not aliassing across scopes: keyboard_events_size#81 keyboard_events_size#38 +Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_event_scan::row#2 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#1 -Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#4 +Not aliassing across scopes: keyboard_event_scan::$0 keyboard_matrix_read::return#4 +Not aliassing across scopes: keyboard_event_pressed::keycode#0 KEY_LSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#0 keyboard_event_pressed::return#5 +Not aliassing across scopes: keyboard_event_scan::$16 keyboard_event_pressed::return#6 +Not aliassing across scopes: keyboard_event_pressed::keycode#1 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#1 keyboard_event_pressed::return#5 +Not aliassing across scopes: keyboard_event_scan::$20 keyboard_event_pressed::return#7 +Not aliassing across scopes: keyboard_event_pressed::keycode#2 KEY_CTRL#0 +Not aliassing across scopes: keyboard_event_pressed::return#2 keyboard_event_pressed::return#5 +Not aliassing across scopes: keyboard_event_scan::$24 keyboard_event_pressed::return#8 +Not aliassing across scopes: keyboard_event_pressed::keycode#3 KEY_COMMODORE#0 +Not aliassing across scopes: keyboard_event_pressed::return#3 keyboard_event_pressed::return#5 +Not aliassing across scopes: keyboard_event_scan::$28 keyboard_event_pressed::return#9 +Not aliassing across scopes: keyboard_event_pressed::keycode#4 keyboard_event_pressed::keycode#2 +Not aliassing across scopes: keyboard_events_size#18 keyboard_events_size#10 Not aliassing across scopes: print_screen#25 print_screen#24 Not aliassing across scopes: print_line_cursor#46 print_line_cursor#43 Not aliassing across scopes: print_char_cursor#49 print_char_cursor#45 -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#37 form_field_idx#36 -Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 -Not aliassing across scopes: form_fields_cnt#37 form_fields_cnt#39 +Not aliassing across scopes: form_cursor_count#26 form_cursor_count#25 +Not aliassing across scopes: keyboard_events_size#46 keyboard_events_size#42 +Not aliassing across scopes: keyboard_modifiers#47 keyboard_modifiers#43 +Not aliassing across scopes: form_field_idx#36 form_field_idx#35 +Not aliassing across scopes: form_fields_cnt#36 form_fields_cnt#38 Not aliassing across scopes: print_screen#13 print_screen#7 Not aliassing across scopes: print_line_cursor#26 print_line_cursor#17 Not aliassing across scopes: print_char_cursor#27 print_char_cursor#18 Not aliassing across scopes: form_cursor_count#10 form_cursor_count#3 -Not aliassing across scopes: key_down_debounce#8 key_down_debounce#3 +Not aliassing across scopes: keyboard_events_size#21 keyboard_events_size#9 +Not aliassing across scopes: keyboard_modifiers#19 keyboard_modifiers#10 Not aliassing across scopes: form_field_idx#11 form_field_idx#3 -Not aliassing across scopes: key_right_debounce#8 key_right_debounce#3 Not aliassing across scopes: print_screen#31 print_screen#19 Not aliassing across scopes: print_line_cursor#53 print_line_cursor#39 Not aliassing across scopes: print_char_cursor#54 print_char_cursor#41 -Not aliassing across scopes: form_cursor_count#58 form_cursor_count#18 -Not aliassing across scopes: key_down_debounce#65 key_down_debounce#15 -Not aliassing across scopes: form_field_idx#67 form_field_idx#25 -Not aliassing across scopes: key_right_debounce#65 key_right_debounce#15 -Not aliassing across scopes: form_fields_cnt#29 form_fields_cnt#32 +Not aliassing across scopes: form_cursor_count#53 form_cursor_count#18 +Not aliassing across scopes: keyboard_events_size#100 keyboard_events_size#34 +Not aliassing across scopes: keyboard_modifiers#81 keyboard_modifiers#33 +Not aliassing across scopes: form_field_idx#61 form_field_idx#25 +Not aliassing across scopes: form_fields_cnt#30 form_fields_cnt#32 Not aliassing across scopes: print_set_screen::screen#0 COLS#0 Not aliassing across scopes: print_screen#15 print_screen#2 Not aliassing across scopes: print_line_cursor#28 print_line_cursor#8 @@ -4840,9 +5644,9 @@ Not aliassing across scopes: print_char_cursor#34 print_char_cursor#3 Not aliassing across scopes: print_line_cursor#33 print_line_cursor#2 Not aliassing across scopes: form_set_screen::screen#0 menu::SCREEN#0 Not aliassing across scopes: form_cursor_count#12 form_cursor_count#8 -Not aliassing across scopes: key_down_debounce#10 key_down_debounce#6 +Not aliassing across scopes: keyboard_events_size#23 keyboard_events_size#12 +Not aliassing across scopes: keyboard_modifiers#21 keyboard_modifiers#12 Not aliassing across scopes: form_field_idx#13 form_field_idx#9 -Not aliassing across scopes: key_right_debounce#10 key_right_debounce#5 Not aliassing across scopes: form_set_screen::screen#1 form_set_screen::screen#0 Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#9 @@ -4851,35 +5655,26 @@ 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#27 Not aliassing across scopes: form_cursor_count#22 form_cursor_count#20 -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: keyboard_events_size#85 keyboard_events_size#36 +Not aliassing across scopes: keyboard_modifiers#74 keyboard_modifiers#35 +Not aliassing across scopes: form_fields_cnt#22 form_fields_cnt#24 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 Not aliassing across scopes: form_control::$0 form_field_ptr::return#6 Not aliassing across scopes: form_cursor_count#6 FORM_CURSOR_BLINK#0 -Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_CRSR_DOWN#0 -Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#1 -Not aliassing across scopes: form_control::$8 keyboard_key_pressed::return#7 -Not aliassing across scopes: keyboard_key_pressed::key#1 KEY_CRSR_RIGHT#0 -Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#1 -Not aliassing across scopes: form_control::$23 keyboard_key_pressed::return#8 -Not aliassing across scopes: key_down_debounce#5 form_control::key_down#1 -Not aliassing across scopes: keyboard_key_pressed::key#2 KEY_RSHIFT#0 -Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#1 -Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#9 -Not aliassing across scopes: key_right_debounce#6 form_control::key_right#1 -Not aliassing across scopes: keyboard_key_pressed::key#3 KEY_RSHIFT#0 -Not aliassing across scopes: keyboard_key_pressed::return#5 keyboard_key_pressed::return#1 -Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 +Not aliassing across scopes: keyboard_events_size#25 keyboard_events_size#3 +Not aliassing across scopes: keyboard_modifiers#23 keyboard_modifiers#6 +Not aliassing across scopes: keyboard_event_get::return#3 keyboard_event_get::return#2 +Not aliassing across scopes: keyboard_events_size#26 keyboard_events_size#5 +Not aliassing across scopes: form_control::$9 keyboard_event_get::return#5 Not aliassing across scopes: print_screen#18 print_screen#4 Not aliassing across scopes: print_line_cursor#35 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#36 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: keyboard_events_size#28 keyboard_events_size#7 +Not aliassing across scopes: keyboard_modifiers#27 keyboard_modifiers#8 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#38 (byte*) print_line_cursor#60 (byte*) print_char_cursor#60 (byte*) print_screen#35 (byte*) print_line_cursor#58 (byte*) print_char_cursor#58 (byte*) print_screen#34 (byte*) print_line_cursor#56 (byte*) print_char_cursor#57 (byte*) print_screen#30 (byte*) print_line_cursor#50 (byte*) print_char_cursor#53 (byte*) print_screen#24 (byte*) print_line_cursor#43 (byte*) print_char_cursor#45 +Alias (byte*) print_screen#0 = (byte*) print_line_cursor#0 (byte*) print_char_cursor#0 (byte*) print_screen#42 (byte*) print_line_cursor#63 (byte*) print_char_cursor#63 (byte*) print_screen#38 (byte*) print_line_cursor#60 (byte*) print_char_cursor#60 (byte*) print_screen#35 (byte*) print_line_cursor#58 (byte*) print_char_cursor#58 (byte*) print_screen#34 (byte*) print_line_cursor#56 (byte*) print_char_cursor#57 (byte*) print_screen#30 (byte*) print_line_cursor#50 (byte*) print_char_cursor#53 (byte*) print_screen#24 (byte*) print_line_cursor#43 (byte*) print_char_cursor#45 Alias (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#7 Alias (byte*) print_char_cursor#22 = (byte*) print_char_cursor#47 (byte*) print_char_cursor#39 (byte*) print_char_cursor#3 Alias (byte*) print_line_cursor#2 = (byte*) print_line_cursor#57 (byte*) print_line_cursor#37 (byte*) print_line_cursor#20 @@ -4896,35 +5691,72 @@ Alias (byte*) print_line_cursor#22 = (byte*) print_line_cursor#3 (byte*~) print_ Alias (byte*) print_line_cursor#24 = (byte*) print_screen#11 (byte*) print_screen#10 (byte*) print_line_cursor#5 (byte*) print_char_cursor#6 (byte*) print_char_cursor#25 (byte*) print_line_cursor#6 (byte*) print_char_cursor#7 Alias (byte*) print_screen#1 = (byte*) print_line_cursor#7 (byte*) print_char_cursor#8 (byte*) print_screen#12 (byte*) print_line_cursor#25 (byte*) print_char_cursor#26 (byte*) print_screen#2 (byte*) print_line_cursor#8 (byte*) print_char_cursor#9 Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#3 (byte) keyboard_matrix_read::return#1 -Alias (byte) keyboard_key_pressed::colidx#0 = (byte~) keyboard_key_pressed::$0 (byte) keyboard_key_pressed::colidx#1 -Alias (byte) keyboard_key_pressed::rowidx#0 = (byte~) keyboard_key_pressed::$1 +Alias (byte) KEY_MODIFIER_SHIFT#0 = (byte~) $0 Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#4 -Alias (byte) keyboard_key_pressed::return#0 = (byte~) keyboard_key_pressed::$3 (byte) keyboard_key_pressed::return#6 (byte) keyboard_key_pressed::return#1 +Alias (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#3 (byte) keyboard_event_scan::row#9 (byte) keyboard_event_scan::row#7 +Alias (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#7 (byte) keyboard_event_scan::keycode#3 (byte) keyboard_event_scan::keycode#12 +Alias (byte) keyboard_events_size#43 = (byte) keyboard_events_size#61 (byte) keyboard_events_size#73 (byte) keyboard_events_size#87 +Alias (byte) keyboard_event_scan::row_scan#0 = (byte~) keyboard_event_scan::$0 (byte) keyboard_event_scan::row_scan#4 +Alias (byte) keyboard_event_scan::keycode#1 = (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +Alias (byte) keyboard_events_size#14 = (byte) keyboard_events_size#29 (byte) keyboard_events_size#62 (byte) keyboard_events_size#30 (byte) keyboard_events_size#15 (byte) keyboard_events_size#16 +Alias (byte) keyboard_event_scan::row_scan#1 = (byte) keyboard_event_scan::row_scan#6 (byte) keyboard_event_scan::row_scan#8 (byte) keyboard_event_scan::row_scan#2 (byte) keyboard_event_scan::row_scan#9 (byte) keyboard_event_scan::row_scan#7 +Alias (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#8 (byte) keyboard_event_scan::col#6 (byte) keyboard_event_scan::col#4 (byte) keyboard_event_scan::col#7 (byte) keyboard_event_scan::col#5 +Alias (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#13 (byte) keyboard_event_scan::keycode#8 (byte) keyboard_event_scan::keycode#9 (byte) keyboard_event_scan::keycode#5 (byte) keyboard_event_scan::keycode#6 +Alias (byte) keyboard_event_scan::row#10 = (byte) keyboard_event_scan::row#13 (byte) keyboard_event_scan::row#4 (byte) keyboard_event_scan::row#11 (byte) keyboard_event_scan::row#14 (byte) keyboard_event_scan::row#12 +Alias (byte) keyboard_event_scan::event_type#0 = (byte~) keyboard_event_scan::$9 +Alias (byte) keyboard_event_scan::row_scan#3 = (byte) keyboard_event_scan::row_scan#5 +Alias (byte) keyboard_event_scan::row#5 = (byte) keyboard_event_scan::row#8 +Alias (byte) keyboard_event_scan::keycode#15 = (byte) keyboard_event_scan::keycode#2 +Alias (byte) keyboard_events_size#44 = (byte) keyboard_events_size#86 +Alias (byte) keyboard_events_size#82 = (byte) keyboard_events_size#96 (byte) keyboard_events_size#94 (byte) keyboard_events_size#93 +Alias (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#6 +Alias (byte) keyboard_modifiers#1 = (byte) keyboard_modifiers#28 (byte) keyboard_modifiers#14 +Alias (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#7 +Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#29 (byte) keyboard_modifiers#44 +Alias (byte) keyboard_events_size#88 = (byte) keyboard_events_size#89 (byte) keyboard_events_size#91 +Alias (byte) keyboard_modifiers#2 = (byte~) keyboard_event_scan::$19 +Alias (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#8 +Alias (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#30 (byte) keyboard_modifiers#45 +Alias (byte) keyboard_events_size#74 = (byte) keyboard_events_size#75 (byte) keyboard_events_size#83 +Alias (byte) keyboard_modifiers#3 = (byte~) keyboard_event_scan::$23 +Alias (byte) keyboard_event_pressed::return#3 = (byte) keyboard_event_pressed::return#9 +Alias (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#31 (byte) keyboard_modifiers#46 (byte) keyboard_modifiers#32 +Alias (byte) keyboard_events_size#31 = (byte) keyboard_events_size#45 (byte) keyboard_events_size#63 (byte) keyboard_events_size#32 +Alias (byte) keyboard_modifiers#4 = (byte~) keyboard_event_scan::$27 +Alias (byte) keyboard_modifiers#5 = (byte~) keyboard_event_scan::$31 +Alias (byte) keyboard_events_size#17 = (byte) keyboard_events_size#3 +Alias (byte) keyboard_modifiers#18 = (byte) keyboard_modifiers#6 +Alias (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#4 (byte~) keyboard_event_pressed::$2 (byte) keyboard_event_pressed::return#5 +Alias (byte) keyboard_events_size#18 = (byte) keyboard_events_size#19 (byte) keyboard_events_size#33 +Alias (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#4 +Alias (byte) keyboard_events_size#20 = (byte) keyboard_events_size#5 Alias (byte*) print_screen#14 = (byte*) print_screen#19 (byte*) print_screen#20 (byte*) print_screen#4 Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#39 (byte*) print_line_cursor#40 (byte*) print_line_cursor#27 Alias (byte*) print_char_cursor#11 = (byte*) print_char_cursor#41 (byte*) print_char_cursor#42 (byte*) print_char_cursor#28 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) keyboard_events_size#22 = (byte) keyboard_events_size#34 (byte) keyboard_events_size#35 (byte) keyboard_events_size#7 +Alias (byte) keyboard_modifiers#20 = (byte) keyboard_modifiers#33 (byte) keyboard_modifiers#34 (byte) keyboard_modifiers#8 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#32 = (byte) form_fields_cnt#34 (byte) form_fields_cnt#38 +Alias (byte) form_fields_cnt#32 = (byte) form_fields_cnt#35 (byte) form_fields_cnt#37 Alias (byte*) print_screen#13 = (byte*) print_screen#3 Alias (byte*) print_line_cursor#26 = (byte*) print_line_cursor#9 Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#27 Alias (signed byte) form_cursor_count#0 = (signed byte) form_cursor_count#10 -Alias (byte) key_down_debounce#0 = (byte) key_down_debounce#8 +Alias (byte) keyboard_events_size#21 = (byte) keyboard_events_size#6 +Alias (byte) keyboard_modifiers#19 = (byte) keyboard_modifiers#7 Alias (byte) form_field_idx#0 = (byte) form_field_idx#11 -Alias (byte) key_right_debounce#0 = (byte) key_right_debounce#8 -Alias (byte[]) MENU_COLS#0 = (string~) $8 -Alias (byte[]) MENU_TEXT#0 = (string~) $17 +Alias (byte) keyboard_events_size#0 = (byte) keyboard_events_size#67 (byte) keyboard_events_size#60 (byte) keyboard_events_size#42 +Alias (byte) keyboard_modifiers#0 = (byte) keyboard_modifiers#64 (byte) keyboard_modifiers#60 (byte) keyboard_modifiers#43 +Alias (byte[]) MENU_COLS#0 = (string~) $9 +Alias (byte[]) MENU_TEXT#0 = (string~) $18 Alias (byte*) print_screen#21 = (byte*) print_screen#26 Alias (byte*) print_line_cursor#41 = (byte*) print_line_cursor#47 Alias (byte*) print_char_cursor#43 = (byte*) print_char_cursor#50 -Alias (signed byte) form_cursor_count#28 = (signed byte) form_cursor_count#56 (signed byte) form_cursor_count#57 (signed byte) form_cursor_count#55 (signed byte) form_cursor_count#54 (signed byte) form_cursor_count#53 (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#63 (byte) key_down_debounce#64 (byte) key_down_debounce#62 (byte) key_down_debounce#61 (byte) key_down_debounce#60 (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#65 (byte) form_field_idx#66 (byte) form_field_idx#64 (byte) form_field_idx#61 (byte) form_field_idx#59 (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#63 (byte) key_right_debounce#64 (byte) key_right_debounce#62 (byte) key_right_debounce#61 (byte) key_right_debounce#59 (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#25 (byte) form_fields_cnt#27 (byte) form_fields_cnt#23 (byte) form_fields_cnt#20 (byte) form_fields_cnt#18 (byte) form_fields_cnt#15 (byte) form_fields_cnt#13 (byte) form_fields_cnt#9 (byte) form_fields_cnt#35 +Alias (signed byte) form_cursor_count#27 = (signed byte) form_cursor_count#51 (signed byte) form_cursor_count#52 (signed byte) form_cursor_count#50 (signed byte) form_cursor_count#49 (signed byte) form_cursor_count#48 (signed byte) form_cursor_count#45 (signed byte) form_cursor_count#43 (signed byte) form_cursor_count#40 (signed byte) form_cursor_count#34 +Alias (byte) keyboard_events_size#47 = (byte) keyboard_events_size#98 (byte) keyboard_events_size#99 (byte) keyboard_events_size#97 (byte) keyboard_events_size#95 (byte) keyboard_events_size#92 (byte) keyboard_events_size#90 (byte) keyboard_events_size#84 (byte) keyboard_events_size#76 (byte) keyboard_events_size#64 +Alias (byte) keyboard_modifiers#48 = (byte) keyboard_modifiers#79 (byte) keyboard_modifiers#80 (byte) keyboard_modifiers#78 (byte) keyboard_modifiers#77 (byte) keyboard_modifiers#76 (byte) keyboard_modifiers#75 (byte) keyboard_modifiers#73 (byte) keyboard_modifiers#70 (byte) keyboard_modifiers#61 +Alias (byte) form_field_idx#37 = (byte) form_field_idx#59 (byte) form_field_idx#60 (byte) form_field_idx#58 (byte) form_field_idx#57 (byte) form_field_idx#54 (byte) form_field_idx#52 (byte) form_field_idx#49 (byte) form_field_idx#47 (byte) form_field_idx#43 +Alias (byte) form_fields_cnt#11 = (byte) form_fields_cnt#25 (byte) form_fields_cnt#27 (byte) form_fields_cnt#23 (byte) form_fields_cnt#21 (byte) form_fields_cnt#18 (byte) form_fields_cnt#16 (byte) form_fields_cnt#13 (byte) form_fields_cnt#9 (byte) form_fields_cnt#33 Alias (byte*) print_screen#15 = (byte*) print_screen#5 (byte*) print_screen#27 (byte*) print_screen#22 Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#28 Alias (byte*) print_char_cursor#12 = (byte*) print_char_cursor#29 @@ -4939,27 +5771,27 @@ Alias (byte*) print_line_cursor#15 = (byte*) print_line_cursor#32 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#33 Alias (byte*) print_char_cursor#17 = (byte*) print_char_cursor#34 (byte*) print_char_cursor#55 (byte*) print_char_cursor#51 Alias (byte*) print_line_cursor#16 = (byte*) print_line_cursor#33 (byte*) print_line_cursor#54 (byte*) print_line_cursor#48 -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 (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) keyboard_events_size#24 = (byte) keyboard_events_size#65 (byte) keyboard_events_size#37 (byte) keyboard_events_size#9 +Alias (byte) keyboard_modifiers#10 = (byte) keyboard_modifiers#62 (byte) keyboard_modifiers#36 (byte) keyboard_modifiers#22 +Alias (byte) form_field_idx#14 = (byte) form_field_idx#44 (byte) form_field_idx#28 (byte) form_field_idx#3 Alias (byte*) print_screen#17 = (byte*) print_screen#40 (byte*) print_screen#23 (byte*) print_screen#7 Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#61 (byte*) print_line_cursor#42 (byte*) print_line_cursor#34 Alias (byte*) print_char_cursor#18 = (byte*) print_char_cursor#61 (byte*) print_char_cursor#44 (byte*) print_char_cursor#35 -Alias (byte) form_fields_cnt#30 = (byte) form_fields_cnt#33 -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) form_fields_cnt#28 = (byte) form_fields_cnt#31 +Alias (signed byte) form_cursor_count#20 = (signed byte) form_cursor_count#36 (signed byte) form_cursor_count#28 +Alias (byte) keyboard_events_size#36 = (byte) keyboard_events_size#66 (byte) keyboard_events_size#48 +Alias (byte) keyboard_modifiers#35 = (byte) keyboard_modifiers#63 (byte) keyboard_modifiers#49 +Alias (byte) form_field_idx#27 = (byte) form_field_idx#45 (byte) form_field_idx#38 Alias (byte*) print_screen#29 = (byte*) print_screen#41 (byte*) print_screen#37 (byte*) print_screen#33 Alias (byte*) print_line_cursor#49 = (byte*) print_line_cursor#62 (byte*) print_line_cursor#59 (byte*) print_line_cursor#55 Alias (byte*) print_char_cursor#52 = (byte*) print_char_cursor#62 (byte*) print_char_cursor#59 (byte*) print_char_cursor#56 -Alias (byte) form_fields_cnt#26 = (byte) form_fields_cnt#31 (byte) form_fields_cnt#28 (byte) form_fields_cnt#36 +Alias (byte) form_fields_cnt#24 = (byte) form_fields_cnt#29 (byte) form_fields_cnt#26 (byte) form_fields_cnt#34 Alias (signed byte) form_cursor_count#12 = (signed byte) form_cursor_count#2 -Alias (byte) key_down_debounce#10 = (byte) key_down_debounce#2 +Alias (byte) keyboard_events_size#23 = (byte) keyboard_events_size#8 +Alias (byte) keyboard_modifiers#21 = (byte) keyboard_modifiers#9 Alias (byte) form_field_idx#13 = (byte) form_field_idx#2 -Alias (byte) key_right_debounce#10 = (byte) key_right_debounce#2 -Alias (signed byte) form_cursor_count#26 = (signed byte) form_cursor_count#4 (signed word/signed byte/signed dword~) $18 +Alias (signed byte) form_cursor_count#25 = (signed byte) form_cursor_count#4 (signed word/signed byte/signed dword~) $19 Alias (byte*) form_set_screen::line#0 = (byte*) form_set_screen::screen#1 Alias (byte*) form_set_screen::line#1 = (byte*~) form_set_screen::$2 Alias (byte*) form_field_ptr::line#0 = (byte*~) form_field_ptr::$0 @@ -4970,55 +5802,43 @@ 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#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) keyboard_events_size#77 = (byte) keyboard_events_size#78 (byte) keyboard_events_size#85 +Alias (byte) keyboard_modifiers#71 = (byte) keyboard_modifiers#72 (byte) keyboard_modifiers#74 +Alias (byte) form_field_idx#15 = (byte) form_field_idx#56 (byte) form_field_idx#55 +Alias (byte) form_fields_cnt#19 = (byte) form_fields_cnt#20 (byte) form_fields_cnt#22 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#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#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#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#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#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#42 = (byte) form_field_idx#5 -Alias (byte) form_field_idx#8 = (byte/signed word/word/dword/signed dword~) form_control::$21 +Alias (byte) keyboard_events_size#49 = (byte) keyboard_events_size#50 (byte) keyboard_events_size#68 +Alias (byte) keyboard_modifiers#50 = (byte) keyboard_modifiers#51 (byte) keyboard_modifiers#65 +Alias (byte) form_field_idx#50 = (byte) form_field_idx#51 (byte) form_field_idx#53 +Alias (byte) form_fields_cnt#14 = (byte) form_fields_cnt#15 (byte) form_fields_cnt#17 +Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#47 (signed byte) form_cursor_count#46 +Alias (byte*) form_control::field#10 = (byte*) form_control::field#12 (byte*) form_control::field#15 (byte*) form_control::field#6 (byte*) form_control::field#17 (byte*) form_control::field#3 (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_field_idx#16 = (byte) form_field_idx#46 (byte) form_field_idx#48 (byte) form_field_idx#39 (byte) form_field_idx#42 (byte) form_field_idx#29 (byte) form_field_idx#17 (byte) form_field_idx#31 (byte) form_field_idx#32 (byte) form_field_idx#19 (byte) form_field_idx#20 (byte) form_field_idx#33 (byte) form_field_idx#21 (byte) form_field_idx#34 (byte) form_field_idx#23 +Alias (byte) form_fields_cnt#10 = (byte) form_fields_cnt#12 (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 (signed byte) form_cursor_count#24 = (signed byte) form_cursor_count#41 (signed byte) form_cursor_count#44 (signed byte) form_cursor_count#37 (signed byte) form_cursor_count#29 (signed byte) form_cursor_count#42 (signed byte) form_cursor_count#39 (signed byte) form_cursor_count#38 (signed byte) form_cursor_count#30 (signed byte) form_cursor_count#32 (signed byte) form_cursor_count#31 (signed byte) form_cursor_count#33 +Alias (byte) keyboard_events_size#10 = (byte) keyboard_events_size#25 +Alias (byte) keyboard_modifiers#11 = (byte) keyboard_modifiers#23 (byte) keyboard_modifiers#38 (byte) keyboard_modifiers#42 (byte) keyboard_modifiers#24 (byte) keyboard_modifiers#67 (byte) keyboard_modifiers#66 (byte) keyboard_modifiers#54 (byte) keyboard_modifiers#52 (byte) keyboard_modifiers#55 (byte) keyboard_modifiers#53 (byte) keyboard_modifiers#41 (byte) keyboard_modifiers#26 (byte) keyboard_modifiers#69 (byte) keyboard_modifiers#68 (byte) keyboard_modifiers#56 (byte) keyboard_modifiers#58 (byte) keyboard_modifiers#57 (byte) keyboard_modifiers#59 +Alias (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#5 +Alias (byte) keyboard_events_size#11 = (byte) keyboard_events_size#26 (byte) keyboard_events_size#55 (byte) keyboard_events_size#79 (byte) keyboard_events_size#70 (byte) keyboard_events_size#69 (byte) keyboard_events_size#53 (byte) keyboard_events_size#51 (byte) keyboard_events_size#54 (byte) keyboard_events_size#52 (byte) keyboard_events_size#41 (byte) keyboard_events_size#80 (byte) keyboard_events_size#72 (byte) keyboard_events_size#71 (byte) keyboard_events_size#56 (byte) keyboard_events_size#58 (byte) keyboard_events_size#57 (byte) keyboard_events_size#59 +Alias (byte) form_control::key_event#0 = (byte~) form_control::$9 (byte) form_control::key_event#1 +Alias (byte) form_field_idx#40 = (byte) form_field_idx#6 +Alias (signed byte) form_cursor_count#7 = (signed word/signed byte/signed dword~) form_control::$21 +Alias (byte) form_field_idx#41 = (byte) form_field_idx#5 +Alias (byte) form_field_idx#8 = (byte/signed word/word/dword/signed dword~) form_control::$20 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) keyboard_events_size#12 = (byte) keyboard_events_size#27 +Alias (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#25 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#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#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#39 +Alias (byte) form_field_idx#35 = (byte) form_field_idx#4 +Alias (byte) form_fields_cnt#0 = (byte) form_fields_cnt#38 Alias (byte*) print_screen#18 = (byte*) print_screen#8 Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#35 Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#36 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) keyboard_events_size#13 = (byte) keyboard_events_size#28 +Alias (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#27 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#5 print_str_lines::str#1 Not aliassing across scopes: print_char_cursor#46 print_char_cursor#13 @@ -5032,33 +5852,47 @@ Not aliassing across scopes: print_cls::sc#0 print_screen#9 Not aliassing across scopes: print_set_screen::screen#2 print_set_screen::screen#1 Not aliassing across scopes: print_screen#1 print_set_screen::screen#2 Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 -Not aliassing across scopes: keyboard_key_pressed::key#4 keyboard_key_pressed::key#2 -Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 +Not aliassing across scopes: keyboard_events_size#81 keyboard_events_size#38 +Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_event_scan::row#2 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 -Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_scan::row_scan#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_pressed::keycode#0 KEY_LSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#0 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$16 keyboard_event_pressed::return#0 +Not aliassing across scopes: keyboard_event_pressed::keycode#1 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#1 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$20 keyboard_event_pressed::return#1 +Not aliassing across scopes: keyboard_event_pressed::keycode#2 KEY_CTRL#0 +Not aliassing across scopes: keyboard_event_pressed::return#2 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$24 keyboard_event_pressed::return#2 +Not aliassing across scopes: keyboard_event_pressed::keycode#3 KEY_COMMODORE#0 +Not aliassing across scopes: keyboard_event_pressed::return#3 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$28 keyboard_event_pressed::return#3 +Not aliassing across scopes: keyboard_event_pressed::keycode#4 keyboard_event_pressed::keycode#2 +Not aliassing across scopes: keyboard_events_size#18 keyboard_events_size#10 Not aliassing across scopes: print_screen#25 print_screen#0 Not aliassing across scopes: print_line_cursor#46 print_screen#0 Not aliassing across scopes: print_char_cursor#49 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#37 form_field_idx#36 -Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 -Not aliassing across scopes: form_fields_cnt#37 form_fields_cnt#0 +Not aliassing across scopes: form_cursor_count#26 form_cursor_count#25 +Not aliassing across scopes: keyboard_events_size#46 keyboard_events_size#0 +Not aliassing across scopes: keyboard_modifiers#47 keyboard_modifiers#0 +Not aliassing across scopes: form_field_idx#36 form_field_idx#35 +Not aliassing across scopes: form_fields_cnt#36 form_fields_cnt#0 Not aliassing across scopes: print_screen#13 print_screen#17 Not aliassing across scopes: print_line_cursor#26 print_line_cursor#17 Not aliassing across scopes: print_char_cursor#10 print_char_cursor#18 Not aliassing across scopes: form_cursor_count#0 form_cursor_count#13 -Not aliassing across scopes: key_down_debounce#0 key_down_debounce#11 +Not aliassing across scopes: keyboard_events_size#21 keyboard_events_size#24 +Not aliassing across scopes: keyboard_modifiers#19 keyboard_modifiers#10 Not aliassing across scopes: form_field_idx#0 form_field_idx#14 -Not aliassing across scopes: key_right_debounce#0 key_right_debounce#11 Not aliassing across scopes: print_screen#31 print_screen#14 Not aliassing across scopes: print_line_cursor#53 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#54 print_char_cursor#11 -Not aliassing across scopes: form_cursor_count#58 form_cursor_count#1 -Not aliassing across scopes: key_down_debounce#65 key_down_debounce#1 -Not aliassing across scopes: form_field_idx#67 form_field_idx#1 -Not aliassing across scopes: key_right_debounce#65 key_right_debounce#1 -Not aliassing across scopes: form_fields_cnt#29 form_fields_cnt#32 +Not aliassing across scopes: form_cursor_count#53 form_cursor_count#1 +Not aliassing across scopes: keyboard_events_size#100 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#81 keyboard_modifiers#20 +Not aliassing across scopes: form_field_idx#61 form_field_idx#1 +Not aliassing across scopes: form_fields_cnt#30 form_fields_cnt#32 Not aliassing across scopes: print_set_screen::screen#0 COLS#0 Not aliassing across scopes: print_screen#15 print_screen#1 Not aliassing across scopes: print_line_cursor#11 print_screen#1 @@ -5079,9 +5913,9 @@ Not aliassing across scopes: print_char_cursor#17 print_char_cursor#22 Not aliassing across scopes: print_line_cursor#16 print_line_cursor#2 Not aliassing across scopes: form_set_screen::screen#0 menu::SCREEN#0 Not aliassing across scopes: form_cursor_count#12 form_cursor_count#16 -Not aliassing across scopes: key_down_debounce#10 key_down_debounce#13 +Not aliassing across scopes: keyboard_events_size#23 keyboard_events_size#12 +Not aliassing across scopes: keyboard_modifiers#21 keyboard_modifiers#12 Not aliassing across scopes: form_field_idx#13 form_field_idx#18 -Not aliassing across scopes: key_right_debounce#10 key_right_debounce#13 Not aliassing across scopes: form_set_screen::line#0 form_set_screen::screen#0 Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#11 @@ -5090,46 +5924,41 @@ 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#27 Not aliassing across scopes: form_cursor_count#14 form_cursor_count#20 -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: keyboard_events_size#77 keyboard_events_size#36 +Not aliassing across scopes: keyboard_modifiers#71 keyboard_modifiers#35 +Not aliassing across scopes: form_fields_cnt#19 form_fields_cnt#24 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 Not aliassing across scopes: form_control::field#0 form_field_ptr::return#3 Not aliassing across scopes: form_cursor_count#6 FORM_CURSOR_BLINK#0 -Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_CRSR_DOWN#0 -Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_down#0 keyboard_key_pressed::return#2 -Not aliassing across scopes: keyboard_key_pressed::key#1 KEY_CRSR_RIGHT#0 -Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_right#0 keyboard_key_pressed::return#3 -Not aliassing across scopes: key_down_debounce#30 form_control::key_down#0 -Not aliassing across scopes: keyboard_key_pressed::key#2 KEY_RSHIFT#0 -Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#4 -Not aliassing across scopes: key_right_debounce#21 form_control::key_right#0 -Not aliassing across scopes: keyboard_key_pressed::key#3 KEY_RSHIFT#0 -Not aliassing across scopes: keyboard_key_pressed::return#10 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 +Not aliassing across scopes: keyboard_events_size#10 keyboard_events_size#17 +Not aliassing across scopes: keyboard_modifiers#11 keyboard_modifiers#18 +Not aliassing across scopes: keyboard_event_get::return#3 keyboard_event_get::return#2 +Not aliassing across scopes: keyboard_events_size#11 keyboard_events_size#20 +Not aliassing across scopes: form_control::key_event#0 keyboard_event_get::return#3 Not aliassing across scopes: print_screen#18 print_screen#14 Not aliassing across scopes: print_line_cursor#18 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#19 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: keyboard_events_size#13 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#13 keyboard_modifiers#20 Not aliassing across scopes: form_field_idx#10 form_field_idx#1 -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#10 Alias (byte*) print_line_cursor#36 = (byte*) print_line_cursor#51 -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#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 +Alias (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#4 +Alias (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#3 +Alias (byte) keyboard_event_scan::row_scan#1 = (byte) keyboard_event_scan::row_scan#3 +Alias (byte) keyboard_event_scan::row#10 = (byte) keyboard_event_scan::row#5 +Alias (byte) keyboard_events_size#17 = (byte) keyboard_events_size#88 (byte) keyboard_events_size#82 (byte) keyboard_events_size#74 (byte) keyboard_events_size#31 +Alias (byte*) form_control::field#0 = (byte*) form_control::field#1 (byte*) form_control::field#10 (byte*) form_control::field#4 +Alias (byte) keyboard_events_size#38 = (byte) keyboard_events_size#49 (byte) keyboard_events_size#77 +Alias (byte) keyboard_modifiers#37 = (byte) keyboard_modifiers#50 (byte) keyboard_modifiers#71 +Alias (byte) form_field_idx#15 = (byte) form_field_idx#50 (byte) form_field_idx#16 (byte) form_field_idx#22 +Alias (byte) form_fields_cnt#10 = (byte) form_fields_cnt#14 (byte) form_fields_cnt#19 +Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#24 (signed byte) form_cursor_count#23 +Alias (byte) keyboard_events_size#11 = (byte) keyboard_events_size#40 (byte) keyboard_events_size#39 +Alias (byte) keyboard_modifiers#11 = (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#39 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: print_str_lines::str#5 print_str_lines::str#1 Not aliassing across scopes: print_char_cursor#46 print_char_cursor#13 @@ -5143,33 +5972,47 @@ Not aliassing across scopes: print_cls::sc#0 print_screen#9 Not aliassing across scopes: print_set_screen::screen#2 print_set_screen::screen#1 Not aliassing across scopes: print_screen#1 print_set_screen::screen#2 Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 -Not aliassing across scopes: keyboard_key_pressed::key#4 keyboard_key_pressed::key#2 -Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 +Not aliassing across scopes: keyboard_events_size#81 keyboard_events_size#38 +Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_event_scan::row#2 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 -Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_scan::row_scan#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_pressed::keycode#0 KEY_LSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#0 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$16 keyboard_event_pressed::return#0 +Not aliassing across scopes: keyboard_event_pressed::keycode#1 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#1 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$20 keyboard_event_pressed::return#1 +Not aliassing across scopes: keyboard_event_pressed::keycode#2 KEY_CTRL#0 +Not aliassing across scopes: keyboard_event_pressed::return#2 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$24 keyboard_event_pressed::return#2 +Not aliassing across scopes: keyboard_event_pressed::keycode#3 KEY_COMMODORE#0 +Not aliassing across scopes: keyboard_event_pressed::return#3 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$28 keyboard_event_pressed::return#3 +Not aliassing across scopes: keyboard_event_pressed::keycode#4 keyboard_event_pressed::keycode#2 +Not aliassing across scopes: keyboard_events_size#18 keyboard_events_size#10 Not aliassing across scopes: print_screen#25 print_screen#0 Not aliassing across scopes: print_line_cursor#46 print_screen#0 Not aliassing across scopes: print_char_cursor#49 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#37 form_field_idx#36 -Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 -Not aliassing across scopes: form_fields_cnt#37 form_fields_cnt#0 +Not aliassing across scopes: form_cursor_count#26 form_cursor_count#25 +Not aliassing across scopes: keyboard_events_size#46 keyboard_events_size#0 +Not aliassing across scopes: keyboard_modifiers#47 keyboard_modifiers#0 +Not aliassing across scopes: form_field_idx#36 form_field_idx#35 +Not aliassing across scopes: form_fields_cnt#36 form_fields_cnt#0 Not aliassing across scopes: print_screen#13 print_screen#17 Not aliassing across scopes: print_line_cursor#26 print_line_cursor#17 Not aliassing across scopes: print_char_cursor#10 print_char_cursor#18 Not aliassing across scopes: form_cursor_count#0 form_cursor_count#13 -Not aliassing across scopes: key_down_debounce#0 key_down_debounce#11 +Not aliassing across scopes: keyboard_events_size#21 keyboard_events_size#24 +Not aliassing across scopes: keyboard_modifiers#19 keyboard_modifiers#10 Not aliassing across scopes: form_field_idx#0 form_field_idx#14 -Not aliassing across scopes: key_right_debounce#0 key_right_debounce#11 Not aliassing across scopes: print_screen#31 print_screen#14 Not aliassing across scopes: print_line_cursor#53 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#54 print_char_cursor#11 -Not aliassing across scopes: form_cursor_count#58 form_cursor_count#1 -Not aliassing across scopes: key_down_debounce#65 key_down_debounce#1 -Not aliassing across scopes: form_field_idx#67 form_field_idx#1 -Not aliassing across scopes: key_right_debounce#65 key_right_debounce#1 -Not aliassing across scopes: form_fields_cnt#29 form_fields_cnt#32 +Not aliassing across scopes: form_cursor_count#53 form_cursor_count#1 +Not aliassing across scopes: keyboard_events_size#100 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#81 keyboard_modifiers#20 +Not aliassing across scopes: form_field_idx#61 form_field_idx#1 +Not aliassing across scopes: form_fields_cnt#30 form_fields_cnt#32 Not aliassing across scopes: print_set_screen::screen#0 COLS#0 Not aliassing across scopes: print_screen#15 print_screen#1 Not aliassing across scopes: print_line_cursor#11 print_screen#1 @@ -5190,9 +6033,9 @@ Not aliassing across scopes: print_char_cursor#17 print_char_cursor#22 Not aliassing across scopes: print_line_cursor#16 print_line_cursor#2 Not aliassing across scopes: form_set_screen::screen#0 menu::SCREEN#0 Not aliassing across scopes: form_cursor_count#12 form_cursor_count#16 -Not aliassing across scopes: key_down_debounce#10 key_down_debounce#13 +Not aliassing across scopes: keyboard_events_size#23 keyboard_events_size#12 +Not aliassing across scopes: keyboard_modifiers#21 keyboard_modifiers#12 Not aliassing across scopes: form_field_idx#13 form_field_idx#18 -Not aliassing across scopes: key_right_debounce#10 key_right_debounce#13 Not aliassing across scopes: form_set_screen::line#0 form_set_screen::screen#0 Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#11 @@ -5201,54 +6044,153 @@ 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#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 -Not aliassing across scopes: form_fields_cnt#10 form_fields_cnt#26 +Not aliassing across scopes: keyboard_events_size#38 keyboard_events_size#36 +Not aliassing across scopes: keyboard_modifiers#37 keyboard_modifiers#35 +Not aliassing across scopes: form_fields_cnt#10 form_fields_cnt#24 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 Not aliassing across scopes: form_control::field#0 form_field_ptr::return#3 Not aliassing across scopes: form_cursor_count#6 FORM_CURSOR_BLINK#0 -Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_CRSR_DOWN#0 -Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_down#0 keyboard_key_pressed::return#2 -Not aliassing across scopes: keyboard_key_pressed::key#1 KEY_CRSR_RIGHT#0 -Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_right#0 keyboard_key_pressed::return#3 -Not aliassing across scopes: key_down_debounce#23 form_control::key_down#0 -Not aliassing across scopes: keyboard_key_pressed::key#2 KEY_RSHIFT#0 -Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#4 -Not aliassing across scopes: key_right_debounce#21 form_control::key_right#0 -Not aliassing across scopes: keyboard_key_pressed::key#3 KEY_RSHIFT#0 -Not aliassing across scopes: keyboard_key_pressed::return#10 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 +Not aliassing across scopes: keyboard_events_size#10 keyboard_events_size#17 +Not aliassing across scopes: keyboard_modifiers#11 keyboard_modifiers#18 +Not aliassing across scopes: keyboard_event_get::return#3 keyboard_event_get::return#2 +Not aliassing across scopes: keyboard_events_size#11 keyboard_events_size#20 +Not aliassing across scopes: form_control::key_event#0 keyboard_event_get::return#3 Not aliassing across scopes: print_screen#18 print_screen#14 Not aliassing across scopes: print_line_cursor#18 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#19 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: keyboard_events_size#13 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#13 keyboard_modifiers#20 +Not aliassing across scopes: form_field_idx#10 form_field_idx#1 +Alias (byte) keyboard_events_size#11 = (byte) keyboard_events_size#12 +Alias (byte) keyboard_modifiers#11 = (byte) keyboard_modifiers#12 +Succesful SSA optimization Pass2AliasElimination +Not aliassing across scopes: print_str_lines::str#5 print_str_lines::str#1 +Not aliassing across scopes: print_char_cursor#46 print_char_cursor#13 +Not aliassing across scopes: print_line_cursor#44 print_line_cursor#12 +Not aliassing across scopes: print_line_cursor#1 print_line_cursor#22 +Not aliassing across scopes: print_char_cursor#2 print_line_cursor#22 +Not aliassing across scopes: print_line_cursor#38 print_line_cursor#36 +Not aliassing across scopes: print_char_cursor#40 print_char_cursor#38 +Not aliassing across scopes: print_screen#9 print_screen#15 +Not aliassing across scopes: print_cls::sc#0 print_screen#9 +Not aliassing across scopes: print_set_screen::screen#2 print_set_screen::screen#1 +Not aliassing across scopes: print_screen#1 print_set_screen::screen#2 +Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 +Not aliassing across scopes: keyboard_events_size#81 keyboard_events_size#38 +Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_event_scan::row#2 +Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 +Not aliassing across scopes: keyboard_event_scan::row_scan#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_pressed::keycode#0 KEY_LSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#0 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$16 keyboard_event_pressed::return#0 +Not aliassing across scopes: keyboard_event_pressed::keycode#1 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_event_pressed::return#1 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$20 keyboard_event_pressed::return#1 +Not aliassing across scopes: keyboard_event_pressed::keycode#2 KEY_CTRL#0 +Not aliassing across scopes: keyboard_event_pressed::return#2 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$24 keyboard_event_pressed::return#2 +Not aliassing across scopes: keyboard_event_pressed::keycode#3 KEY_COMMODORE#0 +Not aliassing across scopes: keyboard_event_pressed::return#3 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$28 keyboard_event_pressed::return#3 +Not aliassing across scopes: keyboard_event_pressed::keycode#4 keyboard_event_pressed::keycode#2 +Not aliassing across scopes: keyboard_events_size#18 keyboard_events_size#10 +Not aliassing across scopes: print_screen#25 print_screen#0 +Not aliassing across scopes: print_line_cursor#46 print_screen#0 +Not aliassing across scopes: print_char_cursor#49 print_screen#0 +Not aliassing across scopes: form_cursor_count#26 form_cursor_count#25 +Not aliassing across scopes: keyboard_events_size#46 keyboard_events_size#0 +Not aliassing across scopes: keyboard_modifiers#47 keyboard_modifiers#0 +Not aliassing across scopes: form_field_idx#36 form_field_idx#35 +Not aliassing across scopes: form_fields_cnt#36 form_fields_cnt#0 +Not aliassing across scopes: print_screen#13 print_screen#17 +Not aliassing across scopes: print_line_cursor#26 print_line_cursor#17 +Not aliassing across scopes: print_char_cursor#10 print_char_cursor#18 +Not aliassing across scopes: form_cursor_count#0 form_cursor_count#13 +Not aliassing across scopes: keyboard_events_size#21 keyboard_events_size#24 +Not aliassing across scopes: keyboard_modifiers#19 keyboard_modifiers#10 +Not aliassing across scopes: form_field_idx#0 form_field_idx#14 +Not aliassing across scopes: print_screen#31 print_screen#14 +Not aliassing across scopes: print_line_cursor#53 print_line_cursor#10 +Not aliassing across scopes: print_char_cursor#54 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#53 form_cursor_count#1 +Not aliassing across scopes: keyboard_events_size#100 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#81 keyboard_modifiers#20 +Not aliassing across scopes: form_field_idx#61 form_field_idx#1 +Not aliassing across scopes: form_fields_cnt#30 form_fields_cnt#32 +Not aliassing across scopes: print_set_screen::screen#0 COLS#0 +Not aliassing across scopes: print_screen#15 print_screen#1 +Not aliassing across scopes: print_line_cursor#11 print_screen#1 +Not aliassing across scopes: print_char_cursor#12 print_screen#1 +Not aliassing across scopes: print_line_cursor#12 print_line_cursor#24 +Not aliassing across scopes: print_char_cursor#13 print_line_cursor#24 +Not aliassing across scopes: print_str_lines::str#1 MENU_COLS#0 +Not aliassing across scopes: print_char_cursor#14 print_char_cursor#22 +Not aliassing across scopes: print_line_cursor#13 print_line_cursor#2 +Not aliassing across scopes: print_set_screen::screen#1 menu::SCREEN#0 +Not aliassing across scopes: print_screen#16 print_screen#1 +Not aliassing across scopes: print_line_cursor#14 print_screen#1 +Not aliassing across scopes: print_char_cursor#15 print_screen#1 +Not aliassing across scopes: print_line_cursor#15 print_line_cursor#24 +Not aliassing across scopes: print_char_cursor#16 print_line_cursor#24 +Not aliassing across scopes: print_str_lines::str#2 MENU_TEXT#0 +Not aliassing across scopes: print_char_cursor#17 print_char_cursor#22 +Not aliassing across scopes: print_line_cursor#16 print_line_cursor#2 +Not aliassing across scopes: form_set_screen::screen#0 menu::SCREEN#0 +Not aliassing across scopes: form_cursor_count#12 form_cursor_count#16 +Not aliassing across scopes: keyboard_events_size#23 keyboard_events_size#11 +Not aliassing across scopes: keyboard_modifiers#21 keyboard_modifiers#11 +Not aliassing across scopes: form_field_idx#13 form_field_idx#18 +Not aliassing across scopes: form_set_screen::line#0 form_set_screen::screen#0 +Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 +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#27 +Not aliassing across scopes: form_cursor_count#14 form_cursor_count#20 +Not aliassing across scopes: keyboard_events_size#38 keyboard_events_size#36 +Not aliassing across scopes: keyboard_modifiers#37 keyboard_modifiers#35 +Not aliassing across scopes: form_fields_cnt#10 form_fields_cnt#24 +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 +Not aliassing across scopes: form_control::field#0 form_field_ptr::return#3 +Not aliassing across scopes: form_cursor_count#6 FORM_CURSOR_BLINK#0 +Not aliassing across scopes: keyboard_events_size#10 keyboard_events_size#17 +Not aliassing across scopes: keyboard_modifiers#11 keyboard_modifiers#18 +Not aliassing across scopes: keyboard_event_get::return#3 keyboard_event_get::return#2 +Not aliassing across scopes: keyboard_events_size#11 keyboard_events_size#20 +Not aliassing across scopes: form_control::key_event#0 keyboard_event_get::return#3 +Not aliassing across scopes: print_screen#18 print_screen#14 +Not aliassing across scopes: print_line_cursor#18 print_line_cursor#10 +Not aliassing across scopes: print_char_cursor#19 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#17 form_cursor_count#1 +Not aliassing across scopes: keyboard_events_size#13 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#13 keyboard_modifiers#20 Not aliassing across scopes: form_field_idx#10 form_field_idx#1 -Not aliassing across scopes: key_right_debounce#14 key_right_debounce#1 Self Phi Eliminated (byte*) print_line_cursor#36 Self Phi Eliminated (byte*) print_char_cursor#23 Self Phi Eliminated (byte*) print_line_cursor#24 +Self Phi Eliminated (byte) keyboard_event_scan::row_scan#1 +Self Phi Eliminated (byte) keyboard_event_scan::row#10 Self Phi Eliminated (byte) form_fields_cnt#32 Self Phi Eliminated (byte*) print_screen#21 Self Phi Eliminated (byte*) print_line_cursor#41 Self Phi Eliminated (byte*) print_char_cursor#43 -Self Phi Eliminated (signed byte) form_cursor_count#28 -Self Phi Eliminated (byte) key_down_debounce#26 -Self Phi Eliminated (byte) form_field_idx#38 -Self Phi Eliminated (byte) key_right_debounce#26 +Self Phi Eliminated (signed byte) form_cursor_count#27 +Self Phi Eliminated (byte) keyboard_events_size#47 +Self Phi Eliminated (byte) keyboard_modifiers#48 +Self Phi Eliminated (byte) form_field_idx#37 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) keyboard_events_size#36 +Self Phi Eliminated (byte) keyboard_modifiers#35 Self Phi Eliminated (byte) form_field_idx#27 -Self Phi Eliminated (byte) key_right_debounce#17 Self Phi Eliminated (byte*) print_screen#29 Self Phi Eliminated (byte*) print_line_cursor#49 Self Phi Eliminated (byte*) print_char_cursor#52 -Self Phi Eliminated (byte) form_fields_cnt#26 +Self Phi Eliminated (byte) form_fields_cnt#24 Self Phi Eliminated (byte) form_fields_cnt#1 Succesful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) print_line_cursor#36 (byte*) print_line_cursor#2 @@ -5259,38 +6201,42 @@ Redundant Phi (byte*) print_char_cursor#40 (byte*) print_char_cursor#38 Redundant Phi (byte*) print_char_cursor#23 (byte*) print_char_cursor#40 Redundant Phi (byte*) print_line_cursor#24 (byte*) print_screen#9 Redundant Phi (byte) keyboard_matrix_read::rowid#1 (byte) keyboard_matrix_read::rowid#0 +Redundant Phi (byte) keyboard_events_size#81 (byte) keyboard_events_size#38 +Redundant Phi (byte) keyboard_event_scan::row_scan#1 (byte) keyboard_event_scan::row_scan#0 +Redundant Phi (byte) keyboard_event_scan::row#10 (byte) keyboard_event_scan::row#2 +Redundant Phi (byte) keyboard_events_size#18 (byte) keyboard_events_size#10 Redundant Phi (byte*) print_screen#25 (byte*) print_screen#0 Redundant Phi (byte*) print_line_cursor#46 (byte*) print_screen#0 Redundant Phi (byte*) print_char_cursor#49 (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#37 (byte) form_field_idx#36 -Redundant Phi (byte) key_right_debounce#25 (byte) key_right_debounce#24 -Redundant Phi (byte) form_fields_cnt#37 (byte) form_fields_cnt#0 -Redundant Phi (byte) form_fields_cnt#32 (byte) form_fields_cnt#37 +Redundant Phi (signed byte) form_cursor_count#26 (signed byte) form_cursor_count#25 +Redundant Phi (byte) keyboard_events_size#46 (byte) keyboard_events_size#0 +Redundant Phi (byte) keyboard_modifiers#47 (byte) keyboard_modifiers#0 +Redundant Phi (byte) form_field_idx#36 (byte) form_field_idx#35 +Redundant Phi (byte) form_fields_cnt#36 (byte) form_fields_cnt#0 +Redundant Phi (byte) form_fields_cnt#32 (byte) form_fields_cnt#36 Redundant Phi (byte*) print_screen#13 (byte*) print_screen#17 Redundant Phi (byte*) print_line_cursor#26 (byte*) print_line_cursor#17 Redundant Phi (byte*) print_char_cursor#10 (byte*) print_char_cursor#18 Redundant Phi (signed byte) form_cursor_count#0 (signed byte) form_cursor_count#13 -Redundant Phi (byte) key_down_debounce#0 (byte) key_down_debounce#11 +Redundant Phi (byte) keyboard_events_size#21 (byte) keyboard_events_size#24 +Redundant Phi (byte) keyboard_modifiers#19 (byte) keyboard_modifiers#10 Redundant Phi (byte) form_field_idx#0 (byte) form_field_idx#14 -Redundant Phi (byte) key_right_debounce#0 (byte) key_right_debounce#11 Redundant Phi (byte*) print_screen#31 (byte*) print_screen#14 Redundant Phi (byte*) print_line_cursor#53 (byte*) print_line_cursor#10 Redundant Phi (byte*) print_char_cursor#54 (byte*) print_char_cursor#11 -Redundant Phi (signed byte) form_cursor_count#58 (signed byte) form_cursor_count#1 -Redundant Phi (byte) key_down_debounce#65 (byte) key_down_debounce#1 -Redundant Phi (byte) form_field_idx#67 (byte) form_field_idx#1 -Redundant Phi (byte) key_right_debounce#65 (byte) key_right_debounce#1 -Redundant Phi (byte) form_fields_cnt#29 (byte) form_fields_cnt#32 +Redundant Phi (signed byte) form_cursor_count#53 (signed byte) form_cursor_count#1 +Redundant Phi (byte) keyboard_events_size#100 (byte) keyboard_events_size#22 +Redundant Phi (byte) keyboard_modifiers#81 (byte) keyboard_modifiers#20 +Redundant Phi (byte) form_field_idx#61 (byte) form_field_idx#1 +Redundant Phi (byte) form_fields_cnt#30 (byte) form_fields_cnt#32 Redundant Phi (byte*) print_screen#21 (byte*) print_screen#31 Redundant Phi (byte*) print_line_cursor#41 (byte*) print_line_cursor#53 Redundant Phi (byte*) print_char_cursor#43 (byte*) print_char_cursor#54 -Redundant Phi (signed byte) form_cursor_count#28 (signed byte) form_cursor_count#58 -Redundant Phi (byte) key_down_debounce#26 (byte) key_down_debounce#65 -Redundant Phi (byte) form_field_idx#38 (byte) form_field_idx#67 -Redundant Phi (byte) key_right_debounce#26 (byte) key_right_debounce#65 -Redundant Phi (byte) form_fields_cnt#11 (byte) form_fields_cnt#29 +Redundant Phi (signed byte) form_cursor_count#27 (signed byte) form_cursor_count#53 +Redundant Phi (byte) keyboard_events_size#47 (byte) keyboard_events_size#100 +Redundant Phi (byte) keyboard_modifiers#48 (byte) keyboard_modifiers#81 +Redundant Phi (byte) form_field_idx#37 (byte) form_field_idx#61 +Redundant Phi (byte) form_fields_cnt#11 (byte) form_fields_cnt#30 Redundant Phi (byte*) print_screen#15 (byte*) print_screen#1 Redundant Phi (byte*) print_line_cursor#11 (byte*) print_screen#1 Redundant Phi (byte*) print_char_cursor#12 (byte*) print_screen#1 @@ -5306,58 +6252,71 @@ Redundant Phi (byte*) print_char_cursor#16 (byte*) print_line_cursor#24 Redundant Phi (byte*) print_char_cursor#17 (byte*) print_char_cursor#22 Redundant Phi (byte*) print_line_cursor#16 (byte*) print_line_cursor#2 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) keyboard_events_size#36 (byte) keyboard_events_size#24 +Redundant Phi (byte) keyboard_modifiers#35 (byte) keyboard_modifiers#10 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#29 (byte*) print_screen#17 Redundant Phi (byte*) print_line_cursor#49 (byte*) print_line_cursor#17 Redundant Phi (byte*) print_char_cursor#52 (byte*) print_char_cursor#18 -Redundant Phi (byte) form_fields_cnt#26 (byte) form_fields_cnt#30 +Redundant Phi (byte) form_fields_cnt#24 (byte) form_fields_cnt#28 Redundant Phi (signed byte) form_cursor_count#12 (signed byte) form_cursor_count#16 -Redundant Phi (byte) key_down_debounce#10 (byte) key_down_debounce#13 +Redundant Phi (byte) keyboard_events_size#23 (byte) keyboard_events_size#11 +Redundant Phi (byte) keyboard_modifiers#21 (byte) keyboard_modifiers#11 Redundant Phi (byte) form_field_idx#13 (byte) form_field_idx#18 -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#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 -Redundant Phi (byte) form_fields_cnt#10 (byte) form_fields_cnt#26 +Redundant Phi (byte) keyboard_events_size#38 (byte) keyboard_events_size#36 +Redundant Phi (byte) keyboard_modifiers#37 (byte) keyboard_modifiers#35 +Redundant Phi (byte) form_fields_cnt#10 (byte) form_fields_cnt#24 +Redundant Phi (byte) keyboard_events_size#10 (byte) keyboard_events_size#17 +Redundant Phi (byte) keyboard_modifiers#11 (byte) keyboard_modifiers#18 +Redundant Phi (byte) keyboard_events_size#11 (byte) keyboard_events_size#20 Redundant Phi (byte*) print_screen#18 (byte*) print_screen#14 Redundant Phi (byte*) print_line_cursor#18 (byte*) print_line_cursor#10 Redundant Phi (byte*) print_char_cursor#19 (byte*) print_char_cursor#11 Redundant Phi (signed byte) form_cursor_count#17 (signed byte) form_cursor_count#1 -Redundant Phi (byte) key_down_debounce#14 (byte) key_down_debounce#1 +Redundant Phi (byte) keyboard_events_size#13 (byte) keyboard_events_size#22 +Redundant Phi (byte) keyboard_modifiers#13 (byte) keyboard_modifiers#20 Redundant Phi (byte) form_field_idx#10 (byte) form_field_idx#1 -Redundant Phi (byte) key_right_debounce#14 (byte) key_right_debounce#1 Succesful SSA optimization Pass2RedundantPhiElimination Redundant Phi (byte*) print_char_cursor#46 (byte*) print_screen#9 Redundant Phi (byte*) print_line_cursor#44 (byte*) print_screen#9 Redundant Phi (byte*) print_screen#9 (byte*) print_screen#1 +Redundant Phi (byte) keyboard_event_scan::row#6 (byte) keyboard_event_scan::row#2 Succesful SSA optimization Pass2RedundantPhiElimination Simple Condition (boolean~) print_str_lines::$0 if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2 Simple Condition (boolean~) print_str_lines::$2 if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 Simple Condition (boolean~) print_str_lines::$3 if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 Simple Condition (boolean~) print_ln::$1 if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 +Simple Condition (boolean~) keyboard_event_scan::$2 if((byte) keyboard_event_scan::row_scan#0==*((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 +Simple Condition (boolean~) keyboard_event_scan::$6 if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@4 +Simple Condition (boolean~) keyboard_event_scan::$13 if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@3 +Simple Condition (boolean~) keyboard_event_scan::$8 if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 +Simple Condition (boolean~) keyboard_event_scan::$11 if((byte) keyboard_event_scan::event_type#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@6 +Simple Condition (boolean~) keyboard_event_scan::$15 if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 +Simple Condition (boolean~) keyboard_event_scan::$18 if((byte~) keyboard_event_scan::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 +Simple Condition (boolean~) keyboard_event_scan::$22 if((byte~) keyboard_event_scan::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 +Simple Condition (boolean~) keyboard_event_scan::$26 if((byte~) keyboard_event_scan::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 +Simple Condition (boolean~) keyboard_event_scan::$30 if((byte~) keyboard_event_scan::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@12 +Simple Condition (boolean~) keyboard_event_get::$1 if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 Simple Condition (boolean~) menu::$23 if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 Simple Condition (boolean~) menu::$32 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 Simple Condition (boolean~) form_set_screen::$3 if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 Simple Condition (boolean~) form_render_values::$1 if((byte) form_render_values::idx#1<(byte) form_fields_cnt#0) goto form_render_values::@1 Simple Condition (boolean~) form_control::$2 if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@1 Simple Condition (boolean~) form_control::$5 if((signed byte) form_cursor_count#15>=(signed word/signed byte/signed dword~) form_control::$3) goto form_control::@2 -Simple Condition (boolean~) form_control::$10 if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 -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#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 +Simple Condition (boolean~) form_control::$11 if((byte) form_control::key_event#0!=(byte) KEY_CRSR_DOWN#0) goto form_control::@4 +Simple Condition (boolean~) form_control::$23 if((byte) form_control::key_event#0!=(byte) KEY_CRSR_RIGHT#0) goto form_control::@9 +Simple Condition (boolean~) form_control::$15 if((byte~) form_control::$13!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 +Simple Condition (boolean~) form_control::$19 if((byte) form_field_idx#41!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@8 +Simple Condition (boolean~) form_control::$17 if((byte) form_field_idx#40!=(byte) form_fields_cnt#28) goto form_control::@6 +Simple Condition (boolean~) form_control::$26 if((byte~) form_control::$24!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 +Simple Condition (boolean~) form_control::$30 if(*((byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@13 +Simple Condition (boolean~) form_control::$28 if(*((byte[]) form_fields_val#0 + (byte) form_field_idx#14)<=*((byte[]) form_fields_max#0 + (byte) form_field_idx#14)) goto form_control::@11 Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) RASTER#0 = ((byte*))53266 Constant (const byte*) BORDERCOL#0 = ((byte*))53280 @@ -5383,34 +6342,54 @@ Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 Constant (const byte*) print_screen#0 = ((byte*))1024 -Constant (const string) print_hextab#0 = $19 +Constant (const string) print_hextab#0 = $20 Constant (const byte) KEY_CRSR_RIGHT#0 = 2 Constant (const byte) KEY_CRSR_DOWN#0 = 7 +Constant (const byte) KEY_LSHIFT#0 = 15 Constant (const byte) KEY_RSHIFT#0 = 52 +Constant (const byte) KEY_CTRL#0 = 58 +Constant (const byte) KEY_COMMODORE#0 = 61 Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } -Constant (const string) $0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" -Constant (const string) $9 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @" +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } +Constant (const byte) keyboard_events_size#0 = 0 +Constant (const byte) keyboard_modifiers#0 = 0 +Constant (const byte) KEY_MODIFIER_LSHIFT#0 = 1 +Constant (const byte) KEY_MODIFIER_RSHIFT#0 = 2 +Constant (const byte) KEY_MODIFIER_CTRL#0 = 4 +Constant (const byte) KEY_MODIFIER_COMMODORE#0 = 8 +Constant (const byte[8]) keyboard_scan_values#0 = { fill( 8, 0) } +Constant (const byte) keyboard_event_scan::keycode#0 = 0 +Constant (const byte) keyboard_event_scan::row#0 = 0 +Constant (const byte) keyboard_event_scan::col#0 = 0 +Constant (const byte) keyboard_modifiers#1 = 0 +Constant (const byte) keyboard_event_get::return#1 = 255 +Constant (const string) $1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +Constant (const string) $10 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @" Constant (const byte*) menu::SCREEN#0 = ((byte*))32768 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#36 = 0 +Constant (const byte) form_field_idx#35 = 0 Constant (const byte) form_fields_cnt#0 = 35 Constant (const byte[]) form_fields_x#0 = { 22, 7, 7, 7, 7, 7, 7, 7, 17, 17, 17, 16, 17, 16, 17, 16, 17, 27, 26, 27, 26, 27, 26, 27, 38, 38, 38, 37, 38, 37, 38, 37, 38, 37, 38 } Constant (const byte[]) form_fields_y#0 = { 0, 2, 3, 4, 5, 6, 7, 8, 7, 8, 2, 3, 3, 4, 4, 5, 5, 2, 3, 3, 4, 4, 5, 5, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8 } Constant (const byte[]) form_fields_max#0 = { 13, 1, 1, 1, 1, 1, 2, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 } Constant (const byte[]) form_fields_val#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 Constant (const signed byte) FORM_CURSOR_BLINK#0 = 40 Constant (const byte) form_set_screen::y#0 = 0 Constant (const byte) form_render_values::idx#0 = 0 Constant (const byte) form_field_idx#7 = 0 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" -Constant (const string) $10 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @" +Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 +Constant (const byte) keyboard_event_pressed::keycode#0 = KEY_LSHIFT#0 +Constant (const byte) keyboard_event_pressed::keycode#1 = KEY_RSHIFT#0 +Constant (const byte) keyboard_modifiers#2 = keyboard_modifiers#1|KEY_MODIFIER_LSHIFT#0 +Constant (const byte) keyboard_event_pressed::keycode#2 = KEY_CTRL#0 +Constant (const byte) keyboard_event_pressed::keycode#3 = KEY_COMMODORE#0 +Constant (const string) $2 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +Constant (const string) $11 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @" Constant (const dword) menu::$0 = ((dword))menu::CHARSET#0 Constant (const dword) menu::$3 = DTV_COLOR_BANK_DEFAULT#0/1024 Constant (const dword) menu::$6 = DTV_COLOR_BANK_DEFAULT#0/1024 @@ -5421,17 +6400,13 @@ Constant (const word) menu::$18 = ((word))menu::CHARSET#0 Constant (const byte*) print_set_screen::screen#0 = COLS#0 Constant (const byte*) print_set_screen::screen#1 = menu::SCREEN#0 Constant (const byte*) form_set_screen::screen#0 = menu::SCREEN#0 -Constant (const signed byte) form_cursor_count#26 = FORM_CURSOR_BLINK#0/2 +Constant (const signed byte) form_cursor_count#25 = FORM_CURSOR_BLINK#0/2 Constant (const signed word/signed byte/signed dword) form_control::$3 = FORM_CURSOR_BLINK#0/2 Constant (const signed byte) form_cursor_count#6 = FORM_CURSOR_BLINK#0 -Constant (const byte) keyboard_key_pressed::key#0 = KEY_CRSR_DOWN#0 -Constant (const byte) keyboard_key_pressed::key#1 = KEY_CRSR_RIGHT#0 -Constant (const byte) keyboard_key_pressed::key#2 = KEY_RSHIFT#0 Constant (const signed byte) form_cursor_count#7 = FORM_CURSOR_BLINK#0/2 -Constant (const byte) keyboard_key_pressed::key#3 = KEY_RSHIFT#0 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $2 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" -Constant (const string) $11 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @" +Constant (const string) $3 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +Constant (const string) $12 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @" Constant (const dword) menu::$1 = menu::$0/65536 Constant (const word) menu::$4 = ((word))menu::$3 Constant (const word) menu::$7 = ((word))menu::$6 @@ -5440,8 +6415,8 @@ Constant (const byte/word/dword) menu::$14 = menu::$13|3 Constant (const word) menu::$16 = menu::$15&16383 Constant (const word) menu::$19 = menu::$18&16383 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $3 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" -Constant (const string) $12 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @" +Constant (const string) $4 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +Constant (const string) $13 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @" Constant (const byte) menu::$2 = ((byte))menu::$1 Constant (const byte) menu::$5 = menu::$7 @@ -5449,20 +6424,20 @@ Constant (const byte) menu::$11 = ((byte))menu::$10 Constant (const word/signed dword/dword) menu::$17 = menu::$16/64 Constant (const word/signed dword/dword) menu::$20 = menu::$19/1024 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $4 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" -Constant (const string) $13 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @" +Constant (const string) $5 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @" +Constant (const string) $14 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @" Constant (const byte/word/dword) menu::$12 = 3^menu::$11 Constant (const word/dword) menu::$21 = menu::$17|menu::$20 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $5 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn ooooooooo @" -Constant (const string) $14 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @" +Constant (const string) $6 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn ooooooooo @" +Constant (const string) $15 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @" Constant (const byte) menu::$22 = ((byte))menu::$21 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $6 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @" -Constant (const string) $15 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @" +Constant (const string) $7 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @" +Constant (const string) $16 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $7 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @" -Constant (const string) $16 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @"+" chunk 0 overs 0 bgcol3 00 @" +Constant (const string) $8 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @" +Constant (const string) $17 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @"+" chunk 0 overs 0 bgcol3 00 @" Succesful SSA optimization Pass2ConstantIdentification Constant (const string) MENU_COLS#0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn mmmmmmmm mmmmmmmm ooooooooo @"+" nnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @"+" nnnnnnn nnnnnnnn ooooooooo @"+"@" Constant (const string) MENU_TEXT#0 = " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @"+" chunk 0 overs 0 bgcol3 00 @"+"@" @@ -5471,6 +6446,12 @@ Constant (const string) print_str_lines::str#1 = MENU_COLS#0 Constant (const string) print_str_lines::str#2 = MENU_TEXT#0 Succesful SSA optimization Pass2ConstantIdentification Multiple usages for variable. Not optimizing sub-constant (byte*) print_screen#1 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::keycode#11 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_events_size#14 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_events_size#14 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 Multiple usages for variable. Not optimizing sub-constant (byte*) form_set_screen::line#2 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 @@ -5487,7 +6468,6 @@ Succesful SSA optimization Pass2FixInlineConstructors Eliminating unused variable - keeping the phi block (byte*) print_screen#14 Eliminating unused variable - keeping the phi block (byte*) print_line_cursor#10 Eliminating unused variable - keeping the phi block (byte*) print_char_cursor#11 -Eliminating unused constant (const string) $20 Eliminating unused constant (const string) $21 Eliminating unused constant (const string) $22 Eliminating unused constant (const string) $23 @@ -5507,8 +6487,7 @@ Eliminating unused constant (const string) $36 Eliminating unused constant (const string) $37 Eliminating unused constant (const string) $38 Eliminating unused constant (const string) $39 -Eliminating unused constant (const string) $0 -Eliminating unused constant (const string) $9 +Eliminating unused constant (const string) $40 Eliminating unused constant (const string) $1 Eliminating unused constant (const string) $10 Eliminating unused constant (const string) $2 @@ -5523,6 +6502,8 @@ Eliminating unused constant (const string) $6 Eliminating unused constant (const string) $15 Eliminating unused constant (const string) $7 Eliminating unused constant (const string) $16 +Eliminating unused constant (const string) $8 +Eliminating unused constant (const string) $17 Succesful SSA optimization PassNEliminateUnusedVars Eliminating unused variable - keeping the phi block (byte*) print_screen#17 Eliminating unused variable - keeping the phi block (byte*) print_line_cursor#17 @@ -5538,38 +6519,52 @@ Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) @11 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) @15 +Culled Empty Block (label) @19 +Culled Empty Block (label) keyboard_event_scan::@13 +Culled Empty Block (label) keyboard_event_scan::@5 +Not culling empty block because it shares successor with its predecessor. (label) keyboard_event_scan::@21 +Culled Empty Block (label) keyboard_event_scan::@12 +Culled Empty Block (label) keyboard_event_get::@3 Culled Empty Block (label) main::@7 -Culled Empty Block (label) @20 +Culled Empty Block (label) @23 Culled Empty Block (label) menu::@22 Culled Empty Block (label) menu::@3 Culled Empty Block (label) menu::@6 Culled Empty Block (label) menu::@23 -Culled Empty Block (label) @21 -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::@22 +Culled Empty Block (label) @24 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@14 +Culled Empty Block (label) form_control::@6 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@19 +Culled Empty Block (label) form_control::@8 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 +Culled Empty Block (label) @29 Succesful SSA optimization Pass2CullEmptyBlocks -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) keyboard_event_scan::@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::@19 Not aliassing across scopes: print_char_cursor#22 print_screen#1 Not aliassing across scopes: print_line_cursor#2 print_screen#1 Not aliassing across scopes: print_line_cursor#21 print_line_cursor#2 Not aliassing across scopes: print_cls::sc#0 print_screen#1 Not aliassing across scopes: print_screen#1 print_set_screen::screen#2 -Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 +Not aliassing across scopes: keyboard_events_size#43 keyboard_events_size#24 +Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_event_scan::row#2 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 -Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_scan::row_scan#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_pressed::return#0 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$16 keyboard_event_pressed::return#0 +Not aliassing across scopes: keyboard_event_pressed::return#1 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$20 keyboard_event_pressed::return#1 +Not aliassing across scopes: keyboard_event_pressed::return#2 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$24 keyboard_event_pressed::return#2 +Not aliassing across scopes: keyboard_event_pressed::return#3 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$28 keyboard_event_pressed::return#3 Not aliassing across scopes: form_cursor_count#13 form_cursor_count#1 -Not aliassing across scopes: key_down_debounce#11 key_down_debounce#1 +Not aliassing across scopes: keyboard_events_size#24 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#10 keyboard_modifiers#20 Not aliassing across scopes: form_field_idx#14 form_field_idx#1 -Not aliassing across scopes: key_right_debounce#11 key_right_debounce#1 Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 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 @@ -5577,26 +6572,22 @@ Not aliassing across scopes: form_render_values::field#0 form_field_ptr::return# Not aliassing across scopes: form_field_ptr::field_idx#1 form_field_idx#14 Not aliassing across scopes: form_field_ptr::return#3 form_field_ptr::return#0 Not aliassing across scopes: form_control::field#0 form_field_ptr::return#3 -Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_down#0 keyboard_key_pressed::return#2 -Not aliassing across scopes: key_down_debounce#20 key_down_debounce#11 -Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_right#0 keyboard_key_pressed::return#3 -Not aliassing across scopes: key_down_debounce#23 form_control::key_down#0 -Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#4 +Not aliassing across scopes: keyboard_event_get::return#3 keyboard_event_get::return#2 +Not aliassing across scopes: form_control::key_event#0 keyboard_event_get::return#3 Not aliassing across scopes: form_field_idx#18 form_field_idx#14 -Not aliassing across scopes: key_right_debounce#13 key_right_debounce#11 -Not aliassing across scopes: key_right_debounce#21 form_control::key_right#0 -Not aliassing across scopes: keyboard_key_pressed::return#10 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 -Self Phi Eliminated (byte) form_fields_cnt#30 +Self Phi Eliminated (byte) form_fields_cnt#28 Succesful SSA optimization Pass2SelfPhiElimination -Redundant Phi (byte) form_fields_cnt#30 (const byte) form_fields_cnt#0 +Redundant Phi (byte) form_fields_cnt#28 (const byte) form_fields_cnt#0 Succesful SSA optimization Pass2RedundantPhiElimination Constant (const byte) form_field_idx#8 = form_fields_cnt#0-1 Succesful SSA optimization Pass2ConstantIdentification Multiple usages for variable. Not optimizing sub-constant (byte*) print_screen#1 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::keycode#11 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_events_size#14 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_events_size#14 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 Multiple usages for variable. Not optimizing sub-constant (byte*) form_set_screen::line#2 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 @@ -5608,21 +6599,31 @@ 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::@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 culling empty block because it shares successor with its predecessor. (label) keyboard_event_scan::@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::@19 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@21 Not aliassing across scopes: print_char_cursor#22 print_screen#1 Not aliassing across scopes: print_line_cursor#2 print_screen#1 Not aliassing across scopes: print_line_cursor#21 print_line_cursor#2 Not aliassing across scopes: print_cls::sc#0 print_screen#1 Not aliassing across scopes: print_screen#1 print_set_screen::screen#2 -Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 +Not aliassing across scopes: keyboard_events_size#43 keyboard_events_size#24 +Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_event_scan::row#2 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 -Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_scan::row_scan#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_event_pressed::return#0 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$16 keyboard_event_pressed::return#0 +Not aliassing across scopes: keyboard_event_pressed::return#1 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$20 keyboard_event_pressed::return#1 +Not aliassing across scopes: keyboard_event_pressed::return#2 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$24 keyboard_event_pressed::return#2 +Not aliassing across scopes: keyboard_event_pressed::return#3 keyboard_event_pressed::return#10 +Not aliassing across scopes: keyboard_event_scan::$28 keyboard_event_pressed::return#3 Not aliassing across scopes: form_cursor_count#13 form_cursor_count#1 -Not aliassing across scopes: key_down_debounce#11 key_down_debounce#1 +Not aliassing across scopes: keyboard_events_size#24 keyboard_events_size#22 +Not aliassing across scopes: keyboard_modifiers#10 keyboard_modifiers#20 Not aliassing across scopes: form_field_idx#14 form_field_idx#1 -Not aliassing across scopes: key_right_debounce#11 key_right_debounce#1 Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 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 @@ -5630,20 +6631,16 @@ Not aliassing across scopes: form_render_values::field#0 form_field_ptr::return# Not aliassing across scopes: form_field_ptr::field_idx#1 form_field_idx#14 Not aliassing across scopes: form_field_ptr::return#3 form_field_ptr::return#0 Not aliassing across scopes: form_control::field#0 form_field_ptr::return#3 -Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_down#0 keyboard_key_pressed::return#2 -Not aliassing across scopes: key_down_debounce#20 key_down_debounce#11 -Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::key_right#0 keyboard_key_pressed::return#3 -Not aliassing across scopes: key_down_debounce#23 form_control::key_down#0 -Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#4 +Not aliassing across scopes: keyboard_event_get::return#3 keyboard_event_get::return#2 +Not aliassing across scopes: form_control::key_event#0 keyboard_event_get::return#3 Not aliassing across scopes: form_field_idx#18 form_field_idx#14 -Not aliassing across scopes: key_right_debounce#13 key_right_debounce#11 -Not aliassing across scopes: key_right_debounce#21 form_control::key_right#0 -Not aliassing across scopes: keyboard_key_pressed::return#10 keyboard_key_pressed::return#0 -Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 Multiple usages for variable. Not optimizing sub-constant (byte*) print_screen#1 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::keycode#11 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_events_size#14 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_events_size#14 +Multiple usages for variable. Not optimizing sub-constant (byte) keyboard_event_scan::row#2 Multiple usages for variable. Not optimizing sub-constant (byte*) form_set_screen::line#2 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 @@ -5666,32 +6663,65 @@ Inlining constant with var siblings (const string) print_str_lines::str#2 Inlining constant with var siblings (const string) print_str_lines::str#2 Inlining constant with var siblings (const byte*) print_set_screen::screen#0 Inlining constant with var siblings (const byte*) print_set_screen::screen#1 -Inlining constant with var siblings (const byte) keyboard_key_pressed::key#0 -Inlining constant with var siblings (const byte) keyboard_key_pressed::key#1 -Inlining constant with var siblings (const byte) keyboard_key_pressed::key#2 -Inlining constant with var siblings (const byte) keyboard_key_pressed::key#3 +Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::row#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::row#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::col#0 +Inlining constant with var siblings (const byte) keyboard_event_scan::col#0 +Inlining constant with var siblings (const byte) keyboard_event_pressed::keycode#0 +Inlining constant with var siblings (const byte) keyboard_event_pressed::keycode#1 +Inlining constant with var siblings (const byte) keyboard_event_pressed::keycode#2 +Inlining constant with var siblings (const byte) keyboard_event_pressed::keycode#3 +Inlining constant with var siblings (const byte) keyboard_event_get::return#1 +Inlining constant with var siblings (const byte) keyboard_event_get::return#1 +Inlining constant with var siblings (const byte) keyboard_event_get::return#1 Inlining constant with var siblings (const byte) menu::i#0 Inlining constant with var siblings (const byte) menu::i#0 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#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 -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_right_debounce#24 -Inlining constant with var siblings (const byte) key_right_debounce#24 -Inlining constant with var siblings (const byte) key_right_debounce#24 -Inlining constant with var siblings (const byte) key_right_debounce#24 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_events_size#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#0 +Inlining constant with different constant siblings (const byte) keyboard_modifiers#0 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) keyboard_modifiers#1 +Inlining constant with different constant siblings (const byte) keyboard_modifiers#1 +Inlining constant with var siblings (const byte) form_field_idx#35 +Inlining constant with var siblings (const byte) form_field_idx#35 +Inlining constant with var siblings (const byte) form_field_idx#35 +Inlining constant with var siblings (const byte) form_field_idx#35 +Inlining constant with var siblings (const byte) form_field_idx#35 +Inlining constant with var siblings (const byte) form_field_idx#35 +Inlining constant with different constant siblings (const byte) form_field_idx#35 Inlining constant with var siblings (const byte) form_field_idx#7 Inlining constant with var siblings (const byte) form_field_idx#7 Inlining constant with var siblings (const byte) form_field_idx#7 @@ -5699,12 +6729,23 @@ Inlining constant with var siblings (const byte) form_field_idx#7 Inlining constant with var siblings (const byte) form_field_idx#7 Inlining constant with var siblings (const byte) form_field_idx#7 Inlining constant with different constant siblings (const byte) form_field_idx#7 -Inlining constant with var siblings (const signed byte) form_cursor_count#26 -Inlining constant with var siblings (const signed byte) form_cursor_count#26 -Inlining constant with var siblings (const signed byte) form_cursor_count#26 -Inlining constant with var siblings (const signed byte) form_cursor_count#26 -Inlining constant with var siblings (const signed byte) form_cursor_count#26 -Inlining constant with different constant siblings (const signed byte) form_cursor_count#26 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const byte) keyboard_modifiers#2 +Inlining constant with different constant siblings (const byte) keyboard_modifiers#2 +Inlining constant with different constant siblings (const byte) keyboard_modifiers#2 +Inlining constant with var siblings (const signed byte) form_cursor_count#25 +Inlining constant with var siblings (const signed byte) form_cursor_count#25 +Inlining constant with var siblings (const signed byte) form_cursor_count#25 +Inlining constant with var siblings (const signed byte) form_cursor_count#25 +Inlining constant with var siblings (const signed byte) form_cursor_count#25 +Inlining constant with different constant siblings (const signed byte) form_cursor_count#25 Inlining constant with var siblings (const signed byte) form_cursor_count#6 Inlining constant with var siblings (const signed byte) form_cursor_count#6 Inlining constant with var siblings (const signed byte) form_cursor_count#6 @@ -5726,18 +6767,25 @@ 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 form_field_idx#35 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined keyboard_modifiers#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined keyboard_modifiers#2 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 +Constant inlined keyboard_modifiers#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined form_field_idx#8 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 +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 keyboard_event_scan::keycode#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined print_str_lines::str#2 = (const string) MENU_TEXT#0 +Constant inlined print_str_lines::str#1 = (const string) MENU_COLS#0 +Constant inlined form_cursor_count#25 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 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 Constant inlined menu::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 Constant inlined menu::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined keyboard_event_scan::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined menu::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 Constant inlined menu::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined form_field_idx#8 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined form_field_idx#7 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined $19 = (const string) print_hextab#0 -Constant inlined menu::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined keyboard_event_scan::row#0 = (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 @@ -5757,30 +6805,37 @@ Constant inlined menu::$0 = ((dword))(const byte*) menu::CHARSET#0 Constant inlined menu::$13 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined menu::$10 = ((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 Constant inlined menu::$11 = ((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined keyboard_key_pressed::key#0 = (const byte) KEY_CRSR_DOWN#0 Constant inlined form_render_values::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined keyboard_key_pressed::key#1 = (const byte) KEY_CRSR_RIGHT#0 -Constant inlined keyboard_key_pressed::key#2 = (const byte) KEY_RSHIFT#0 -Constant inlined keyboard_key_pressed::key#3 = (const byte) KEY_RSHIFT#0 -Constant inlined print_str_lines::str#2 = (const string) MENU_TEXT#0 -Constant inlined print_str_lines::str#1 = (const string) MENU_COLS#0 -Constant inlined key_right_debounce#24 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $20 = (const string) print_hextab#0 +Constant inlined keyboard_event_pressed::keycode#3 = (const byte) KEY_COMMODORE#0 +Constant inlined keyboard_event_pressed::keycode#2 = (const byte) KEY_CTRL#0 +Constant inlined keyboard_event_pressed::keycode#1 = (const byte) KEY_RSHIFT#0 +Constant inlined keyboard_event_pressed::keycode#0 = (const byte) KEY_LSHIFT#0 Constant inlined menu::$20 = ((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined keyboard_event_get::return#1 = (byte/word/signed word/dword/signed dword) 255 Constant inlined form_cursor_count#6 = (const signed byte) FORM_CURSOR_BLINK#0 -Constant inlined form_cursor_count#26 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined keyboard_events_size#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined form_cursor_count#7 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 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::@8 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@2 menu::@return menu::@5 menu::@7 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 +Block Sequence Planned @begin @28 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@8 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@2 menu::@return menu::@5 menu::@7 form_control form_control::@28 form_control::@14 form_control::@1 form_control::@15 form_control::@3 form_control::@29 form_control::@30 form_control::@17 form_control::@18 form_control::@19 form_control::@7 form_control::@return form_control::@5 form_control::@21 form_control::@4 form_control::@23 form_control::@24 form_control::@25 form_control::@12 form_control::@10 form_control::@27 form_control::@2 keyboard_event_get keyboard_event_get::@return keyboard_event_get::@1 keyboard_event_scan keyboard_event_scan::@1 keyboard_event_scan::@25 keyboard_event_scan::@3 keyboard_event_scan::@14 keyboard_event_scan::@15 keyboard_event_scan::@16 keyboard_event_scan::@4 keyboard_event_scan::@18 keyboard_event_scan::@8 keyboard_event_scan::@20 keyboard_event_scan::@26 keyboard_event_scan::@21 keyboard_event_scan::@9 keyboard_event_scan::@27 keyboard_event_scan::@22 keyboard_event_scan::@10 keyboard_event_scan::@28 keyboard_event_scan::@23 keyboard_event_scan::@11 keyboard_event_scan::@29 keyboard_event_scan::@24 keyboard_event_scan::@return keyboard_event_scan::@6 keyboard_event_scan::@2 keyboard_event_pressed keyboard_event_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::@24(between menu::@1 and menu::@1) -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_control::@31(between form_control::@28 and form_control::@1) +Added new block during phi lifting form_control::@32(between form_control::@18 and form_control::@7) +Added new block during phi lifting form_control::@33(between form_control::@5 and form_control::@7) +Added new block during phi lifting form_control::@34(between form_control::@4 and form_control::@return) +Added new block during phi lifting keyboard_event_get::@7(between keyboard_event_get and keyboard_event_get::@return) +Fixing phi predecessor for keyboard_event_get::return#2 to new block ( keyboard_event_get -> keyboard_event_get::@7 ) during phi lifting. +Added new block during phi lifting keyboard_event_scan::@30(between keyboard_event_scan::@8 and keyboard_event_scan::@1) +Added new block during phi lifting keyboard_event_scan::@31(between keyboard_event_scan::@4 and keyboard_event_scan::@3) +Added new block during phi lifting keyboard_event_scan::@32(between keyboard_event_scan::@25 and keyboard_event_scan::@3) +Fixing phi predecessor for keyboard_event_scan::col#2 to new block ( keyboard_event_scan::@25 -> keyboard_event_scan::@32 ) during phi lifting. +Added new block during phi lifting keyboard_event_scan::@33(between keyboard_event_scan::@3 and keyboard_event_scan::@4) +Added new block during phi lifting keyboard_event_scan::@34(between keyboard_event_scan::@14 and keyboard_event_scan::@4) +Added new block during phi lifting keyboard_event_scan::@35(between keyboard_event_scan::@27 and keyboard_event_scan::@10) +Added new block during phi lifting keyboard_event_scan::@36(between keyboard_event_scan::@28 and keyboard_event_scan::@11) +Added new block during phi lifting keyboard_event_scan::@37(between keyboard_event_scan::@29 and keyboard_event_scan::@return) 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) @@ -5788,9 +6843,9 @@ 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::@8 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@2 menu::@return menu::@5 menu::@7 menu::@24 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 +Block Sequence Planned @begin @28 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@8 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@2 menu::@return menu::@5 menu::@7 menu::@24 form_control form_control::@28 form_control::@14 form_control::@1 form_control::@15 form_control::@3 form_control::@29 form_control::@30 form_control::@17 form_control::@18 form_control::@19 form_control::@7 form_control::@return form_control::@32 form_control::@5 form_control::@21 form_control::@33 form_control::@4 form_control::@23 form_control::@24 form_control::@25 form_control::@12 form_control::@10 form_control::@27 form_control::@34 form_control::@2 form_control::@31 keyboard_event_get keyboard_event_get::@7 keyboard_event_get::@return keyboard_event_get::@1 keyboard_event_scan keyboard_event_scan::@1 keyboard_event_scan::@25 keyboard_event_scan::@32 keyboard_event_scan::@3 keyboard_event_scan::@14 keyboard_event_scan::@15 keyboard_event_scan::@16 keyboard_event_scan::@4 keyboard_event_scan::@18 keyboard_event_scan::@8 keyboard_event_scan::@20 keyboard_event_scan::@26 keyboard_event_scan::@21 keyboard_event_scan::@9 keyboard_event_scan::@27 keyboard_event_scan::@22 keyboard_event_scan::@10 keyboard_event_scan::@28 keyboard_event_scan::@23 keyboard_event_scan::@11 keyboard_event_scan::@29 keyboard_event_scan::@24 keyboard_event_scan::@return keyboard_event_scan::@37 keyboard_event_scan::@36 keyboard_event_scan::@35 keyboard_event_scan::@30 keyboard_event_scan::@31 keyboard_event_scan::@6 keyboard_event_scan::@34 keyboard_event_scan::@33 keyboard_event_scan::@2 keyboard_event_pressed keyboard_event_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 @28 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@2 Adding NOP phi() at start of menu::@15 @@ -5801,11 +6856,13 @@ Adding NOP phi() at start of menu::@19 Adding NOP phi() at start of menu::@20 Adding NOP phi() at start of menu::@21 Adding NOP phi() at start of menu::@7 -Adding NOP phi() at start of form_control::@16 +Adding NOP phi() at start of form_control::@14 Adding NOP phi() at start of form_control::@3 -Adding NOP phi() at start of form_control::@22 -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_control::@29 +Adding NOP phi() at start of form_control::@19 +Adding NOP phi() at start of form_control::@21 +Adding NOP phi() at start of keyboard_event_scan::@20 +Adding NOP phi() at start of keyboard_event_scan::@21 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::@9 @@ -5813,10 +6870,10 @@ CALL GRAPH Calls in [] to main:2 Calls in [main] to menu:10 Calls in [menu] to print_set_screen:30 print_cls:32 print_str_lines:34 print_set_screen:36 print_cls:38 print_str_lines:40 form_set_screen:42 form_render_values:44 form_control:54 -Calls in [form_control] to form_field_ptr:62 keyboard_key_pressed:73 keyboard_key_pressed:81 keyboard_key_pressed:101 keyboard_key_pressed:108 -Calls in [keyboard_key_pressed] to keyboard_matrix_read:139 -Calls in [form_render_values] to form_field_ptr:157 -Calls in [print_str_lines] to print_ln:196 +Calls in [form_control] to form_field_ptr:62 keyboard_event_scan:73 keyboard_event_get:75 +Calls in [keyboard_event_scan] to keyboard_matrix_read:123 keyboard_event_pressed:151 keyboard_event_pressed:157 keyboard_event_pressed:164 keyboard_event_pressed:171 +Calls in [form_render_values] to form_field_ptr:215 +Calls in [print_str_lines] to print_ln:254 Propagating live ranges... Propagating live ranges... @@ -5855,74 +6912,95 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Propagating live ranges... -Created 31 initial phi equivalence classes -Coalesced [11] form_cursor_count#59 ← form_cursor_count#13 -Coalesced [12] key_down_debounce#66 ← key_down_debounce#11 -Coalesced [13] form_field_idx#68 ← form_field_idx#14 -Coalesced [14] key_right_debounce#66 ← key_right_debounce#11 -Coalesced (already) [45] form_cursor_count#60 ← form_cursor_count#1 -Coalesced (already) [46] key_down_debounce#67 ← key_down_debounce#1 -Coalesced (already) [47] form_field_idx#69 ← form_field_idx#1 -Coalesced (already) [48] key_right_debounce#67 ← key_right_debounce#1 -Coalesced [55] form_cursor_count#61 ← form_cursor_count#16 -Coalesced [56] key_down_debounce#68 ← key_down_debounce#13 -Coalesced [57] form_field_idx#70 ← form_field_idx#18 -Coalesced [58] key_right_debounce#68 ← key_right_debounce#13 +Created 43 initial phi equivalence classes +Coalesced [11] form_cursor_count#54 ← form_cursor_count#13 +Coalesced [12] keyboard_events_size#101 ← keyboard_events_size#24 +Coalesced [13] keyboard_modifiers#82 ← keyboard_modifiers#10 +Coalesced [14] form_field_idx#62 ← form_field_idx#14 +Coalesced (already) [45] form_cursor_count#55 ← form_cursor_count#1 +Coalesced (already) [46] keyboard_events_size#102 ← keyboard_events_size#22 +Coalesced (already) [47] keyboard_modifiers#83 ← keyboard_modifiers#20 +Coalesced (already) [48] form_field_idx#63 ← form_field_idx#1 +Coalesced [55] form_cursor_count#56 ← form_cursor_count#16 +Coalesced [56] keyboard_events_size#103 ← keyboard_events_size#20 +Coalesced [57] keyboard_modifiers#84 ← keyboard_modifiers#18 +Coalesced [58] form_field_idx#64 ← form_field_idx#18 Coalesced [59] menu::i#3 ← menu::i#1 Coalesced [61] form_field_ptr::field_idx#3 ← form_field_ptr::field_idx#1 -Coalesced [89] key_down_debounce#72 ← key_down_debounce#23 -Coalesced [90] form_field_idx#76 ← form_field_idx#32 -Coalesced (already) [91] key_right_debounce#72 ← key_right_debounce#11 -Coalesced [94] form_field_idx#71 ← form_field_idx#41 -Coalesced [98] form_field_idx#72 ← form_field_idx#42 -Coalesced [99] key_down_debounce#74 ← key_down_debounce#23 -Coalesced [116] form_cursor_count#65 ← form_cursor_count#15 -Coalesced (already) [117] key_down_debounce#71 ← key_down_debounce#20 -Coalesced (already) [118] form_field_idx#75 ← form_field_idx#14 -Coalesced [119] key_right_debounce#71 ← key_right_debounce#21 -Coalesced (already) [123] form_cursor_count#64 ← form_cursor_count#15 -Coalesced (already) [124] key_down_debounce#70 ← key_down_debounce#20 -Coalesced (already) [125] form_field_idx#74 ← form_field_idx#14 -Coalesced (already) [126] key_right_debounce#70 ← key_right_debounce#21 -Coalesced (already) [127] form_cursor_count#63 ← form_cursor_count#15 -Coalesced (already) [128] key_down_debounce#69 ← key_down_debounce#20 -Coalesced (already) [129] form_field_idx#73 ← form_field_idx#14 -Coalesced (already) [130] key_right_debounce#69 ← key_right_debounce#11 -Coalesced (already) [131] key_down_debounce#73 ← key_down_debounce#11 -Coalesced [134] form_cursor_count#62 ← form_cursor_count#5 -Coalesced [156] form_field_ptr::field_idx#4 ← form_field_ptr::field_idx#0 -Coalesced [164] form_render_values::idx#4 ← form_render_values::idx#1 -Coalesced [175] form_set_screen::line#3 ← form_set_screen::line#1 -Coalesced [176] form_set_screen::y#3 ← form_set_screen::y#1 -Coalesced [178] print_str_lines::str#11 ← print_str_lines::str#5 -Not coalescing [179] print_char_cursor#63 ← print_screen#1 -Coalesced [180] print_line_cursor#63 ← print_screen#1 -Coalesced [184] print_str_lines::str#13 ← print_str_lines::str#3 -Coalesced [185] print_char_cursor#65 ← print_char_cursor#22 -Coalesced [192] print_char_cursor#68 ← print_char_cursor#1 -Coalesced [197] print_str_lines::str#12 ← print_str_lines::str#0 -Not coalescing [198] print_char_cursor#64 ← print_line_cursor#22 -Coalesced [199] print_line_cursor#64 ← print_line_cursor#22 -Coalesced (already) [200] print_str_lines::str#14 ← print_str_lines::str#0 -Coalesced [201] print_char_cursor#66 ← print_char_cursor#38 -Coalesced (already) [202] print_char_cursor#67 ← print_char_cursor#20 -Coalesced [203] print_line_cursor#65 ← print_line_cursor#2 -Coalesced (already) [208] print_line_cursor#66 ← print_line_cursor#22 -Coalesced [210] print_cls::sc#3 ← print_cls::sc#0 -Coalesced [217] print_cls::sc#4 ← print_cls::sc#1 -Coalesced [219] print_screen#1 ← print_set_screen::screen#2 -Coalesced down to 14 phi equivalence classes +Coalesced [87] form_field_idx#68 ← form_field_idx#30 +Coalesced [90] form_field_idx#65 ← form_field_idx#40 +Coalesced [94] form_field_idx#66 ← form_field_idx#41 +Coalesced [102] form_cursor_count#58 ← form_cursor_count#15 +Coalesced (already) [103] form_field_idx#67 ← form_field_idx#14 +Coalesced (already) [107] form_cursor_count#59 ← form_cursor_count#15 +Coalesced (already) [108] form_field_idx#69 ← form_field_idx#14 +Coalesced [111] form_cursor_count#57 ← form_cursor_count#5 +Coalesced [113] keyboard_events_size#105 ← keyboard_events_size#17 +Coalesced [118] keyboard_event_get::return#6 ← keyboard_event_get::return#0 +Coalesced [119] keyboard_events_size#104 ← keyboard_events_size#4 +Coalesced [120] keyboard_events_size#106 ← keyboard_events_size#24 +Coalesced [127] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#11 +Coalesced [128] keyboard_events_size#108 ← keyboard_events_size#43 +Coalesced [139] keyboard_events_size#110 ← keyboard_events_size#2 +Coalesced [145] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#15 +Coalesced [146] keyboard_events_size#114 ← keyboard_events_size#44 +Coalesced [162] keyboard_modifiers#85 ← keyboard_modifiers#3 +Coalesced [169] keyboard_modifiers#87 ← keyboard_modifiers#4 +Coalesced [176] keyboard_modifiers#90 ← keyboard_modifiers#5 +Coalesced [179] keyboard_modifiers#89 ← keyboard_modifiers#17 +Coalesced [180] keyboard_modifiers#88 ← keyboard_modifiers#16 +Coalesced [181] keyboard_modifiers#86 ← keyboard_modifiers#15 +Coalesced [182] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [183] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [184] keyboard_events_size#107 ← keyboard_events_size#17 +Coalesced [185] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [186] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced (already) [187] keyboard_events_size#109 ← keyboard_events_size#44 +Coalesced [190] keyboard_events_size#113 ← keyboard_events_size#1 +Coalesced (already) [191] keyboard_events_size#112 ← keyboard_events_size#14 +Coalesced (already) [192] keyboard_events_size#111 ← keyboard_events_size#14 +Coalesced [194] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#1 +Coalesced (already) [195] keyboard_events_size#115 ← keyboard_events_size#43 +Coalesced [214] form_field_ptr::field_idx#4 ← form_field_ptr::field_idx#0 +Coalesced [222] form_render_values::idx#4 ← form_render_values::idx#1 +Coalesced [233] form_set_screen::line#3 ← form_set_screen::line#1 +Coalesced [234] form_set_screen::y#3 ← form_set_screen::y#1 +Coalesced [236] print_str_lines::str#11 ← print_str_lines::str#5 +Not coalescing [237] print_char_cursor#64 ← print_screen#1 +Coalesced [238] print_line_cursor#64 ← print_screen#1 +Coalesced [242] print_str_lines::str#13 ← print_str_lines::str#3 +Coalesced [243] print_char_cursor#66 ← print_char_cursor#22 +Coalesced [250] print_char_cursor#69 ← print_char_cursor#1 +Coalesced [255] print_str_lines::str#12 ← print_str_lines::str#0 +Not coalescing [256] print_char_cursor#65 ← print_line_cursor#22 +Coalesced [257] print_line_cursor#65 ← print_line_cursor#22 +Coalesced (already) [258] print_str_lines::str#14 ← print_str_lines::str#0 +Coalesced [259] print_char_cursor#67 ← print_char_cursor#38 +Coalesced (already) [260] print_char_cursor#68 ← print_char_cursor#20 +Coalesced [261] print_line_cursor#66 ← print_line_cursor#2 +Coalesced (already) [266] print_line_cursor#67 ← print_line_cursor#22 +Coalesced [268] print_cls::sc#3 ← print_cls::sc#0 +Coalesced [275] print_cls::sc#4 ← print_cls::sc#1 +Coalesced [277] print_screen#1 ← print_set_screen::screen#2 +Coalesced down to 18 phi equivalence classes Culled Empty Block (label) menu::@24 -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::@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_control::@14 +Culled Empty Block (label) form_control::@19 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@32 +Culled Empty Block (label) form_control::@21 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@33 +Culled Empty Block (label) form_control::@34 +Not culling empty block because it shares successor with its predecessor. (label) form_control::@31 +Culled Empty Block (label) keyboard_event_get::@7 +Culled Empty Block (label) keyboard_event_scan::@32 +Not culling empty block because it shares successor with its predecessor. (label) keyboard_event_scan::@21 +Culled Empty Block (label) keyboard_event_scan::@37 +Culled Empty Block (label) keyboard_event_scan::@36 +Culled Empty Block (label) keyboard_event_scan::@35 +Culled Empty Block (label) keyboard_event_scan::@30 +Culled Empty Block (label) keyboard_event_scan::@31 +Culled Empty Block (label) keyboard_event_scan::@34 +Culled Empty Block (label) keyboard_event_scan::@33 Culled Empty Block (label) form_render_values::@4 Culled Empty Block (label) form_set_screen::@3 Culled Empty Block (label) print_str_lines::@12 @@ -5930,9 +7008,9 @@ 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::@8 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@2 menu::@return menu::@5 menu::@7 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 +Block Sequence Planned @begin @28 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@8 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@2 menu::@return menu::@5 menu::@7 form_control form_control::@28 form_control::@1 form_control::@15 form_control::@3 form_control::@29 form_control::@30 form_control::@17 form_control::@18 form_control::@7 form_control::@return form_control::@32 form_control::@5 form_control::@33 form_control::@4 form_control::@23 form_control::@24 form_control::@25 form_control::@12 form_control::@10 form_control::@27 form_control::@2 form_control::@31 keyboard_event_get keyboard_event_get::@return keyboard_event_get::@1 keyboard_event_scan keyboard_event_scan::@1 keyboard_event_scan::@25 keyboard_event_scan::@3 keyboard_event_scan::@14 keyboard_event_scan::@15 keyboard_event_scan::@16 keyboard_event_scan::@4 keyboard_event_scan::@18 keyboard_event_scan::@8 keyboard_event_scan::@20 keyboard_event_scan::@26 keyboard_event_scan::@21 keyboard_event_scan::@9 keyboard_event_scan::@27 keyboard_event_scan::@22 keyboard_event_scan::@10 keyboard_event_scan::@28 keyboard_event_scan::@23 keyboard_event_scan::@11 keyboard_event_scan::@29 keyboard_event_scan::@24 keyboard_event_scan::@return keyboard_event_scan::@6 keyboard_event_scan::@2 keyboard_event_pressed keyboard_event_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 @28 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@2 Adding NOP phi() at start of menu::@15 @@ -5944,10 +7022,13 @@ Adding NOP phi() at start of menu::@20 Adding NOP phi() at start of menu::@21 Adding NOP phi() at start of menu::@7 Adding NOP phi() at start of form_control::@3 -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_control::@29 +Adding NOP phi() at start of form_control::@32 +Adding NOP phi() at start of form_control::@33 +Adding NOP phi() at start of form_control::@31 +Adding NOP phi() at start of keyboard_event_scan +Adding NOP phi() at start of keyboard_event_scan::@20 +Adding NOP phi() at start of keyboard_event_scan::@21 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::@9 @@ -5990,424 +7071,544 @@ Propagating live ranges... FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@25 -@25: scope:[] from @begin + to:@28 +@28: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @25 +@end: scope:[] from @28 [3] phi() [ ] ( ) -main: scope:[main] from @25 +main: scope:[main] from @28 asm { sei } [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@2 - [6] (byte) key_right_debounce#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) key_right_debounce#11 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) - [6] (byte) form_field_idx#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) form_field_idx#14 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) - [6] (byte) key_down_debounce#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) key_down_debounce#11 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) - [6] (signed byte) form_cursor_count#1 ← phi( main/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(signed byte) form_cursor_count#13 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) - [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [6] (byte) form_field_idx#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) form_field_idx#14 ) [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [6] (byte) keyboard_modifiers#20 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) keyboard_modifiers#10 ) [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [6] (byte) keyboard_events_size#22 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) keyboard_events_size#24 ) [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [6] (signed byte) form_cursor_count#1 ← phi( main/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(signed byte) form_cursor_count#13 ) [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [7] if(true) goto main::@2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:main::@return main::@return: scope:[main] from main::@1 [8] return [ ] ( main:2 [ ] ) to:@return main::@2: scope:[main] from main::@1 - [9] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) - [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + [9] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [10] call menu param-assignment [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) to:main::@1 menu: scope:[menu] from main::@2 - [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 ] ) - [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((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 ] ) - [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((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 ] ) - [14] *((const byte*) DTV_CONTROL#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 ] ) - [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 ] ) - [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ 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 ] ) - [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 ] ) - [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#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 ] ) - [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ 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 ] ) + [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 - [20] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) [ 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 ] ) - [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 ] ) - [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 ] ) - [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 ] ) + [20] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ) + [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 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ) + [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) + [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) to:menu::@8 menu::@8: scope:[menu] from menu::@1 - [24] *((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 ] ) - [25] *((const byte*) BORDERCOL#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 ] ) - [26] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [24] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [25] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [26] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@15 menu::@15: scope:[menu] from menu::@8 - [27] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [28] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [27] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [28] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@16 menu::@16: scope:[menu] from menu::@15 - [29] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [30] call print_str_lines param-assignment [ 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 ] ) + [29] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [30] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@17 menu::@17: scope:[menu] from menu::@16 - [31] phi() [ 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 ] ) - [32] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [31] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [32] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@18 menu::@18: scope:[menu] from menu::@17 - [33] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [34] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [33] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [34] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:menu::@19 menu::@19: scope:[menu] from menu::@18 - [35] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - [36] call print_str_lines param-assignment [ 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 ] ) + [35] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + [36] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@20 menu::@20: scope:[menu] from menu::@19 - [37] phi() [ 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 ] ) - [38] call form_set_screen param-assignment [ 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 ] ) + [37] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [38] call form_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@21 menu::@21: scope:[menu] from menu::@20 - [39] phi() [ 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 ] ) - [40] call form_render_values param-assignment [ 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 ] ) + [39] phi() [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + [40] call form_render_values param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:menu::@2 menu::@2: scope:[menu] from menu::@21 menu::@7 - [41] (byte) key_right_debounce#11 ← phi( menu::@21/(byte) key_right_debounce#1 menu::@7/(byte) key_right_debounce#13 ) [ 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 ] ) - [41] (byte) form_field_idx#14 ← phi( menu::@21/(byte) form_field_idx#1 menu::@7/(byte) form_field_idx#18 ) [ 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 ] ) - [41] (byte) key_down_debounce#11 ← phi( menu::@21/(byte) key_down_debounce#1 menu::@7/(byte) key_down_debounce#13 ) [ 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 ] ) - [41] (signed byte) form_cursor_count#13 ← phi( menu::@21/(signed byte) form_cursor_count#1 menu::@7/(signed byte) form_cursor_count#16 ) [ 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 ] ) - [42] if(true) goto menu::@5 [ 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 ] ) + [41] (byte) form_field_idx#14 ← phi( menu::@21/(byte) form_field_idx#1 menu::@7/(byte) form_field_idx#18 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [41] (byte) keyboard_modifiers#10 ← phi( menu::@21/(byte) keyboard_modifiers#20 menu::@7/(byte) keyboard_modifiers#18 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [41] (byte) keyboard_events_size#24 ← phi( menu::@21/(byte) keyboard_events_size#22 menu::@7/(byte) keyboard_events_size#20 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [41] (signed byte) form_cursor_count#13 ← phi( menu::@21/(signed byte) form_cursor_count#1 menu::@7/(signed byte) form_cursor_count#16 ) [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) + [42] if(true) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) to:menu::@return menu::@return: scope:[menu] from menu::@2 - [43] return [ 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 ] ) + [43] return [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) to:@return menu::@5: scope:[menu] from menu::@2 menu::@5 - [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ 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 ] ) + [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) to:menu::@7 menu::@7: scope:[menu] from menu::@5 - [45] phi() [ 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 ] ) - [46] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [45] phi() [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) + [46] call form_control param-assignment [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) to:menu::@2 form_control: scope:[form_control] from menu::@7 - [47] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) - [48] 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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) - [49] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) - to:form_control::@32 -form_control::@32: scope:[form_control] from form_control - [50] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) - [51] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) - [52] 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:46 [ 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::@32 form_control::@37 - [53] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - [54] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - to:form_control::@17 -form_control::@17: scope:[form_control] from form_control::@1 - [55] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) - [56] *((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:46 [ 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::@17 form_control::@2 - [57] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) - [58] 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:46 [ 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 ] ) - [59] (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:46 [ 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::@33 -form_control::@33: scope:[form_control] from form_control::@3 - [60] (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:46 [ 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 ] ) - [61] 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:46 [ 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::@19 -form_control::@19: scope:[form_control] from form_control::@33 - [62] (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:46 [ 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 ] ) - [63] 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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) - to:form_control::@20 -form_control::@20: scope:[form_control] from form_control::@19 - [64] (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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) - [65] *((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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) - [66] 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:46 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - [67] (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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) - to:form_control::@35 -form_control::@35: scope:[form_control] from form_control::@20 - [68] (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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) - [69] 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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) - to:form_control::@21 -form_control::@21: scope:[form_control] from form_control::@35 - [70] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) - [71] 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:46 [ 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::@21 form_control::@38 form_control::@39 form_control::@6 - [72] (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:46 [ 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::@14 form_control::@26 form_control::@34 form_control::@8 - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [73] (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:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - [74] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) - to:@return -form_control::@38: scope:[form_control] from form_control::@21 - [75] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ 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::@35 - [76] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) - [77] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) - to:form_control::@8 -form_control::@39: scope:[form_control] from form_control::@6 - [78] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ( main:2::menu:10::form_control:46 [ 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::@19 form_control::@33 - [79] (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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ) - [80] 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:46 [ 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 ] ) - [81] (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:46 [ 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::@34 -form_control::@34: scope:[form_control] from form_control::@4 - [82] (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:46 [ 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 ] ) - [83] 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:46 [ 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::@26 -form_control::@26: scope:[form_control] from form_control::@34 - [84] (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:46 [ 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 ] ) - [85] 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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - to:form_control::@27 -form_control::@27: scope:[form_control] from form_control::@26 - [86] 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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - [87] 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:46 [ 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 ] ) - [88] (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:46 [ 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::@36 -form_control::@36: scope:[form_control] from form_control::@27 - [89] (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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) - [90] 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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + [47] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ) + [48] call form_field_ptr param-assignment [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ) + [49] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ) to:form_control::@28 -form_control::@28: scope:[form_control] from form_control::@36 - [91] *((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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - [92] 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:46 [ 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 - [93] *((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:46 [ 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 - [94] *((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:46 [ 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::@36 - [95] *((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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) - [96] 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:46 [ 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 - [97] *((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:46 [ 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 - [98] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) - [99] *((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:46 [ 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::@37: scope:[form_control] from form_control::@32 - [100] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) +form_control::@28: scope:[form_control] from form_control + [50] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ) + [51] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) + [52] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@31 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) to:form_control::@1 -keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@20 form_control::@27 form_control::@3 form_control::@4 - [101] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [102] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [103] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [104] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [105] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [106] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - to:keyboard_key_pressed::@2 -keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed - [107] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - [108] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) - to:keyboard_key_pressed::@return -keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 - [109] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) +form_control::@1: scope:[form_control] from form_control::@28 form_control::@31 + [53] (signed byte) form_cursor_count#15 ← phi( form_control::@28/(const signed byte) FORM_CURSOR_BLINK#0 form_control::@31/(signed byte) form_cursor_count#5 ) [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + [54] 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 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@15 +form_control::@15: scope:[form_control] from form_control::@1 + [55] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) + [56] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 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 + [57] phi() [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + [58] call keyboard_event_scan param-assignment [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:form_control::@29 +form_control::@29: scope:[form_control] from form_control::@3 + [59] phi() [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + [60] call keyboard_event_get param-assignment [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ) + [61] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ) + to:form_control::@30 +form_control::@30: scope:[form_control] from form_control::@29 + [62] (byte) form_control::key_event#0 ← (byte) keyboard_event_get::return#3 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) + [63] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_DOWN#0) goto form_control::@4 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) + to:form_control::@17 +form_control::@17: scope:[form_control] from form_control::@30 + [64] (byte~) form_control::$12 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ) + [65] *((byte*) form_control::field#0) ← (byte~) form_control::$12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) + [66] (byte~) form_control::$13 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ) + [67] if((byte~) form_control::$13!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) + to:form_control::@18 +form_control::@18: scope:[form_control] from form_control::@17 + [68] (byte) form_field_idx#40 ← ++ (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) + [69] if((byte) form_field_idx#40!=(const byte) form_fields_cnt#0) goto form_control::@32 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) + to:form_control::@7 +form_control::@7: scope:[form_control] from form_control::@18 form_control::@32 form_control::@33 form_control::@5 + [70] (byte) form_field_idx#30 ← phi( form_control::@18/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@5/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@32/(byte) form_field_idx#40 form_control::@33/(byte) form_field_idx#41 ) [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#30 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#30 ] ) + to:form_control::@return +form_control::@return: scope:[form_control] from form_control::@12 form_control::@4 form_control::@7 + [71] (byte) form_field_idx#18 ← phi( form_control::@12/(byte) form_field_idx#14 form_control::@7/(byte) form_field_idx#30 form_control::@4/(byte) form_field_idx#14 ) [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) + [71] (signed byte) form_cursor_count#16 ← phi( form_control::@12/(signed byte) form_cursor_count#15 form_control::@7/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 form_control::@4/(signed byte) form_cursor_count#15 ) [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) + [72] return [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) to:@return -keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [110] *((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:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) - [111] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) +form_control::@32: scope:[form_control] from form_control::@18 + [73] phi() [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) + to:form_control::@7 +form_control::@5: scope:[form_control] from form_control::@17 + [74] (byte) form_field_idx#41 ← -- (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) + [75] if((byte) form_field_idx#41!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@33 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) + to:form_control::@7 +form_control::@33: scope:[form_control] from form_control::@5 + [76] phi() [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) + to:form_control::@7 +form_control::@4: scope:[form_control] from form_control::@30 + [77] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_RIGHT#0) goto form_control::@return [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@23 +form_control::@23: scope:[form_control] from form_control::@4 + [78] (byte~) form_control::$24 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ) + [79] if((byte~) form_control::$24!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@24 +form_control::@24: scope:[form_control] from form_control::@23 + [80] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + [81] 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::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@25 +form_control::@25: scope:[form_control] from form_control::@24 + [82] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@12 +form_control::@12: scope:[form_control] from form_control::@10 form_control::@24 form_control::@25 form_control::@27 + [83] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ) + to:form_control::@return +form_control::@10: scope:[form_control] from form_control::@23 + [84] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + [85] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@27 +form_control::@27: scope:[form_control] from form_control::@10 + [86] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@12 +form_control::@2: scope:[form_control] from form_control::@1 + [87] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) + [88] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@3 +form_control::@31: scope:[form_control] from form_control::@28 + [89] phi() [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) + to:form_control::@1 +keyboard_event_get: scope:[keyboard_event_get] from form_control::@29 + [90] if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@1 + [91] (byte) keyboard_events_size#20 ← phi( keyboard_event_get::@1/(byte) keyboard_events_size#4 keyboard_event_get/(byte) keyboard_events_size#17 ) [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + [91] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get::@1/(byte) keyboard_event_get::return#0 keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 ) [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + [92] return [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + to:@return +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get + [93] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#17 [ keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#4 ] ) + [94] (byte) keyboard_event_get::return#0 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) [ keyboard_event_get::return#0 keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#0 keyboard_events_size#4 ] ) + to:keyboard_event_get::@return +keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 + [95] phi() [ keyboard_events_size#24 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#24 ] ) + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + [96] (byte) keyboard_events_size#43 ← phi( keyboard_event_scan/(byte) keyboard_events_size#24 keyboard_event_scan::@8/(byte) keyboard_events_size#17 ) [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [96] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::keycode#14 ) [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [96] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::row#1 ) [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [97] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ) + [98] call keyboard_matrix_read param-assignment [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) + [99] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ) + to:keyboard_event_scan::@25 +keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + [100] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) + [101] if((byte) keyboard_event_scan::row_scan#0==*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@4 + [102] (byte) keyboard_events_size#14 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#43 keyboard_event_scan::@4/(byte) keyboard_events_size#44 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [102] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@4/(byte) keyboard_event_scan::keycode#15 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [102] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@4/(byte) keyboard_event_scan::col#1 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [103] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ) + [104] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ) + [105] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + to:keyboard_event_scan::@14 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + [106] if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + to:keyboard_event_scan::@15 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + [107] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ) + [108] if((byte) keyboard_event_scan::event_type#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@6 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + to:keyboard_event_scan::@16 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + [109] (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ) + [110] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte/word/dword~) keyboard_event_scan::$12 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [111] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ) + to:keyboard_event_scan::@4 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 + [112] (byte) keyboard_events_size#44 ← phi( keyboard_event_scan::@16/(byte) keyboard_events_size#2 keyboard_event_scan::@3/(byte) keyboard_events_size#14 keyboard_event_scan::@14/(byte) keyboard_events_size#14 keyboard_event_scan::@6/(byte) keyboard_events_size#1 ) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#44 ] ) + [113] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + [114] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + [115] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@3 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + to:keyboard_event_scan::@18 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + [116] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + [117] (byte) keyboard_events_size#17 ← phi( keyboard_event_scan::@18/(byte) keyboard_events_size#44 keyboard_event_scan::@2/(byte) keyboard_events_size#43 ) [ keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ) + [117] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@18/(byte) keyboard_event_scan::keycode#15 keyboard_event_scan::@2/(byte) keyboard_event_scan::keycode#1 ) [ keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 ] ) + [118] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) + [119] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) + to:keyboard_event_scan::@20 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + [120] phi() [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + [121] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] ) + [122] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_event_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#0 ] ) + to:keyboard_event_scan::@26 +keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + [123] (byte~) keyboard_event_scan::$16 ← (byte) keyboard_event_pressed::return#0 [ keyboard_events_size#17 keyboard_event_scan::$16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::$16 ] ) + [124] if((byte~) keyboard_event_scan::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:keyboard_event_scan::@21 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 + [125] phi() [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + to:keyboard_event_scan::@9 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 + [126] (byte) keyboard_modifiers#15 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ keyboard_events_size#17 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 ] ) + [127] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ) + [128] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ) + to:keyboard_event_scan::@27 +keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + [129] (byte~) keyboard_event_scan::$20 ← (byte) keyboard_event_pressed::return#1 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ) + [130] if((byte~) keyboard_event_scan::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 [ keyboard_events_size#17 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 ] ) + to:keyboard_event_scan::@22 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27 + [131] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#15 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#17 keyboard_modifiers#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#3 ] ) + to:keyboard_event_scan::@10 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27 + [132] (byte) keyboard_modifiers#16 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#15 ) [ keyboard_events_size#17 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 ] ) + [133] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ) + [134] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ) + to:keyboard_event_scan::@28 +keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + [135] (byte~) keyboard_event_scan::$24 ← (byte) keyboard_event_pressed::return#2 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ) + [136] if((byte~) keyboard_event_scan::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 [ keyboard_events_size#17 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 ] ) + to:keyboard_event_scan::@23 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28 + [137] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#16 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#17 keyboard_modifiers#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#4 ] ) + to:keyboard_event_scan::@11 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28 + [138] (byte) keyboard_modifiers#17 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#16 ) [ keyboard_events_size#17 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 ] ) + [139] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ) + [140] (byte) keyboard_event_pressed::return#3 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ) + to:keyboard_event_scan::@29 +keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + [141] (byte~) keyboard_event_scan::$28 ← (byte) keyboard_event_pressed::return#3 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ) + [142] if((byte~) keyboard_event_scan::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return [ keyboard_events_size#17 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 ] ) + to:keyboard_event_scan::@24 +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29 + [143] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#17 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#17 keyboard_modifiers#5 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#5 ] ) + to:keyboard_event_scan::@return +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29 + [144] (byte) keyboard_modifiers#18 ← phi( keyboard_event_scan::@29/(byte) keyboard_modifiers#17 keyboard_event_scan::@24/(byte) keyboard_modifiers#5 ) [ keyboard_modifiers#18 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_modifiers#18 keyboard_events_size#17 ] ) + [145] return [ keyboard_modifiers#18 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_modifiers#18 keyboard_events_size#17 ] ) + to:@return +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + [146] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) + [147] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ) + to:keyboard_event_scan::@4 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@25 + [148] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ) + to:keyboard_event_scan::@8 +keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 + [149] (byte) keyboard_event_pressed::keycode#4 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 ) [ keyboard_event_pressed::keycode#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 ] ) + [150] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ) + [151] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ) + [152] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) + [153] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed + [154] return [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) + to:@return +keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 + [155] *((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:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) + [156] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [112] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) + [157] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) to:@return form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@1 - [113] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) [ form_field_ptr::field_idx#2 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 ] main:2::menu:10::form_render_values:40::form_field_ptr:122 [ 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 ] ) - [114] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) - [115] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) - [116] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) - [117] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) + [158] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) [ form_field_ptr::field_idx#2 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 ] ) + [159] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) + [160] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) + [161] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) + [162] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) to:form_field_ptr::@return form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr - [118] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) + [163] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) to:@return form_render_values: scope:[form_render_values] from menu::@21 - [119] phi() [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [164] phi() [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:form_render_values::@1 form_render_values::@1: scope:[form_render_values] from form_render_values form_render_values::@3 - [120] (byte) form_render_values::idx#2 ← phi( form_render_values/(byte/signed byte/word/signed word/dword/signed dword) 0 form_render_values::@3/(byte) form_render_values::idx#1 ) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) - [121] (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:40 [ 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 ] ) - [122] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ 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 ] ) - [123] (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:40 [ 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 ] ) + [165] (byte) form_render_values::idx#2 ← phi( form_render_values/(byte/signed byte/word/signed word/dword/signed dword) 0 form_render_values::@3/(byte) form_render_values::idx#1 ) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 ] ) + [166] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) + [167] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + [168] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) to:form_render_values::@3 form_render_values::@3: scope:[form_render_values] from form_render_values::@1 - [124] (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:40 [ 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 ] ) - [125] *((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:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) - [126] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) - [127] 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:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) + [169] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_render_values::field#0 ] ) + [170] *((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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 ] ) + [171] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) + [172] 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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) to:form_render_values::@return form_render_values::@return: scope:[form_render_values] from form_render_values::@3 - [128] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [173] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:@return form_set_screen: scope:[form_set_screen] from menu::@20 - [129] phi() [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [174] phi() [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:form_set_screen::@1 form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_screen::@1 - [130] (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 form_set_screen::@1/(byte) form_set_screen::y#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ 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 ] ) - [130] (byte*) form_set_screen::line#2 ← phi( form_set_screen/(const byte*) menu::SCREEN#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ 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 ] ) - [131] (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:38 [ 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 ] ) - [132] *((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:38 [ 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 ] ) - [133] (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:38 [ 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 ] ) - [134] *((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:38 [ 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 ] ) - [135] (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:38 [ 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 ] ) - [136] (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:38 [ 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 ] ) - [137] 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:38 [ 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 ] ) + [175] (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 form_set_screen::@1/(byte) form_set_screen::y#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [175] (byte*) form_set_screen::line#2 ← phi( form_set_screen/(const byte*) menu::SCREEN#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [176] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) + [177] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [178] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) + [179] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [180] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) + [181] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) + [182] 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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) to:form_set_screen::@return form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 - [138] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [183] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:@return print_str_lines: scope:[print_str_lines] from menu::@16 menu::@19 - [139] (byte*) print_str_lines::str#5 ← phi( menu::@16/(const string) MENU_COLS#0 menu::@19/(const string) MENU_TEXT#0 ) [ print_str_lines::str#5 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_set_screen::screen#2 ] ) - [140] (byte*~) print_char_cursor#63 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ) + [184] (byte*) print_str_lines::str#5 ← phi( menu::@16/(const string) MENU_COLS#0 menu::@19/(const string) MENU_TEXT#0 ) [ print_str_lines::str#5 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_set_screen::screen#2 ] ) + [185] (byte*~) print_char_cursor#64 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ) to:print_str_lines::@1 print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9 - [141] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@9/(byte*) print_line_cursor#22 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) - [141] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#63 print_str_lines::@9/(byte*~) print_char_cursor#64 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) - [141] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@9/(byte*) print_str_lines::str#0 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) - [142] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [186] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@9/(byte*) print_line_cursor#22 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [186] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#64 print_str_lines::@9/(byte*~) print_char_cursor#65 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [186] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@9/(byte*) print_str_lines::str#0 ) [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) + [187] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) to:print_str_lines::@return print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1 - [143] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [188] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) to:@return print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5 - [144] (byte*) print_char_cursor#20 ← phi( print_str_lines::@1/(byte*) print_char_cursor#22 print_str_lines::@5/(byte*) print_char_cursor#38 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) - [144] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@5/(byte*) print_str_lines::str#0 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) - [145] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) - [146] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) - [147] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) + [189] (byte*) print_char_cursor#20 ← phi( print_str_lines::@1/(byte*) print_char_cursor#22 print_str_lines::@5/(byte*) print_char_cursor#38 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) + [189] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@5/(byte*) print_str_lines::str#0 ) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 ] ) + [190] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) + [191] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) + [192] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) to:print_str_lines::@8 print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4 - [148] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) - [149] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) + [193] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) + [194] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) to:print_str_lines::@5 print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8 - [150] (byte*) print_char_cursor#38 ← phi( print_str_lines::@4/(byte*) print_char_cursor#20 print_str_lines::@8/(byte*) print_char_cursor#1 ) [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ) - [151] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) + [195] (byte*) print_char_cursor#38 ← phi( print_str_lines::@4/(byte*) print_char_cursor#20 print_str_lines::@8/(byte*) print_char_cursor#1 ) [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 print_str_lines::ch#0 ] ) + [196] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) to:print_str_lines::@9 print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5 - [152] phi() [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) - [153] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) - [154] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ) + [197] phi() [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) + [198] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) + [199] (byte*~) print_char_cursor#65 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ) to:print_str_lines::@1 print_ln: scope:[print_ln] from print_str_lines::@9 - [155] phi() [ print_line_cursor#2 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] ) + [200] phi() [ print_line_cursor#2 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#38 ] ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [156] (byte*) print_line_cursor#21 ← phi( print_ln/(byte*) print_line_cursor#2 print_ln::@1/(byte*) print_line_cursor#22 ) [ print_char_cursor#38 print_line_cursor#21 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] ) - [157] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) - [158] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) + [201] (byte*) print_line_cursor#21 ← phi( print_ln/(byte*) print_line_cursor#2 print_ln::@1/(byte*) print_line_cursor#22 ) [ print_char_cursor#38 print_line_cursor#21 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#38 print_line_cursor#21 ] ) + [202] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) + [203] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 - [159] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) + [204] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) to:@return print_cls: scope:[print_cls] from menu::@15 menu::@18 - [160] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] ) + [205] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [161] (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) - [162] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) - [163] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) - [164] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) - [165] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) + [206] (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) + [207] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) + [208] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) + [209] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) + [210] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 - [166] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [211] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:@return print_set_screen: scope:[print_set_screen] from menu::@17 menu::@8 - [167] (byte*) print_set_screen::screen#2 ← phi( menu::@17/(const byte*) menu::SCREEN#0 menu::@8/(const byte*) COLS#0 ) [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [212] (byte*) print_set_screen::screen#2 ← phi( menu::@17/(const byte*) menu::SCREEN#0 menu::@8/(const byte*) COLS#0 ) [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:print_set_screen::@return print_set_screen::@return: scope:[print_set_screen] from print_set_screen - [168] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + [213] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) to:@return DOMINATORS @begin dominated by @begin -@25 dominated by @25 @begin -@end dominated by @25 @end @begin -main dominated by @25 main @begin -main::@1 dominated by @25 main main::@1 @begin -main::@return dominated by @25 main main::@1 @begin main::@return -main::@2 dominated by @25 main main::@1 main::@2 @begin -menu dominated by @25 main main::@1 main::@2 @begin menu -menu::@1 dominated by @25 main main::@1 main::@2 @begin menu::@1 menu -menu::@8 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 menu -menu::@15 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 menu menu::@15 -menu::@16 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 menu menu::@16 menu::@15 -menu::@17 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 menu menu::@17 menu::@16 menu::@15 -menu::@18 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 menu menu::@18 menu::@17 menu::@16 menu::@15 -menu::@19 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -menu::@20 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -menu::@21 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -menu::@2 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@8 menu::@20 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -menu::@return dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@return menu::@8 menu::@20 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -menu::@5 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -menu::@7 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_control dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@32 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@1 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@17 dominated by @25 main main::@1 main::@2 menu::@21 @begin form_control::@17 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@3 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@33 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@19 dominated by @25 main main::@1 main::@2 menu::@21 @begin form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@20 dominated by @25 main main::@1 main::@2 menu::@21 @begin form_control::@20 form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@35 dominated by @25 main form_control::@35 main::@1 main::@2 menu::@21 @begin form_control::@20 form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@21 dominated by @25 main form_control::@35 main::@1 main::@2 menu::@21 @begin form_control::@20 form_control::@21 form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@8 dominated by @25 main form_control::@35 main::@1 main::@2 menu::@21 @begin form_control::@20 form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 form_control::@8 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@return dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 form_control::@return menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@38 dominated by @25 main form_control::@35 form_control::@38 main::@1 main::@2 menu::@21 @begin form_control::@20 form_control::@21 form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@6 dominated by @25 main form_control::@35 main::@1 main::@2 menu::@21 @begin form_control::@20 form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 form_control::@6 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@39 dominated by @25 main form_control::@35 form_control::@39 main::@1 main::@2 menu::@21 @begin form_control::@20 form_control::@19 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 form_control::@6 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@4 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 form_control::@4 menu::@1 menu::@2 form_control::@3 menu form_control::@32 form_control::@33 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@34 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@26 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@27 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@36 dominated by @25 main form_control::@36 main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@28 dominated by @25 main form_control::@36 main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@29 dominated by @25 main form_control::@36 main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@14 dominated by @25 main form_control::@36 main::@1 main::@2 menu::@21 @begin form_control::@14 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@12 dominated by @25 main form_control::@36 main::@1 main::@2 menu::@21 @begin form_control::@12 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@31 dominated by @25 main form_control::@36 main::@1 main::@2 menu::@21 @begin form_control::@12 menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_control::@2 dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 form_control::@2 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -form_control::@37 dominated by @25 main form_control::@37 main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu form_control::@32 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 -keyboard_key_pressed dominated by @25 main main::@1 main::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@17 menu::@16 menu::@15 -keyboard_key_pressed::@2 dominated by @25 main main::@1 main::@2 keyboard_key_pressed::@2 menu::@21 @begin menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@17 menu::@16 menu::@15 -keyboard_key_pressed::@return dominated by @25 main main::@1 main::@2 keyboard_key_pressed::@2 menu::@21 @begin keyboard_key_pressed::@return menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@17 menu::@16 menu::@15 -keyboard_matrix_read dominated by @25 main main::@1 main::@2 menu::@21 @begin keyboard_matrix_read menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 menu::@1 menu::@2 form_control::@3 menu form_control::@32 menu::@19 form_control menu::@18 keyboard_key_pressed menu::@17 menu::@16 menu::@15 -keyboard_matrix_read::@return dominated by @25 main main::@1 main::@2 menu::@21 @begin keyboard_matrix_read menu::@7 menu::@8 form_control::@1 menu::@5 menu::@20 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::@17 menu::@16 menu::@15 -form_field_ptr dominated by @25 main main::@1 main::@2 menu::@21 @begin form_field_ptr menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_field_ptr::@return dominated by @25 main main::@1 form_field_ptr::@return main::@2 menu::@21 @begin form_field_ptr menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_render_values dominated by @25 main main::@1 main::@2 menu::@21 @begin form_render_values menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_render_values::@1 dominated by @25 main form_render_values::@1 main::@1 main::@2 menu::@21 @begin form_render_values menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_render_values::@3 dominated by @25 form_render_values::@3 main form_render_values::@1 main::@1 main::@2 menu::@21 @begin form_render_values menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_render_values::@return dominated by @25 form_render_values::@3 main form_render_values::@1 main::@1 main::@2 menu::@21 @begin form_render_values::@return form_render_values menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_set_screen dominated by @25 form_set_screen main main::@1 main::@2 @begin menu::@8 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_set_screen::@1 dominated by @25 form_set_screen main main::@1 main::@2 @begin menu::@8 form_set_screen::@1 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -form_set_screen::@return dominated by @25 form_set_screen main form_set_screen::@return main::@1 main::@2 @begin menu::@8 form_set_screen::@1 menu::@20 menu::@1 menu menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 -print_str_lines dominated by @25 main main::@1 main::@2 print_str_lines @begin menu::@8 menu::@1 menu menu::@16 menu::@15 -print_str_lines::@1 dominated by @25 main main::@1 main::@2 print_str_lines @begin menu::@8 menu::@1 print_str_lines::@1 menu menu::@16 menu::@15 -print_str_lines::@return dominated by @25 main main::@1 main::@2 print_str_lines @begin print_str_lines::@return menu::@8 menu::@1 print_str_lines::@1 menu menu::@16 menu::@15 -print_str_lines::@4 dominated by @25 main main::@1 main::@2 print_str_lines @begin menu::@8 menu::@1 print_str_lines::@1 print_str_lines::@4 menu menu::@16 menu::@15 -print_str_lines::@8 dominated by @25 main main::@1 main::@2 print_str_lines @begin menu::@8 menu::@1 print_str_lines::@1 print_str_lines::@4 menu print_str_lines::@8 menu::@16 menu::@15 -print_str_lines::@5 dominated by @25 main main::@1 main::@2 print_str_lines @begin menu::@8 menu::@1 print_str_lines::@1 print_str_lines::@4 menu print_str_lines::@5 menu::@16 menu::@15 -print_str_lines::@9 dominated by @25 main main::@1 main::@2 print_str_lines @begin menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 menu print_str_lines::@5 menu::@16 menu::@15 -print_ln dominated by @25 main main::@1 main::@2 print_str_lines @begin print_ln menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 menu print_str_lines::@5 menu::@16 menu::@15 -print_ln::@1 dominated by print_ln::@1 @25 main main::@1 main::@2 print_str_lines @begin print_ln menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 menu print_str_lines::@5 menu::@16 menu::@15 -print_ln::@return dominated by print_ln::@1 @25 main print_ln::@return main::@1 main::@2 print_str_lines @begin print_ln menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 menu print_str_lines::@5 menu::@16 menu::@15 -print_cls dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 menu print_cls menu::@15 -print_cls::@1 dominated by @25 main main::@1 main::@2 @begin menu::@8 menu::@1 print_cls::@1 menu print_cls menu::@15 -print_cls::@return dominated by @25 main main::@1 main::@2 @begin print_cls::@return menu::@8 menu::@1 print_cls::@1 menu print_cls menu::@15 -print_set_screen dominated by @25 main main::@1 main::@2 @begin print_set_screen menu::@8 menu::@1 menu -print_set_screen::@return dominated by @25 main main::@1 main::@2 @begin print_set_screen menu::@8 menu::@1 menu print_set_screen::@return +@28 dominated by @28 @begin +@end dominated by @end @28 @begin +main dominated by @28 main @begin +main::@1 dominated by main::@1 @28 main @begin +main::@return dominated by main::@1 main::@return @28 main @begin +main::@2 dominated by main::@1 main::@2 @28 main @begin +menu dominated by main::@1 main::@2 menu @28 main @begin +menu::@1 dominated by main::@1 main::@2 menu @28 main @begin menu::@1 +menu::@8 dominated by main::@1 main::@2 menu @28 main @begin menu::@8 menu::@1 +menu::@15 dominated by main::@1 main::@2 menu @28 main @begin menu::@8 menu::@1 menu::@15 +menu::@16 dominated by main::@1 main::@2 menu @28 main @begin menu::@8 menu::@1 menu::@16 menu::@15 +menu::@17 dominated by main::@1 main::@2 menu @28 main @begin menu::@8 menu::@1 menu::@17 menu::@16 menu::@15 +menu::@18 dominated by main::@1 main::@2 menu @28 main @begin menu::@8 menu::@1 menu::@18 menu::@17 menu::@16 menu::@15 +menu::@19 dominated by main::@1 main::@2 menu @28 main @begin menu::@8 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +menu::@20 dominated by main::@1 main::@2 menu @28 main @begin menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +menu::@21 dominated by main::@1 main::@2 menu @28 main menu::@21 @begin menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +menu::@2 dominated by main::@1 main::@2 menu @28 main menu::@21 @begin menu::@8 menu::@20 menu::@1 menu::@2 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +menu::@return dominated by main::@1 main::@2 menu @28 main menu::@21 @begin menu::@return menu::@8 menu::@20 menu::@1 menu::@2 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +menu::@5 dominated by main::@1 main::@2 menu @28 main menu::@21 @begin menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +menu::@7 dominated by main::@1 main::@2 menu @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_control dominated by main::@1 main::@2 menu @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@28 dominated by main::@1 main::@2 menu form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@1 dominated by main::@1 main::@2 form_control::@1 menu form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@15 dominated by main::@1 main::@2 form_control::@15 form_control::@1 menu form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@3 dominated by main::@1 main::@2 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@29 dominated by main::@1 main::@2 form_control::@1 form_control::@3 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@30 dominated by main::@1 main::@2 form_control::@1 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@17 dominated by main::@1 main::@2 form_control::@17 form_control::@1 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@18 dominated by main::@1 main::@2 form_control::@17 form_control::@18 form_control::@1 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@7 dominated by main::@1 main::@2 form_control::@17 form_control::@1 form_control::@3 form_control::@30 form_control::@7 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@return dominated by main::@1 main::@2 form_control::@1 form_control::@3 form_control::@30 menu form_control::@return form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@32 dominated by main::@1 main::@2 form_control::@17 form_control::@18 form_control::@1 form_control::@3 form_control::@30 menu form_control::@32 form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@5 dominated by main::@1 main::@2 form_control::@17 form_control::@1 form_control::@5 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@33 dominated by main::@1 main::@2 form_control::@17 form_control::@1 form_control::@5 form_control::@3 form_control::@30 menu form_control::@33 form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@4 dominated by main::@1 main::@2 form_control::@1 form_control::@4 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@23 dominated by main::@1 main::@2 form_control::@23 form_control::@1 form_control::@4 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@24 dominated by main::@1 main::@2 form_control::@23 form_control::@1 form_control::@4 form_control::@3 form_control::@30 menu form_control::@24 form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@25 dominated by main::@1 main::@2 form_control::@23 form_control::@1 form_control::@4 form_control::@3 form_control::@30 menu form_control::@24 form_control::@25 form_control::@28 form_control::@29 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@12 dominated by main::@1 main::@2 form_control::@23 form_control::@1 form_control::@4 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin form_control::@12 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@10 dominated by main::@1 main::@2 form_control::@23 form_control::@1 form_control::@4 form_control::@3 form_control::@30 menu form_control::@28 form_control::@29 @28 main menu::@21 @begin form_control::@10 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@27 dominated by main::@1 main::@2 form_control::@23 form_control::@1 form_control::@4 form_control::@3 form_control::@30 menu form_control::@27 form_control::@28 form_control::@29 @28 main menu::@21 @begin form_control::@10 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@2 dominated by main::@1 main::@2 form_control::@1 form_control::@2 menu form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_control::@31 dominated by main::@1 main::@2 menu form_control::@31 form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_get dominated by main::@1 main::@2 form_control::@1 form_control::@3 menu form_control::@28 form_control::@29 @28 main keyboard_event_get menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_get::@return dominated by main::@1 main::@2 form_control::@1 form_control::@3 menu form_control::@28 form_control::@29 keyboard_event_get::@return @28 main keyboard_event_get menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_get::@1 dominated by main::@1 main::@2 form_control::@1 form_control::@3 menu form_control::@28 form_control::@29 keyboard_event_get::@1 @28 main keyboard_event_get menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan dominated by keyboard_event_scan main::@1 main::@2 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@1 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@25 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@3 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@3 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@14 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@3 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 keyboard_event_scan::@14 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@15 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@3 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 keyboard_event_scan::@14 menu::@1 menu::@2 keyboard_event_scan::@15 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@16 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@3 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 keyboard_event_scan::@14 menu::@1 keyboard_event_scan::@16 menu::@2 keyboard_event_scan::@15 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@4 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@3 keyboard_event_scan::@4 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@18 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@3 keyboard_event_scan::@4 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 keyboard_event_scan::@18 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@8 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@20 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@26 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@21 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 keyboard_event_scan::@26 keyboard_event_scan::@21 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@9 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@27 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@22 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 keyboard_event_scan::@22 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@10 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_event_scan::@10 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@28 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@28 keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_event_scan::@10 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@23 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@28 keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 keyboard_event_scan::@23 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_event_scan::@10 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@11 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@28 keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_event_scan::@10 keyboard_event_scan::@11 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@29 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@29 keyboard_event_scan::@28 keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_event_scan::@10 keyboard_event_scan::@11 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@24 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@29 keyboard_event_scan::@28 keyboard_event_scan::@25 keyboard_event_scan::@24 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_event_scan::@10 keyboard_event_scan::@11 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@return dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@9 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 keyboard_event_scan::@return @28 main menu::@21 @begin keyboard_event_scan::@29 keyboard_event_scan::@28 keyboard_event_scan::@25 keyboard_event_scan::@27 keyboard_event_scan::@26 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_event_scan::@10 keyboard_event_scan::@11 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@6 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@6 keyboard_event_scan::@3 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 keyboard_event_scan::@14 menu::@1 menu::@2 keyboard_event_scan::@15 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_scan::@2 dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@2 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_scan::@25 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_pressed dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_pressed keyboard_event_scan::@25 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_event_pressed::@return dominated by keyboard_event_scan keyboard_event_pressed::@return main::@1 main::@2 keyboard_event_scan::@8 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_event_pressed keyboard_event_scan::@25 keyboard_event_scan::@20 menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_matrix_read dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_matrix_read menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +keyboard_matrix_read::@return dominated by keyboard_event_scan main::@1 main::@2 keyboard_event_scan::@1 form_control::@1 form_control::@3 menu form_control::@28 @28 main menu::@21 @begin keyboard_matrix_read menu::@7 menu::@8 menu::@5 menu::@20 menu::@1 menu::@2 keyboard_matrix_read::@return menu::@19 form_control menu::@18 menu::@17 menu::@16 menu::@15 +form_field_ptr dominated by main::@1 main::@2 form_field_ptr menu @28 main menu::@21 @begin menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_field_ptr::@return dominated by main::@1 form_field_ptr::@return main::@2 form_field_ptr menu @28 main menu::@21 @begin menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_render_values dominated by main::@1 main::@2 menu @28 main menu::@21 @begin form_render_values menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_render_values::@1 dominated by form_render_values::@1 main::@1 main::@2 menu @28 main menu::@21 @begin form_render_values menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_render_values::@3 dominated by form_render_values::@3 form_render_values::@1 main::@1 main::@2 menu @28 main menu::@21 @begin form_render_values menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_render_values::@return dominated by form_render_values::@3 form_render_values::@1 main::@1 main::@2 form_render_values::@return menu @28 main menu::@21 @begin form_render_values menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_set_screen dominated by main::@1 main::@2 menu @28 form_set_screen main @begin menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_set_screen::@1 dominated by main::@1 main::@2 form_set_screen::@1 menu @28 form_set_screen main @begin menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +form_set_screen::@return dominated by main::@1 main::@2 form_set_screen::@1 menu @28 form_set_screen main form_set_screen::@return @begin menu::@8 menu::@20 menu::@1 menu::@19 menu::@18 menu::@17 menu::@16 menu::@15 +print_str_lines dominated by main::@1 main::@2 print_str_lines menu @28 main @begin menu::@8 menu::@1 menu::@16 menu::@15 +print_str_lines::@1 dominated by main::@1 main::@2 print_str_lines menu @28 main @begin menu::@8 menu::@1 print_str_lines::@1 menu::@16 menu::@15 +print_str_lines::@return dominated by main::@1 main::@2 print_str_lines menu @28 main @begin print_str_lines::@return menu::@8 menu::@1 print_str_lines::@1 menu::@16 menu::@15 +print_str_lines::@4 dominated by main::@1 main::@2 print_str_lines menu @28 main @begin menu::@8 menu::@1 print_str_lines::@1 print_str_lines::@4 menu::@16 menu::@15 +print_str_lines::@8 dominated by main::@1 main::@2 print_str_lines menu @28 main @begin menu::@8 menu::@1 print_str_lines::@1 print_str_lines::@4 print_str_lines::@8 menu::@16 menu::@15 +print_str_lines::@5 dominated by main::@1 main::@2 print_str_lines menu @28 main @begin menu::@8 menu::@1 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 menu::@16 menu::@15 +print_str_lines::@9 dominated by main::@1 main::@2 print_str_lines menu @28 main @begin menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 menu::@16 menu::@15 +print_ln dominated by main::@1 main::@2 print_str_lines print_ln menu @28 main @begin menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 menu::@16 menu::@15 +print_ln::@1 dominated by main::@1 main::@2 print_str_lines print_ln menu print_ln::@1 @28 main @begin menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 menu::@16 menu::@15 +print_ln::@return dominated by print_ln::@return main::@1 main::@2 print_str_lines print_ln menu print_ln::@1 @28 main @begin menu::@8 print_str_lines::@9 menu::@1 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 menu::@16 menu::@15 +print_cls dominated by main::@1 main::@2 menu print_cls @28 main @begin menu::@8 menu::@1 menu::@15 +print_cls::@1 dominated by main::@1 main::@2 menu print_cls @28 main @begin menu::@8 menu::@1 print_cls::@1 menu::@15 +print_cls::@return dominated by main::@1 main::@2 menu print_cls @28 main @begin print_cls::@return menu::@8 menu::@1 print_cls::@1 menu::@15 +print_set_screen dominated by main::@1 main::@2 print_set_screen menu @28 main @begin menu::@8 menu::@1 +print_set_screen::@return dominated by main::@1 main::@2 print_set_screen menu @28 main @begin menu::@8 menu::@1 print_set_screen::@return NATURAL LOOPS Found back edge: Loop head: main::@1 tails: main::@2 blocks: null Found back edge: Loop head: menu::@1 tails: menu::@1 blocks: null Found back edge: Loop head: menu::@5 tails: menu::@5 blocks: null Found back edge: Loop head: menu::@2 tails: menu::@7 blocks: null +Found back edge: Loop head: keyboard_event_scan::@3 tails: keyboard_event_scan::@4 blocks: null +Found back edge: Loop head: keyboard_event_scan::@1 tails: keyboard_event_scan::@8 blocks: null Found back edge: Loop head: form_render_values::@1 tails: form_render_values::@3 blocks: null Found back edge: Loop head: form_set_screen::@1 tails: form_set_screen::@1 blocks: null Found back edge: Loop head: print_str_lines::@4 tails: print_str_lines::@5 blocks: null @@ -6418,6 +7619,8 @@ Populated: Loop head: main::@1 tails: main::@2 blocks: main::@2 main::@1 Populated: Loop head: menu::@1 tails: menu::@1 blocks: menu::@1 Populated: Loop head: menu::@5 tails: menu::@5 blocks: menu::@5 Populated: Loop head: menu::@2 tails: menu::@7 blocks: menu::@7 menu::@5 menu::@2 +Populated: Loop head: keyboard_event_scan::@3 tails: keyboard_event_scan::@4 blocks: keyboard_event_scan::@4 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@15 +Populated: Loop head: keyboard_event_scan::@1 tails: keyboard_event_scan::@8 blocks: keyboard_event_scan::@8 keyboard_event_scan::@18 keyboard_event_scan::@2 keyboard_event_scan::@4 keyboard_event_scan::@25 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@1 keyboard_event_scan::@15 Populated: Loop head: form_render_values::@1 tails: form_render_values::@3 blocks: form_render_values::@3 form_render_values::@1 Populated: Loop head: form_set_screen::@1 tails: form_set_screen::@1 blocks: form_set_screen::@1 Populated: Loop head: print_str_lines::@4 tails: print_str_lines::@5 blocks: print_str_lines::@5 print_str_lines::@4 print_str_lines::@8 @@ -6428,6 +7631,8 @@ Loop head: main::@1 tails: main::@2 blocks: main::@2 main::@1 Loop head: menu::@1 tails: menu::@1 blocks: menu::@1 Loop head: menu::@5 tails: menu::@5 blocks: menu::@5 Loop head: menu::@2 tails: menu::@7 blocks: menu::@7 menu::@5 menu::@2 +Loop head: keyboard_event_scan::@3 tails: keyboard_event_scan::@4 blocks: keyboard_event_scan::@4 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@15 +Loop head: keyboard_event_scan::@1 tails: keyboard_event_scan::@8 blocks: keyboard_event_scan::@8 keyboard_event_scan::@18 keyboard_event_scan::@2 keyboard_event_scan::@4 keyboard_event_scan::@25 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@1 keyboard_event_scan::@15 Loop head: form_render_values::@1 tails: form_render_values::@3 blocks: form_render_values::@3 form_render_values::@1 Loop head: form_set_screen::@1 tails: form_set_screen::@1 blocks: form_set_screen::@1 Loop head: print_str_lines::@4 tails: print_str_lines::@5 blocks: print_str_lines::@5 print_str_lines::@4 print_str_lines::@8 @@ -6457,12 +7662,18 @@ Found 0 loops in scope [form_control] Found 1 loops in scope [print_ln] Loop head: print_ln::@1 tails: print_ln::@1 blocks: print_ln::@1 Found 0 loops in scope [form_field_ptr] -Found 0 loops in scope [keyboard_key_pressed] +Found 2 loops in scope [keyboard_event_scan] + Loop head: keyboard_event_scan::@3 tails: keyboard_event_scan::@4 blocks: keyboard_event_scan::@4 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@15 + Loop head: keyboard_event_scan::@1 tails: keyboard_event_scan::@8 blocks: keyboard_event_scan::@8 keyboard_event_scan::@18 keyboard_event_scan::@2 keyboard_event_scan::@4 keyboard_event_scan::@25 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@1 keyboard_event_scan::@15 +Found 0 loops in scope [keyboard_event_get] Found 0 loops in scope [keyboard_matrix_read] +Found 0 loops in scope [keyboard_event_pressed] Loop head: main::@1 tails: main::@2 blocks: main::@2 main::@1 depth: 1 Loop head: menu::@1 tails: menu::@1 blocks: menu::@1 depth: 2 Loop head: menu::@5 tails: menu::@5 blocks: menu::@5 depth: 3 Loop head: menu::@2 tails: menu::@7 blocks: menu::@7 menu::@5 menu::@2 depth: 2 +Loop head: keyboard_event_scan::@3 tails: keyboard_event_scan::@4 blocks: keyboard_event_scan::@4 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@15 depth: 4 +Loop head: keyboard_event_scan::@1 tails: keyboard_event_scan::@8 blocks: keyboard_event_scan::@8 keyboard_event_scan::@18 keyboard_event_scan::@2 keyboard_event_scan::@4 keyboard_event_scan::@25 keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 keyboard_event_scan::@1 keyboard_event_scan::@15 depth: 3 Loop head: form_render_values::@1 tails: form_render_values::@3 blocks: form_render_values::@3 form_render_values::@1 depth: 2 Loop head: form_set_screen::@1 tails: form_set_screen::@1 blocks: form_set_screen::@1 depth: 2 Loop head: print_str_lines::@4 tails: print_str_lines::@5 blocks: print_str_lines::@5 print_str_lines::@4 print_str_lines::@8 depth: 3 @@ -6489,8 +7700,16 @@ VARIABLE REGISTER WEIGHTS (byte*) DTV_PALETTE (byte[16]) DTV_PALETTE_DEFAULT (signed byte) FORM_CURSOR_BLINK +(byte) KEY_COMMODORE (byte) KEY_CRSR_DOWN (byte) KEY_CRSR_RIGHT +(byte) KEY_CTRL +(byte) KEY_LSHIFT +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_SHIFT (byte) KEY_RSHIFT (byte[]) MENU_COLS (byte[]) MENU_TEXT @@ -6502,30 +7721,28 @@ VARIABLE REGISTER WEIGHTS (byte*) VIC_MEMORY (byte) VIC_RSEL (void()) form_control() +(byte~) form_control::$12 4.0 (byte~) form_control::$13 4.0 -(byte~) form_control::$14 4.0 -(byte~) form_control::$28 4.0 +(byte~) form_control::$24 4.0 (byte/word/dword~) form_control::$6 4.0 (byte~) form_control::$7 4.0 (byte*) form_control::field -(byte*) form_control::field#0 0.44444444444444453 -(byte) form_control::key_down -(byte) form_control::key_down#0 2.6666666666666665 -(byte) form_control::key_right -(byte) form_control::key_right#0 2.6666666666666665 +(byte*) form_control::field#0 0.5925925925925926 +(byte) form_control::key_event +(byte) form_control::key_event#0 3.0 (signed byte) form_cursor_count (signed byte) form_cursor_count#1 0.3939393939393939 (signed byte) form_cursor_count#13 11.6 -(signed byte) form_cursor_count#15 0.3125 -(signed byte) form_cursor_count#16 35.66666666666666 +(signed byte) form_cursor_count#15 0.34782608695652173 +(signed byte) form_cursor_count#16 34.99999999999999 (signed byte) form_cursor_count#5 2.0 (byte) form_field_idx (byte) form_field_idx#1 0.3939393939393939 -(byte) form_field_idx#14 2.901960784313723 -(byte) form_field_idx#18 36.33333333333332 -(byte) form_field_idx#32 6.0 +(byte) form_field_idx#14 3.6499999999999972 +(byte) form_field_idx#18 35.66666666666666 +(byte) form_field_idx#30 6.0 +(byte) form_field_idx#40 2.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 @@ -6565,40 +7782,80 @@ VARIABLE REGISTER WEIGHTS (byte) form_set_screen::y (byte) form_set_screen::y#1 151.5 (byte) form_set_screen::y#2 67.33333333333333 -(byte) key_down_debounce -(byte) key_down_debounce#1 0.3939393939393939 -(byte) key_down_debounce#11 4.916666666666666 -(byte) key_down_debounce#13 36.33333333333332 -(byte) key_down_debounce#20 0.5263157894736842 -(byte) key_down_debounce#23 0.4 -(byte) key_right_debounce -(byte) key_right_debounce#1 0.3939393939393939 -(byte) key_right_debounce#11 2.727272727272727 -(byte) key_right_debounce#13 36.33333333333332 -(byte) key_right_debounce#21 0.42857142857142855 -(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) -(byte~) keyboard_key_pressed::$2 4.0 -(byte) keyboard_key_pressed::colidx -(byte) keyboard_key_pressed::colidx#0 0.6666666666666666 -(byte) keyboard_key_pressed::key -(byte) keyboard_key_pressed::key#4 2.0 -(byte) keyboard_key_pressed::return -(byte) keyboard_key_pressed::return#0 1.6666666666666665 -(byte) keyboard_key_pressed::return#10 4.0 -(byte) keyboard_key_pressed::return#2 4.0 -(byte) keyboard_key_pressed::return#3 4.0 -(byte) keyboard_key_pressed::return#4 4.0 -(byte) keyboard_key_pressed::rowidx -(byte) keyboard_key_pressed::rowidx#0 4.0 -(byte[]) keyboard_matrix_col_bitmask +(byte()) keyboard_event_get() +(byte) keyboard_event_get::return +(byte) keyboard_event_get::return#0 4.0 +(byte) keyboard_event_get::return#2 1.3333333333333333 +(byte) keyboard_event_get::return#3 4.0 +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 4.0 +(byte~) keyboard_event_pressed::$1 4.0 +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::keycode#4 1.3333333333333333 +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::return#0 4.0 +(byte) keyboard_event_pressed::return#1 4.0 +(byte) keyboard_event_pressed::return#10 1.6666666666666665 +(byte) keyboard_event_pressed::return#2 4.0 +(byte) keyboard_event_pressed::return#3 4.0 +(byte) keyboard_event_pressed::row_bits +(byte) keyboard_event_pressed::row_bits#0 2.0 +(void()) keyboard_event_scan() +(byte/word/dword~) keyboard_event_scan::$12 20002.0 +(byte~) keyboard_event_scan::$16 4.0 +(byte~) keyboard_event_scan::$20 4.0 +(byte~) keyboard_event_scan::$24 4.0 +(byte~) keyboard_event_scan::$28 4.0 +(byte~) keyboard_event_scan::$3 20002.0 +(byte~) keyboard_event_scan::$4 20002.0 +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::col#1 15001.5 +(byte) keyboard_event_scan::col#2 2857.4285714285716 +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::event_type#0 20002.0 +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::keycode#1 2002.0 +(byte) keyboard_event_scan::keycode#10 3154.230769230769 +(byte) keyboard_event_scan::keycode#11 500.5 +(byte) keyboard_event_scan::keycode#14 1001.0 +(byte) keyboard_event_scan::keycode#15 5250.75 +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row#1 1501.5 +(byte) keyboard_event_scan::row#2 600.24 +(byte) keyboard_event_scan::row_scan +(byte) keyboard_event_scan::row_scan#0 1278.0555555555554 +(byte[8]) keyboard_events +(byte) keyboard_events_size +(byte) keyboard_events_size#1 20002.0 +(byte) keyboard_events_size#14 8100.9000000000015 +(byte) keyboard_events_size#17 94.03125 +(byte) keyboard_events_size#2 20002.0 +(byte) keyboard_events_size#20 3.5000000000000004 +(byte) keyboard_events_size#22 0.3939393939393939 +(byte) keyboard_events_size#24 5.523809523809524 +(byte) keyboard_events_size#4 3.0 +(byte) keyboard_events_size#43 429.2857142857143 +(byte) keyboard_events_size#44 10201.2 +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte) keyboard_matrix_read::return -(byte) keyboard_matrix_read::return#0 1.3333333333333333 -(byte) keyboard_matrix_read::return#2 4.0 +(byte) keyboard_matrix_read::return#0 334.33333333333337 +(byte) keyboard_matrix_read::return#2 2002.0 (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid -(byte) keyboard_matrix_read::rowid#0 4.0 +(byte) keyboard_matrix_read::rowid#0 1003.0 (byte[8]) keyboard_matrix_row_bitmask +(byte) keyboard_modifiers +(byte) keyboard_modifiers#10 28.5 +(byte) keyboard_modifiers#15 0.8 +(byte) keyboard_modifiers#16 1.6 +(byte) keyboard_modifiers#17 1.6 +(byte) keyboard_modifiers#18 3.40625 +(byte) keyboard_modifiers#20 0.3939393939393939 +(byte) keyboard_modifiers#3 4.0 +(byte) keyboard_modifiers#4 4.0 +(byte) keyboard_modifiers#5 4.0 +(byte[8]) keyboard_scan_values (void()) main() (void()) menu() (byte*) menu::CHARSET @@ -6611,8 +7868,8 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor#20 821.0 (byte*) print_char_cursor#22 102.0 (byte*) print_char_cursor#38 572.0 -(byte*~) print_char_cursor#63 4.0 -(byte*~) print_char_cursor#64 202.0 +(byte*~) print_char_cursor#64 4.0 +(byte*~) print_char_cursor#65 202.0 (void()) print_cls() (byte*~) print_cls::$0 202.0 (byte*) print_cls::sc @@ -6640,38 +7897,51 @@ 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#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 ] +[ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +[ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] [ menu::i#2 menu::i#1 ] -[ keyboard_key_pressed::key#4 ] +[ keyboard_event_get::return#2 keyboard_event_get::return#0 ] +[ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +[ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +[ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] +[ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +[ keyboard_event_pressed::keycode#4 ] [ 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 ] [ form_set_screen::line#2 form_set_screen::line#1 ] [ form_set_screen::y#2 form_set_screen::y#1 ] [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] -[ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 ] +[ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 ] [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] Added variable form_field_ptr::return#3 to zero page equivalence class [ form_field_ptr::return#3 ] Added variable form_control::field#0 to zero page equivalence class [ form_control::field#0 ] Added variable form_control::$6 to zero page equivalence class [ form_control::$6 ] -Added variable keyboard_key_pressed::return#2 to zero page equivalence class [ keyboard_key_pressed::return#2 ] -Added variable form_control::key_down#0 to zero page equivalence class [ form_control::key_down#0 ] +Added variable keyboard_event_get::return#3 to zero page equivalence class [ keyboard_event_get::return#3 ] +Added variable form_control::key_event#0 to zero page equivalence class [ form_control::key_event#0 ] +Added variable form_control::$12 to zero page equivalence class [ form_control::$12 ] Added variable form_control::$13 to zero page equivalence class [ form_control::$13 ] -Added variable keyboard_key_pressed::return#4 to zero page equivalence class [ keyboard_key_pressed::return#4 ] -Added variable form_control::$14 to zero page equivalence class [ form_control::$14 ] -Added variable keyboard_key_pressed::return#3 to zero page equivalence class [ keyboard_key_pressed::return#3 ] -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::$24 to zero page equivalence class [ form_control::$24 ] 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 ] Added variable keyboard_matrix_read::rowid#0 to zero page equivalence class [ keyboard_matrix_read::rowid#0 ] Added variable keyboard_matrix_read::return#2 to zero page equivalence class [ keyboard_matrix_read::return#2 ] -Added variable keyboard_key_pressed::$2 to zero page equivalence class [ keyboard_key_pressed::$2 ] -Added variable keyboard_key_pressed::return#0 to zero page equivalence class [ keyboard_key_pressed::return#0 ] +Added variable keyboard_event_scan::row_scan#0 to zero page equivalence class [ keyboard_event_scan::row_scan#0 ] +Added variable keyboard_event_scan::$3 to zero page equivalence class [ keyboard_event_scan::$3 ] +Added variable keyboard_event_scan::$4 to zero page equivalence class [ keyboard_event_scan::$4 ] +Added variable keyboard_event_scan::event_type#0 to zero page equivalence class [ keyboard_event_scan::event_type#0 ] +Added variable keyboard_event_scan::$12 to zero page equivalence class [ keyboard_event_scan::$12 ] +Added variable keyboard_event_pressed::return#0 to zero page equivalence class [ keyboard_event_pressed::return#0 ] +Added variable keyboard_event_scan::$16 to zero page equivalence class [ keyboard_event_scan::$16 ] +Added variable keyboard_event_pressed::return#1 to zero page equivalence class [ keyboard_event_pressed::return#1 ] +Added variable keyboard_event_scan::$20 to zero page equivalence class [ keyboard_event_scan::$20 ] +Added variable keyboard_event_pressed::return#2 to zero page equivalence class [ keyboard_event_pressed::return#2 ] +Added variable keyboard_event_scan::$24 to zero page equivalence class [ keyboard_event_scan::$24 ] +Added variable keyboard_event_pressed::return#3 to zero page equivalence class [ keyboard_event_pressed::return#3 ] +Added variable keyboard_event_scan::$28 to zero page equivalence class [ keyboard_event_scan::$28 ] +Added variable keyboard_event_pressed::$0 to zero page equivalence class [ keyboard_event_pressed::$0 ] +Added variable keyboard_event_pressed::row_bits#0 to zero page equivalence class [ keyboard_event_pressed::row_bits#0 ] +Added variable keyboard_event_pressed::$1 to zero page equivalence class [ keyboard_event_pressed::$1 ] +Added variable keyboard_event_pressed::return#10 to zero page equivalence class [ keyboard_event_pressed::return#10 ] Added variable keyboard_matrix_read::return#0 to zero page equivalence class [ keyboard_matrix_read::return#0 ] Added variable form_field_ptr::y#0 to zero page equivalence class [ form_field_ptr::y#0 ] Added variable form_field_ptr::$2 to zero page equivalence class [ form_field_ptr::$2 ] @@ -6685,38 +7955,51 @@ Added variable print_str_lines::ch#0 to zero page equivalence class [ print_str_ Added variable print_cls::$0 to zero page equivalence class [ print_cls::$0 ] 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#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 ] +[ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +[ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] [ menu::i#2 menu::i#1 ] -[ keyboard_key_pressed::key#4 ] +[ keyboard_event_get::return#2 keyboard_event_get::return#0 ] +[ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +[ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +[ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] +[ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +[ keyboard_event_pressed::keycode#4 ] [ 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 ] [ form_set_screen::line#2 form_set_screen::line#1 ] [ form_set_screen::y#2 form_set_screen::y#1 ] [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] -[ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 ] +[ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 ] [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] [ form_field_ptr::return#3 ] [ form_control::field#0 ] [ form_control::$6 ] -[ keyboard_key_pressed::return#2 ] -[ form_control::key_down#0 ] +[ keyboard_event_get::return#3 ] +[ form_control::key_event#0 ] +[ form_control::$12 ] [ form_control::$13 ] -[ keyboard_key_pressed::return#4 ] -[ form_control::$14 ] -[ keyboard_key_pressed::return#3 ] -[ form_control::key_right#0 ] -[ keyboard_key_pressed::return#10 ] -[ form_control::$28 ] +[ form_control::$24 ] [ form_control::$7 ] -[ keyboard_key_pressed::colidx#0 ] -[ keyboard_key_pressed::rowidx#0 ] [ keyboard_matrix_read::rowid#0 ] [ keyboard_matrix_read::return#2 ] -[ keyboard_key_pressed::$2 ] -[ keyboard_key_pressed::return#0 ] +[ keyboard_event_scan::row_scan#0 ] +[ keyboard_event_scan::$3 ] +[ keyboard_event_scan::$4 ] +[ keyboard_event_scan::event_type#0 ] +[ keyboard_event_scan::$12 ] +[ keyboard_event_pressed::return#0 ] +[ keyboard_event_scan::$16 ] +[ keyboard_event_pressed::return#1 ] +[ keyboard_event_scan::$20 ] +[ keyboard_event_pressed::return#2 ] +[ keyboard_event_scan::$24 ] +[ keyboard_event_pressed::return#3 ] +[ keyboard_event_scan::$28 ] +[ keyboard_event_pressed::$0 ] +[ keyboard_event_pressed::row_bits#0 ] +[ keyboard_event_pressed::$1 ] +[ keyboard_event_pressed::return#10 ] [ keyboard_matrix_read::return#0 ] [ form_field_ptr::y#0 ] [ form_field_ptr::$2 ] @@ -6729,49 +8012,62 @@ Complete equivalence classes [ print_str_lines::ch#0 ] [ print_cls::$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#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_BYTE:7 [ keyboard_key_pressed::key#4 ] -Allocated zp ZP_BYTE:8 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] -Allocated zp ZP_BYTE:9 [ form_render_values::idx#2 form_render_values::idx#1 ] -Allocated zp ZP_WORD:10 [ form_set_screen::line#2 form_set_screen::line#1 ] -Allocated zp ZP_BYTE:12 [ form_set_screen::y#2 form_set_screen::y#1 ] -Allocated zp ZP_WORD:13 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] -Allocated zp ZP_WORD:15 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 ] -Allocated zp ZP_WORD:17 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] -Allocated zp ZP_WORD:19 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] -Allocated zp ZP_WORD:21 [ form_field_ptr::return#3 ] -Allocated zp ZP_WORD:23 [ form_control::field#0 ] -Allocated zp ZP_BYTE:25 [ form_control::$6 ] -Allocated zp ZP_BYTE:26 [ keyboard_key_pressed::return#2 ] -Allocated zp ZP_BYTE:27 [ form_control::key_down#0 ] -Allocated zp ZP_BYTE:28 [ form_control::$13 ] -Allocated zp ZP_BYTE:29 [ keyboard_key_pressed::return#4 ] -Allocated zp ZP_BYTE:30 [ form_control::$14 ] -Allocated zp ZP_BYTE:31 [ keyboard_key_pressed::return#3 ] -Allocated zp ZP_BYTE:32 [ form_control::key_right#0 ] -Allocated zp ZP_BYTE:33 [ keyboard_key_pressed::return#10 ] -Allocated zp ZP_BYTE:34 [ form_control::$28 ] +Allocated zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +Allocated zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] +Allocated zp ZP_BYTE:5 [ menu::i#2 menu::i#1 ] +Allocated zp ZP_BYTE:6 [ keyboard_event_get::return#2 keyboard_event_get::return#0 ] +Allocated zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated zp ZP_BYTE:8 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Allocated zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] +Allocated zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +Allocated zp ZP_BYTE:11 [ keyboard_event_pressed::keycode#4 ] +Allocated zp ZP_BYTE:12 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] +Allocated zp ZP_BYTE:13 [ form_render_values::idx#2 form_render_values::idx#1 ] +Allocated zp ZP_WORD:14 [ form_set_screen::line#2 form_set_screen::line#1 ] +Allocated zp ZP_BYTE:16 [ form_set_screen::y#2 form_set_screen::y#1 ] +Allocated zp ZP_WORD:17 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] +Allocated zp ZP_WORD:19 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 ] +Allocated zp ZP_WORD:21 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] +Allocated zp ZP_WORD:23 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] +Allocated zp ZP_WORD:25 [ form_field_ptr::return#3 ] +Allocated zp ZP_WORD:27 [ form_control::field#0 ] +Allocated zp ZP_BYTE:29 [ form_control::$6 ] +Allocated zp ZP_BYTE:30 [ keyboard_event_get::return#3 ] +Allocated zp ZP_BYTE:31 [ form_control::key_event#0 ] +Allocated zp ZP_BYTE:32 [ form_control::$12 ] +Allocated zp ZP_BYTE:33 [ form_control::$13 ] +Allocated zp ZP_BYTE:34 [ form_control::$24 ] Allocated zp ZP_BYTE:35 [ form_control::$7 ] -Allocated zp ZP_BYTE:36 [ keyboard_key_pressed::colidx#0 ] -Allocated zp ZP_BYTE:37 [ keyboard_key_pressed::rowidx#0 ] -Allocated zp ZP_BYTE:38 [ keyboard_matrix_read::rowid#0 ] -Allocated zp ZP_BYTE:39 [ keyboard_matrix_read::return#2 ] -Allocated zp ZP_BYTE:40 [ keyboard_key_pressed::$2 ] -Allocated zp ZP_BYTE:41 [ keyboard_key_pressed::return#0 ] -Allocated zp ZP_BYTE:42 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:43 [ form_field_ptr::y#0 ] -Allocated zp ZP_WORD:44 [ form_field_ptr::$2 ] -Allocated zp ZP_BYTE:46 [ form_field_ptr::x#0 ] -Allocated zp ZP_WORD:47 [ form_field_ptr::return#0 ] -Allocated zp ZP_WORD:49 [ form_field_ptr::return#2 ] -Allocated zp ZP_WORD:51 [ form_render_values::field#0 ] -Allocated zp ZP_BYTE:53 [ form_set_screen::$0 ] -Allocated zp ZP_BYTE:54 [ form_set_screen::$1 ] -Allocated zp ZP_BYTE:55 [ print_str_lines::ch#0 ] -Allocated zp ZP_WORD:56 [ print_cls::$0 ] +Allocated zp ZP_BYTE:36 [ keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:37 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] +Allocated zp ZP_BYTE:39 [ keyboard_event_scan::$3 ] +Allocated zp ZP_BYTE:40 [ keyboard_event_scan::$4 ] +Allocated zp ZP_BYTE:41 [ keyboard_event_scan::event_type#0 ] +Allocated zp ZP_BYTE:42 [ keyboard_event_scan::$12 ] +Allocated zp ZP_BYTE:43 [ keyboard_event_pressed::return#0 ] +Allocated zp ZP_BYTE:44 [ keyboard_event_scan::$16 ] +Allocated zp ZP_BYTE:45 [ keyboard_event_pressed::return#1 ] +Allocated zp ZP_BYTE:46 [ keyboard_event_scan::$20 ] +Allocated zp ZP_BYTE:47 [ keyboard_event_pressed::return#2 ] +Allocated zp ZP_BYTE:48 [ keyboard_event_scan::$24 ] +Allocated zp ZP_BYTE:49 [ keyboard_event_pressed::return#3 ] +Allocated zp ZP_BYTE:50 [ keyboard_event_scan::$28 ] +Allocated zp ZP_BYTE:51 [ keyboard_event_pressed::$0 ] +Allocated zp ZP_BYTE:52 [ keyboard_event_pressed::row_bits#0 ] +Allocated zp ZP_BYTE:53 [ keyboard_event_pressed::$1 ] +Allocated zp ZP_BYTE:54 [ keyboard_event_pressed::return#10 ] +Allocated zp ZP_BYTE:55 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:56 [ form_field_ptr::y#0 ] +Allocated zp ZP_WORD:57 [ form_field_ptr::$2 ] +Allocated zp ZP_BYTE:59 [ form_field_ptr::x#0 ] +Allocated zp ZP_WORD:60 [ form_field_ptr::return#0 ] +Allocated zp ZP_WORD:62 [ form_field_ptr::return#2 ] +Allocated zp ZP_WORD:64 [ form_render_values::field#0 ] +Allocated zp ZP_BYTE:66 [ form_set_screen::$0 ] +Allocated zp ZP_BYTE:67 [ form_set_screen::$1 ] +Allocated zp ZP_BYTE:68 [ print_str_lines::ch#0 ] +Allocated zp ZP_WORD:69 [ print_cls::$0 ] INITIAL ASM //SEG0 Basic Upstart @@ -6803,26 +8099,34 @@ INITIAL ASM .label DTV_GRAPHICS_VIC_BANK = $d03d .const KEY_CRSR_RIGHT = 2 .const KEY_CRSR_DOWN = 7 + .const KEY_LSHIFT = $f .const KEY_RSHIFT = $34 + .const KEY_CTRL = $3a + .const KEY_COMMODORE = $3d + .const KEY_MODIFIER_LSHIFT = 1 + .const KEY_MODIFIER_RSHIFT = 2 + .const KEY_MODIFIER_CTRL = 4 + .const KEY_MODIFIER_COMMODORE = 8 .const form_fields_cnt = $23 .const FORM_CURSOR_BLINK = $28 - .label print_char_cursor = $f - .label print_line_cursor = $11 + .const KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT + .label print_char_cursor = $13 + .label print_line_cursor = $15 + .label keyboard_events_size = $a + .label keyboard_modifiers = 3 .label form_cursor_count = 2 - .label key_down_debounce = 3 .label form_field_idx = 4 - .label key_right_debounce = 5 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -b25_from_bbegin: - jmp b25 -//SEG4 @25 -b25: +//SEG3 [1] phi from @begin to @28 [phi:@begin->@28] +b28_from_bbegin: + jmp b28 +//SEG4 @28 +b28: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @25 to @end [phi:@25->@end] -bend_from_b25: +//SEG6 [3] phi from @28 to @end [phi:@28->@end] +bend_from_b28: jmp bend //SEG7 @end bend: @@ -6835,22 +8139,22 @@ main: { sta DTV_FEATURE //SEG11 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_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] -- vbuz1=vbuc1 + //SEG12 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- 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 + //SEG13 [6] phi (byte) keyboard_modifiers#20 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #0 - sta key_down_debounce + sta keyboard_modifiers + //SEG14 [6] phi (byte) keyboard_events_size#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 + lda #0 + sta keyboard_events_size //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 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count jmp b1 //SEG16 main::@1 b1: - //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- true_then_la1 + //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- true_then_la1 jmp b2_from_b1 jmp breturn //SEG18 main::@return @@ -6862,13 +8166,13 @@ main: { jmp b2 //SEG21 main::@2 b2: - //SEG22 [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + //SEG22 [10] call menu param-assignment [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) jsr menu //SEG23 [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] b1_from_b2: - //SEG24 [6] phi (byte) key_right_debounce#1 = (byte) key_right_debounce#11 [phi:main::@2->main::@1#0] -- register_copy - //SEG25 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#1] -- register_copy - //SEG26 [6] phi (byte) key_down_debounce#1 = (byte) key_down_debounce#11 [phi:main::@2->main::@1#2] -- register_copy + //SEG24 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#0] -- register_copy + //SEG25 [6] phi (byte) keyboard_modifiers#20 = (byte) keyboard_modifiers#10 [phi:main::@2->main::@1#1] -- register_copy + //SEG26 [6] phi (byte) keyboard_events_size#22 = (byte) keyboard_events_size#24 [phi:main::@2->main::@1#2] -- register_copy //SEG27 [6] phi (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#13 [phi:main::@2->main::@1#3] -- register_copy jmp b1 } @@ -6876,32 +8180,32 @@ main: { menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label i = 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 + .label i = 5 + //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI - //SEG32 [14] *((const byte*) DTV_CONTROL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG32 [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_CONTROL - //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 + //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ 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 + //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #3^CHARSET/$4000 sta CIA2_PORT_A - //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 + //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_DEN|VIC_RSEL|3 sta VIC_CONTROL - //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ 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 + //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] @@ -6916,29 +8220,29 @@ 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_vbuz1=pbuc2_derefidx_vbuz1 + //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 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i 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 ] ) -- vbuz1=_inc_vbuz1 + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //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 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 jmp b8 //SEG46 menu::@8 b8: - //SEG47 [24] *((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG47 [24] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta BGCOL - //SEG48 [25] *((const byte*) BORDERCOL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG48 [25] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta BORDERCOL - //SEG49 [26] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - //SEG50 [167] phi from menu::@8 to print_set_screen [phi:menu::@8->print_set_screen] + //SEG49 [26] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + //SEG50 [212] phi from menu::@8 to print_set_screen [phi:menu::@8->print_set_screen] print_set_screen_from_b8: - //SEG51 [167] phi (byte*) print_set_screen::screen#2 = (const byte*) COLS#0 [phi:menu::@8->print_set_screen#0] -- pbuz1=pbuc1 + //SEG51 [212] phi (byte*) print_set_screen::screen#2 = (const byte*) COLS#0 [phi:menu::@8->print_set_screen#0] -- pbuz1=pbuc1 lda #COLS @@ -6949,17 +8253,17 @@ menu: { jmp b15 //SEG53 menu::@15 b15: - //SEG54 [28] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG54 [28] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) jsr print_cls //SEG55 [29] phi from menu::@15 to menu::@16 [phi:menu::@15->menu::@16] b16_from_b15: jmp b16 //SEG56 menu::@16 b16: - //SEG57 [30] call print_str_lines param-assignment [ 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 ] ) - //SEG58 [139] phi from menu::@16 to print_str_lines [phi:menu::@16->print_str_lines] + //SEG57 [30] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG58 [184] phi from menu::@16 to print_str_lines [phi:menu::@16->print_str_lines] print_str_lines_from_b16: - //SEG59 [139] phi (byte*) print_str_lines::str#5 = (const string) MENU_COLS#0 [phi:menu::@16->print_str_lines#0] -- pbuz1=pbuc1 + //SEG59 [184] phi (byte*) print_str_lines::str#5 = (const string) MENU_COLS#0 [phi:menu::@16->print_str_lines#0] -- pbuz1=pbuc1 lda #MENU_COLS @@ -6970,10 +8274,10 @@ menu: { jmp b17 //SEG61 menu::@17 b17: - //SEG62 [32] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - //SEG63 [167] phi from menu::@17 to print_set_screen [phi:menu::@17->print_set_screen] + //SEG62 [32] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + //SEG63 [212] phi from menu::@17 to print_set_screen [phi:menu::@17->print_set_screen] print_set_screen_from_b17: - //SEG64 [167] phi (byte*) print_set_screen::screen#2 = (const byte*) menu::SCREEN#0 [phi:menu::@17->print_set_screen#0] -- pbuz1=pbuc1 + //SEG64 [212] phi (byte*) print_set_screen::screen#2 = (const byte*) menu::SCREEN#0 [phi:menu::@17->print_set_screen#0] -- pbuz1=pbuc1 lda #SCREEN @@ -6984,17 +8288,17 @@ menu: { jmp b18 //SEG66 menu::@18 b18: - //SEG67 [34] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG67 [34] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) jsr print_cls //SEG68 [35] phi from menu::@18 to menu::@19 [phi:menu::@18->menu::@19] b19_from_b18: jmp b19 //SEG69 menu::@19 b19: - //SEG70 [36] call print_str_lines param-assignment [ 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 ] ) - //SEG71 [139] phi from menu::@19 to print_str_lines [phi:menu::@19->print_str_lines] + //SEG70 [36] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG71 [184] phi from menu::@19 to print_str_lines [phi:menu::@19->print_str_lines] print_str_lines_from_b19: - //SEG72 [139] phi (byte*) print_str_lines::str#5 = (const string) MENU_TEXT#0 [phi:menu::@19->print_str_lines#0] -- pbuz1=pbuc1 + //SEG72 [184] phi (byte*) print_str_lines::str#5 = (const string) MENU_TEXT#0 [phi:menu::@19->print_str_lines#0] -- pbuz1=pbuc1 lda #MENU_TEXT @@ -7005,8 +8309,8 @@ menu: { jmp b20 //SEG74 menu::@20 b20: - //SEG75 [38] call form_set_screen param-assignment [ 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 ] ) - //SEG76 [129] phi from menu::@20 to form_set_screen [phi:menu::@20->form_set_screen] + //SEG75 [38] call form_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG76 [174] phi from menu::@20 to form_set_screen [phi:menu::@20->form_set_screen] form_set_screen_from_b20: jsr form_set_screen //SEG77 [39] phi from menu::@20 to menu::@21 [phi:menu::@20->menu::@21] @@ -7014,30 +8318,30 @@ menu: { jmp b21 //SEG78 menu::@21 b21: - //SEG79 [40] call form_render_values param-assignment [ 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 ] ) - //SEG80 [119] phi from menu::@21 to form_render_values [phi:menu::@21->form_render_values] + //SEG79 [40] call form_render_values param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG80 [164] phi from menu::@21 to form_render_values [phi:menu::@21->form_render_values] form_render_values_from_b21: jsr form_render_values //SEG81 [41] phi from menu::@21 menu::@7 to menu::@2 [phi:menu::@21/menu::@7->menu::@2] b2_from_b21: b2_from_b7: - //SEG82 [41] phi (byte) key_right_debounce#11 = (byte) key_right_debounce#1 [phi:menu::@21/menu::@7->menu::@2#0] -- register_copy - //SEG83 [41] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@21/menu::@7->menu::@2#1] -- register_copy - //SEG84 [41] phi (byte) key_down_debounce#11 = (byte) key_down_debounce#1 [phi:menu::@21/menu::@7->menu::@2#2] -- register_copy + //SEG82 [41] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@21/menu::@7->menu::@2#0] -- register_copy + //SEG83 [41] phi (byte) keyboard_modifiers#10 = (byte) keyboard_modifiers#20 [phi:menu::@21/menu::@7->menu::@2#1] -- register_copy + //SEG84 [41] phi (byte) keyboard_events_size#24 = (byte) keyboard_events_size#22 [phi:menu::@21/menu::@7->menu::@2#2] -- register_copy //SEG85 [41] phi (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#1 [phi:menu::@21/menu::@7->menu::@2#3] -- register_copy jmp b2 //SEG86 menu::@2 b2: - //SEG87 [42] if(true) goto menu::@5 [ 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 ] ) -- true_then_la1 + //SEG87 [42] if(true) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) -- true_then_la1 jmp b5 jmp breturn //SEG88 menu::@return breturn: - //SEG89 [43] return [ 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 ] ) + //SEG89 [43] return [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) rts //SEG90 menu::@5 b5: - //SEG91 [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ 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 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG91 [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -7046,56 +8350,55 @@ menu: { jmp b7 //SEG93 menu::@7 b7: - //SEG94 [46] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + //SEG94 [46] call form_control param-assignment [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) jsr form_control jmp b2_from_b7 } //SEG95 form_control form_control: { - .label _6 = $19 + .label _6 = $1d .label _7 = $23 - .label _13 = $1c - .label _14 = $1e - .label _28 = $22 - .label field = $17 - .label key_down = $1b - .label key_right = $20 - //SEG96 [47] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuz1=vbuz2 + .label _12 = $20 + .label _13 = $21 + .label _24 = $22 + .label field = $1b + .label key_event = $1f + //SEG96 [47] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ) -- vbuz1=vbuz2 lda form_field_idx sta form_field_ptr.field_idx - //SEG97 [48] 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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) - //SEG98 [113] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + //SEG97 [48] call form_field_ptr param-assignment [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ) + //SEG98 [158] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] form_field_ptr_from_form_control: - //SEG99 [113] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + //SEG99 [158] 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 - //SEG100 [49] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) -- pbuz1=pbuz2 + //SEG100 [49] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ) -- pbuz1=pbuz2 lda form_field_ptr.return sta form_field_ptr.return_3 lda form_field_ptr.return+1 sta form_field_ptr.return_3+1 - jmp b32 - //SEG101 form_control::@32 - b32: - //SEG102 [50] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) -- pbuz1=pbuz2 + jmp b28 + //SEG101 form_control::@28 + b28: + //SEG102 [50] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ) -- pbuz1=pbuz2 lda form_field_ptr.return_3 sta field lda form_field_ptr.return_3+1 sta field+1 - //SEG103 [51] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 + //SEG103 [51] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 dec form_cursor_count - //SEG104 [52] 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:46 [ 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 + //SEG104 [52] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@31 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 lda form_cursor_count cmp #0 - bpl b37_from_b32 - //SEG105 [53] phi from form_control::@32 to form_control::@1 [phi:form_control::@32->form_control::@1] - b1_from_b32: - //SEG106 [53] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@32->form_control::@1#0] -- vbsz1=vbsc1 + bpl b31_from_b28 + //SEG105 [53] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] + b1_from_b28: + //SEG106 [53] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 lda #FORM_CURSOR_BLINK sta form_cursor_count jmp b1 //SEG107 form_control::@1 b1: - //SEG108 [54] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 + //SEG108 [54] 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 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 lda form_cursor_count sec sbc #FORM_CURSOR_BLINK/2 @@ -7103,376 +8406,643 @@ form_control: { eor #$80 !: bpl b2 - jmp b17 - //SEG109 form_control::@17 - b17: - //SEG110 [55] (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:46 [ 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 + jmp b15 + //SEG109 form_control::@15 + b15: + //SEG110 [55] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuz1=_deref_pbuz2_bor_vbuc1 lda #$80 ldy #0 ora (field),y sta _6 - //SEG111 [56] *((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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 + //SEG111 [56] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 lda _6 ldy #0 sta (field),y - //SEG112 [57] 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: + //SEG112 [57] 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: b3_from_b2: jmp b3 //SEG113 form_control::@3 b3: - //SEG114 [58] 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:46 [ 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 ] ) - //SEG115 [101] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] - keyboard_key_pressed_from_b3: - //SEG116 [101] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuz1=vbuc1 - lda #KEY_CRSR_DOWN - sta keyboard_key_pressed.key - jsr keyboard_key_pressed - //SEG117 [59] (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:46 [ 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 b33 - //SEG118 form_control::@33 - b33: - //SEG119 [60] (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:46 [ 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 - //SEG120 [61] 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:46 [ 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_b33 - jmp b19 - //SEG121 form_control::@19 - b19: - //SEG122 [62] (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:46 [ 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 - //SEG123 [63] 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:46 [ 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_b19 - jmp b20 - //SEG124 form_control::@20 - b20: - //SEG125 [64] (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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG114 [58] call keyboard_event_scan param-assignment [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + //SEG115 [95] phi from form_control::@3 to keyboard_event_scan [phi:form_control::@3->keyboard_event_scan] + keyboard_event_scan_from_b3: + jsr keyboard_event_scan + //SEG116 [59] phi from form_control::@3 to form_control::@29 [phi:form_control::@3->form_control::@29] + b29_from_b3: + jmp b29 + //SEG117 form_control::@29 + b29: + //SEG118 [60] call keyboard_event_get param-assignment [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ) + jsr keyboard_event_get + //SEG119 [61] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ) -- vbuz1=vbuz2 + lda keyboard_event_get.return + sta keyboard_event_get.return_3 + jmp b30 + //SEG120 form_control::@30 + b30: + //SEG121 [62] (byte) form_control::key_event#0 ← (byte) keyboard_event_get::return#3 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) -- vbuz1=vbuz2 + lda keyboard_event_get.return_3 + sta key_event + //SEG122 [63] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_DOWN#0) goto form_control::@4 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda key_event + cmp #KEY_CRSR_DOWN + bne b4 + jmp b17 + //SEG123 form_control::@17 + b17: + //SEG124 [64] (byte~) form_control::$12 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ) -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$7f ldy #0 and (field),y - sta _13 - //SEG126 [65] *((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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- _deref_pbuz1=vbuz2 - lda _13 + sta _12 + //SEG125 [65] *((byte*) form_control::field#0) ← (byte~) form_control::$12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) -- _deref_pbuz1=vbuz2 + lda _12 ldy #0 sta (field),y - //SEG127 [66] 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:46 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - //SEG128 [101] phi from form_control::@20 to keyboard_key_pressed [phi:form_control::@20->keyboard_key_pressed] - keyboard_key_pressed_from_b20: - //SEG129 [101] 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 - //SEG130 [67] (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:46 [ 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 b35 - //SEG131 form_control::@35 - b35: - //SEG132 [68] (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:46 [ 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 - //SEG133 [69] 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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuz1_neq_0_then_la1 - lda _14 - bne b6 - jmp b21 - //SEG134 form_control::@21 - b21: - //SEG135 [70] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1=_inc_vbuz1 + //SEG126 [66] (byte~) form_control::$13 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers + sta _13 + //SEG127 [67] if((byte~) form_control::$13!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) -- vbuz1_neq_0_then_la1 + lda _13 + bne b5 + jmp b18 + //SEG128 form_control::@18 + b18: + //SEG129 [68] (byte) form_field_idx#40 ← ++ (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) -- vbuz1=_inc_vbuz1 inc form_field_idx - //SEG136 [71] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG130 [69] if((byte) form_field_idx#40!=(const byte) form_fields_cnt#0) goto form_control::@32 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #form_fields_cnt - bne b38_from_b21 - //SEG137 [72] phi from form_control::@21 to form_control::@8 [phi:form_control::@21->form_control::@8] - b8_from_b21: - //SEG138 [72] 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 + bne b32_from_b18 + //SEG131 [70] phi from form_control::@18 to form_control::@7 [phi:form_control::@18->form_control::@7] + b7_from_b18: + //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@18->form_control::@7#0] -- vbuz1=vbuc1 lda #0 sta form_field_idx - jmp b8 - //SEG139 form_control::@8 - b8: - //SEG140 [73] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] - breturn_from_b8: - //SEG141 [73] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy - //SEG142 [73] phi (byte) form_field_idx#18 = (byte) form_field_idx#32 [phi:form_control::@8->form_control::@return#1] -- register_copy - //SEG143 [73] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy - //SEG144 [73] 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 + jmp b7 + //SEG133 form_control::@7 + b7: + //SEG134 [71] phi from form_control::@7 to form_control::@return [phi:form_control::@7->form_control::@return] + breturn_from_b7: + //SEG135 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@7->form_control::@return#0] -- register_copy + //SEG136 [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::@7->form_control::@return#1] -- vbsz1=vbuc1 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count jmp breturn - //SEG145 [73] 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: - //SEG146 [73] 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 - //SEG147 [73] 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 - //SEG148 [73] 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 - //SEG149 [73] 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 + //SEG137 [71] phi from form_control::@12 form_control::@4 to form_control::@return [phi:form_control::@12/form_control::@4->form_control::@return] + breturn_from_b12: + breturn_from_b4: + //SEG138 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@12/form_control::@4->form_control::@return#0] -- register_copy + //SEG139 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@12/form_control::@4->form_control::@return#1] -- register_copy jmp breturn - //SEG150 form_control::@return + //SEG140 form_control::@return breturn: - //SEG151 [74] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + //SEG141 [72] return [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) rts - //SEG152 [75] phi from form_control::@21 to form_control::@38 [phi:form_control::@21->form_control::@38] - b38_from_b21: - jmp b38 - //SEG153 form_control::@38 - b38: - //SEG154 [72] 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: - //SEG155 [72] 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 - //SEG156 form_control::@6 - b6: - //SEG157 [76] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1=_dec_vbuz1 + //SEG142 [73] phi from form_control::@18 to form_control::@32 [phi:form_control::@18->form_control::@32] + b32_from_b18: + jmp b32 + //SEG143 form_control::@32 + b32: + //SEG144 [70] phi from form_control::@32 form_control::@33 to form_control::@7 [phi:form_control::@32/form_control::@33->form_control::@7] + b7_from_b32: + b7_from_b33: + //SEG145 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#40 [phi:form_control::@32/form_control::@33->form_control::@7#0] -- register_copy + jmp b7 + //SEG146 form_control::@5 + b5: + //SEG147 [74] (byte) form_field_idx#41 ← -- (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) -- vbuz1=_dec_vbuz1 dec form_field_idx - //SEG158 [77] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG148 [75] if((byte) form_field_idx#41!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@33 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #$ff - bne b39_from_b6 - //SEG159 [72] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] - b8_from_b6: - //SEG160 [72] 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 + bne b33_from_b5 + //SEG149 [70] phi from form_control::@5 to form_control::@7 [phi:form_control::@5->form_control::@7] + b7_from_b5: + //SEG150 [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::@5->form_control::@7#0] -- vbuz1=vbuc1 lda #form_fields_cnt-1 sta form_field_idx - jmp b8 - //SEG161 [78] phi from form_control::@6 to form_control::@39 [phi:form_control::@6->form_control::@39] - b39_from_b6: - jmp b39 - //SEG162 form_control::@39 - b39: - jmp b8_from_b39 - //SEG163 [79] 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: - //SEG164 [79] 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 - //SEG165 form_control::@4 + jmp b7 + //SEG151 [76] phi from form_control::@5 to form_control::@33 [phi:form_control::@5->form_control::@33] + b33_from_b5: + jmp b33 + //SEG152 form_control::@33 + b33: + jmp b7_from_b33 + //SEG153 form_control::@4 b4: - //SEG166 [80] 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:46 [ 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 ] ) - //SEG167 [101] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] - keyboard_key_pressed_from_b4: - //SEG168 [101] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuz1=vbuc1 - lda #KEY_CRSR_RIGHT - sta keyboard_key_pressed.key - jsr keyboard_key_pressed - //SEG169 [81] (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:46 [ 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 b34 - //SEG170 form_control::@34 - b34: - //SEG171 [82] (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:46 [ 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 - //SEG172 [83] 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:46 [ 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_b34 - jmp b26 - //SEG173 form_control::@26 - b26: - //SEG174 [84] (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:46 [ 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 - //SEG175 [85] 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:46 [ 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_b26 - //SEG176 [86] phi from form_control::@26 to form_control::@27 [phi:form_control::@26->form_control::@27] - b27_from_b26: - jmp b27 - //SEG177 form_control::@27 - b27: - //SEG178 [87] 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:46 [ 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 ] ) - //SEG179 [101] phi from form_control::@27 to keyboard_key_pressed [phi:form_control::@27->keyboard_key_pressed] - keyboard_key_pressed_from_b27: - //SEG180 [101] 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 - //SEG181 [88] (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:46 [ 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 b36 - //SEG182 form_control::@36 - b36: - //SEG183 [89] (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:46 [ 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 - //SEG184 [90] 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:46 [ 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 b28 - //SEG185 form_control::@28 - b28: - //SEG186 [91] *((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:46 [ 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 + //SEG154 [77] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_RIGHT#0) goto form_control::@return [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda key_event + cmp #KEY_CRSR_RIGHT + bne breturn_from_b4 + jmp b23 + //SEG155 form_control::@23 + b23: + //SEG156 [78] (byte~) form_control::$24 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers + sta _24 + //SEG157 [79] if((byte~) form_control::$24!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- vbuz1_neq_0_then_la1 + lda _24 + bne b10 + jmp b24 + //SEG158 form_control::@24 + b24: + //SEG159 [80] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 ldx form_field_idx inc form_fields_val,x - //SEG187 [92] 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:46 [ 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 + //SEG160 [81] 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::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- 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 - //SEG188 form_control::@29 - b29: - //SEG189 [93] *((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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + bcc b12 + beq b12 + jmp b25 + //SEG161 form_control::@25 + b25: + //SEG162 [82] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 ldy form_field_idx lda #0 sta form_fields_val,y - jmp b14 - //SEG190 form_control::@14 - b14: - //SEG191 [94] *((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:46 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + jmp b12 + //SEG163 form_control::@12 + b12: + //SEG164 [83] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ) -- _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_b14 - //SEG192 form_control::@12 - b12: - //SEG193 [95] *((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:46 [ 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 + jmp breturn_from_b12 + //SEG165 form_control::@10 + b10: + //SEG166 [84] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 ldx form_field_idx lda form_fields_val,x sec sbc #1 ldx form_field_idx sta form_fields_val,x - //SEG194 [96] 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:46 [ 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 + //SEG167 [85] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 ldy form_field_idx lda form_fields_val,y cmp #$ff - bne b14 - jmp b31 - //SEG195 form_control::@31 - b31: - //SEG196 [97] *((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:46 [ 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 + bne b12 + jmp b27 + //SEG168 form_control::@27 + b27: + //SEG169 [86] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy form_field_idx lda form_fields_max,y sta form_fields_val,y - jmp b14 - //SEG197 form_control::@2 + jmp b12 + //SEG170 form_control::@2 b2: - //SEG198 [98] (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:46 [ 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 + //SEG171 [87] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 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 - //SEG199 [99] *((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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 + //SEG172 [88] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 lda _7 ldy #0 sta (field),y jmp b3_from_b2 - //SEG200 [100] phi from form_control::@32 to form_control::@37 [phi:form_control::@32->form_control::@37] - b37_from_b32: - jmp b37 - //SEG201 form_control::@37 - b37: - //SEG202 [53] phi from form_control::@37 to form_control::@1 [phi:form_control::@37->form_control::@1] - b1_from_b37: - //SEG203 [53] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@37->form_control::@1#0] -- register_copy + //SEG173 [89] phi from form_control::@28 to form_control::@31 [phi:form_control::@28->form_control::@31] + b31_from_b28: + jmp b31 + //SEG174 form_control::@31 + b31: + //SEG175 [53] phi from form_control::@31 to form_control::@1 [phi:form_control::@31->form_control::@1] + b1_from_b31: + //SEG176 [53] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@31->form_control::@1#0] -- register_copy jmp b1 } -//SEG204 keyboard_key_pressed -keyboard_key_pressed: { - .label _2 = $28 - .label colidx = $24 - .label rowidx = $25 - .label return = $29 - .label return_2 = $1a - .label return_3 = $1f - .label return_4 = $1d - .label key = 7 - .label return_10 = $21 - //SEG205 [102] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG206 [103] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG207 [104] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG208 [105] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG209 [106] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG210 keyboard_key_pressed::@2 - b2: - //SEG211 [107] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG212 [108] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 +//SEG177 keyboard_event_get +keyboard_event_get: { + .label return = 6 + .label return_3 = $1e + //SEG178 [90] if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) -- vbuz1_neq_0_then_la1 + lda keyboard_events_size + bne b1 + //SEG179 [91] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + breturn_from_keyboard_event_get: + //SEG180 [91] phi (byte) keyboard_events_size#20 = (byte) keyboard_events_size#17 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG181 [91] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + lda #$ff sta return jmp breturn - //SEG213 keyboard_key_pressed::@return + //SEG182 keyboard_event_get::@return breturn: - //SEG214 [109] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) + //SEG183 [92] return [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + rts + //SEG184 keyboard_event_get::@1 + b1: + //SEG185 [93] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#17 [ keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#4 ] ) -- vbuz1=_dec_vbuz1 + dec keyboard_events_size + //SEG186 [94] (byte) keyboard_event_get::return#0 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) [ keyboard_event_get::return#0 keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#0 keyboard_events_size#4 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy keyboard_events_size + lda keyboard_events,y + sta return + //SEG187 [91] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] + breturn_from_b1: + //SEG188 [91] phi (byte) keyboard_events_size#20 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy + //SEG189 [91] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#0 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy + jmp breturn +} +//SEG190 keyboard_event_scan +keyboard_event_scan: { + .label _3 = $27 + .label _4 = $28 + .label _12 = $2a + .label _16 = $2c + .label _20 = $2e + .label _24 = $30 + .label _28 = $32 + .label row_scan = $26 + .label keycode = 9 + .label col = 8 + .label event_type = $29 + .label row = 7 + //SEG191 [96] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + b1_from_keyboard_event_scan: + //SEG192 [96] phi (byte) keyboard_events_size#43 = (byte) keyboard_events_size#24 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG193 [96] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + lda #0 + sta keycode + //SEG194 [96] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + lda #0 + sta row + jmp b1 + //SEG195 [96] phi from keyboard_event_scan::@8 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1] + b1_from_b8: + //SEG196 [96] phi (byte) keyboard_events_size#43 = (byte) keyboard_events_size#17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#0] -- register_copy + //SEG197 [96] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#1] -- register_copy + //SEG198 [96] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#2] -- register_copy + jmp b1 + //SEG199 keyboard_event_scan::@1 + b1: + //SEG200 [97] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ) -- vbuz1=vbuz2 + lda row + sta keyboard_matrix_read.rowid + //SEG201 [98] call keyboard_matrix_read param-assignment [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) + jsr keyboard_matrix_read + //SEG202 [99] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_read.return + sta keyboard_matrix_read.return_2 + jmp b25 + //SEG203 keyboard_event_scan::@25 + b25: + //SEG204 [100] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_read.return_2 + sta row_scan + //SEG205 [101] if((byte) keyboard_event_scan::row_scan#0==*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) -- vbuz1_eq_pbuc1_derefidx_vbuz2_then_la1 + ldy row + lda keyboard_scan_values,y + cmp row_scan + beq b2 + //SEG206 [102] phi from keyboard_event_scan::@25 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3] + b3_from_b25: + //SEG207 [102] phi (byte) keyboard_events_size#14 = (byte) keyboard_events_size#43 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#0] -- register_copy + //SEG208 [102] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#1] -- register_copy + //SEG209 [102] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#2] -- vbuz1=vbuc1 + lda #0 + sta col + jmp b3 + //SEG210 [102] phi from keyboard_event_scan::@4 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3] + b3_from_b4: + //SEG211 [102] phi (byte) keyboard_events_size#14 = (byte) keyboard_events_size#44 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#0] -- register_copy + //SEG212 [102] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#1] -- register_copy + //SEG213 [102] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#2] -- register_copy + jmp b3 + //SEG214 keyboard_event_scan::@3 + b3: + //SEG215 [103] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 + lda row_scan + ldy row + eor keyboard_scan_values,y + sta _3 + //SEG216 [104] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + lda _3 + ldy col + and keyboard_matrix_col_bitmask,y + sta _4 + //SEG217 [105] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuz1_eq_0_then_la1 + lda _4 + beq b4_from_b3 + jmp b14 + //SEG218 keyboard_event_scan::@14 + b14: + //SEG219 [106] if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuz1_eq_vbuc1_then_la1 + lda keyboard_events_size + cmp #8 + beq b4_from_b14 + jmp b15 + //SEG220 keyboard_event_scan::@15 + b15: + //SEG221 [107] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + lda row_scan + ldy col + and keyboard_matrix_col_bitmask,y + sta event_type + //SEG222 [108] if((byte) keyboard_event_scan::event_type#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@6 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuz1_neq_0_then_la1 + lda event_type + bne b6 + jmp b16 + //SEG223 keyboard_event_scan::@16 + b16: + //SEG224 [109] (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ) -- vbuz1=vbuz2_bor_vbuc1 + lda #$40 + ora keycode + sta _12 + //SEG225 [110] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte/word/dword~) keyboard_event_scan::$12 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _12 + ldy keyboard_events_size + sta keyboard_events,y + //SEG226 [111] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ) -- vbuz1=_inc_vbuz1 + inc keyboard_events_size + //SEG227 [112] phi from keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@14/keyboard_event_scan::@16/keyboard_event_scan::@3/keyboard_event_scan::@6->keyboard_event_scan::@4] + b4_from_b14: + b4_from_b16: + b4_from_b3: + b4_from_b6: + //SEG228 [112] phi (byte) keyboard_events_size#44 = (byte) keyboard_events_size#14 [phi:keyboard_event_scan::@14/keyboard_event_scan::@16/keyboard_event_scan::@3/keyboard_event_scan::@6->keyboard_event_scan::@4#0] -- register_copy + jmp b4 + //SEG229 keyboard_event_scan::@4 + b4: + //SEG230 [113] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuz1=_inc_vbuz1 + inc keycode + //SEG231 [114] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuz1=_inc_vbuz1 + inc col + //SEG232 [115] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@3 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda col + cmp #8 + bne b3_from_b4 + jmp b18 + //SEG233 keyboard_event_scan::@18 + b18: + //SEG234 [116] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda row_scan + ldy row + sta keyboard_scan_values,y + //SEG235 [117] phi from keyboard_event_scan::@18 keyboard_event_scan::@2 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8] + b8_from_b18: + b8_from_b2: + //SEG236 [117] phi (byte) keyboard_events_size#17 = (byte) keyboard_events_size#44 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8#0] -- register_copy + //SEG237 [117] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8#1] -- register_copy + jmp b8 + //SEG238 keyboard_event_scan::@8 + b8: + //SEG239 [118] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) -- vbuz1=_inc_vbuz1 + inc row + //SEG240 [119] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda row + cmp #8 + bne b1_from_b8 + //SEG241 [120] phi from keyboard_event_scan::@8 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@8->keyboard_event_scan::@20] + b20_from_b8: + jmp b20 + //SEG242 keyboard_event_scan::@20 + b20: + //SEG243 [121] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] ) + //SEG244 [149] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + keyboard_event_pressed_from_b20: + //SEG245 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_LSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG246 [122] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_event_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#0 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return_10 + sta keyboard_event_pressed.return + jmp b26 + //SEG247 keyboard_event_scan::@26 + b26: + //SEG248 [123] (byte~) keyboard_event_scan::$16 ← (byte) keyboard_event_pressed::return#0 [ keyboard_events_size#17 keyboard_event_scan::$16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::$16 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return + sta _16 + //SEG249 [124] if((byte~) keyboard_event_scan::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) -- vbuz1_eq_0_then_la1 + lda _16 + beq b9_from_b26 + //SEG250 [125] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + b21_from_b26: + jmp b21 + //SEG251 keyboard_event_scan::@21 + b21: + //SEG252 [126] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + b9_from_b21: + //SEG253 [126] phi (byte) keyboard_modifiers#15 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + lda #0|KEY_MODIFIER_LSHIFT + sta keyboard_modifiers + jmp b9 + //SEG254 [126] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + b9_from_b26: + //SEG255 [126] phi (byte) keyboard_modifiers#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + lda #0 + sta keyboard_modifiers + jmp b9 + //SEG256 keyboard_event_scan::@9 + b9: + //SEG257 [127] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ) + //SEG258 [149] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + keyboard_event_pressed_from_b9: + //SEG259 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_RSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG260 [128] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return_10 + sta keyboard_event_pressed.return_1 + jmp b27 + //SEG261 keyboard_event_scan::@27 + b27: + //SEG262 [129] (byte~) keyboard_event_scan::$20 ← (byte) keyboard_event_pressed::return#1 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return_1 + sta _20 + //SEG263 [130] if((byte~) keyboard_event_scan::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 [ keyboard_events_size#17 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 ] ) -- vbuz1_eq_0_then_la1 + lda _20 + beq b10_from_b27 + jmp b22 + //SEG264 keyboard_event_scan::@22 + b22: + //SEG265 [131] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#15 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#17 keyboard_modifiers#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#3 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_RSHIFT + ora keyboard_modifiers + sta keyboard_modifiers + //SEG266 [132] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + b10_from_b22: + b10_from_b27: + //SEG267 [132] phi (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + jmp b10 + //SEG268 keyboard_event_scan::@10 + b10: + //SEG269 [133] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ) + //SEG270 [149] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + keyboard_event_pressed_from_b10: + //SEG271 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_CTRL + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG272 [134] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return_10 + sta keyboard_event_pressed.return_2 + jmp b28 + //SEG273 keyboard_event_scan::@28 + b28: + //SEG274 [135] (byte~) keyboard_event_scan::$24 ← (byte) keyboard_event_pressed::return#2 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return_2 + sta _24 + //SEG275 [136] if((byte~) keyboard_event_scan::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 [ keyboard_events_size#17 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 ] ) -- vbuz1_eq_0_then_la1 + lda _24 + beq b11_from_b28 + jmp b23 + //SEG276 keyboard_event_scan::@23 + b23: + //SEG277 [137] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#16 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#17 keyboard_modifiers#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#4 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_CTRL + ora keyboard_modifiers + sta keyboard_modifiers + //SEG278 [138] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + b11_from_b23: + b11_from_b28: + //SEG279 [138] phi (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + jmp b11 + //SEG280 keyboard_event_scan::@11 + b11: + //SEG281 [139] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ) + //SEG282 [149] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + keyboard_event_pressed_from_b11: + //SEG283 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_COMMODORE + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG284 [140] (byte) keyboard_event_pressed::return#3 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return_10 + sta keyboard_event_pressed.return_3 + jmp b29 + //SEG285 keyboard_event_scan::@29 + b29: + //SEG286 [141] (byte~) keyboard_event_scan::$28 ← (byte) keyboard_event_pressed::return#3 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ) -- vbuz1=vbuz2 + lda keyboard_event_pressed.return_3 + sta _28 + //SEG287 [142] if((byte~) keyboard_event_scan::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return [ keyboard_events_size#17 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 ] ) -- vbuz1_eq_0_then_la1 + lda _28 + beq breturn_from_b29 + jmp b24 + //SEG288 keyboard_event_scan::@24 + b24: + //SEG289 [143] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#17 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#17 keyboard_modifiers#5 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#5 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_COMMODORE + ora keyboard_modifiers + sta keyboard_modifiers + //SEG290 [144] phi from keyboard_event_scan::@24 keyboard_event_scan::@29 to keyboard_event_scan::@return [phi:keyboard_event_scan::@24/keyboard_event_scan::@29->keyboard_event_scan::@return] + breturn_from_b24: + breturn_from_b29: + //SEG291 [144] phi (byte) keyboard_modifiers#18 = (byte) keyboard_modifiers#5 [phi:keyboard_event_scan::@24/keyboard_event_scan::@29->keyboard_event_scan::@return#0] -- register_copy + jmp breturn + //SEG292 keyboard_event_scan::@return + breturn: + //SEG293 [145] return [ keyboard_modifiers#18 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_modifiers#18 keyboard_events_size#17 ] ) + rts + //SEG294 keyboard_event_scan::@6 + b6: + //SEG295 [146] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda keycode + ldy keyboard_events_size + sta keyboard_events,y + //SEG296 [147] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ) -- vbuz1=_inc_vbuz1 + inc keyboard_events_size + jmp b4_from_b6 + //SEG297 keyboard_event_scan::@2 + b2: + //SEG298 [148] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ) -- vbuz1=vbuz1_plus_vbuc1 + lda #8 + clc + adc keycode + sta keycode + jmp b8_from_b2 +} +//SEG299 keyboard_event_pressed +keyboard_event_pressed: { + .label _0 = $33 + .label _1 = $35 + .label return = $2b + .label return_1 = $2d + .label return_2 = $2f + .label return_3 = $31 + .label row_bits = $34 + .label keycode = $b + .label return_10 = $36 + //SEG300 [150] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ) -- vbuz1=vbuz2_ror_3 + lda keycode + lsr + lsr + lsr + sta _0 + //SEG301 [151] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy _0 + lda keyboard_scan_values,y + sta row_bits + //SEG302 [152] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and keycode + sta _1 + //SEG303 [153] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + lda row_bits + ldy _1 + and keyboard_matrix_col_bitmask,y + sta return_10 + jmp breturn + //SEG304 keyboard_event_pressed::@return + breturn: + //SEG305 [154] return [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) rts } -//SEG215 keyboard_matrix_read +//SEG306 keyboard_matrix_read keyboard_matrix_read: { - .label return = $2a - .label rowid = $26 - .label return_2 = $27 - //SEG216 [110] *((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:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 = $37 + .label rowid = $24 + .label return_2 = $25 + //SEG307 [155] *((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:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy rowid lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG217 [111] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 + //SEG308 [156] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta return jmp breturn - //SEG218 keyboard_matrix_read::@return + //SEG309 keyboard_matrix_read::@return breturn: - //SEG219 [112] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) + //SEG310 [157] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) rts } -//SEG220 form_field_ptr +//SEG311 form_field_ptr form_field_ptr: { - .label y = $2b - .label x = $2e - .label return = $2f - .label field_idx = 8 - .label return_2 = $31 - .label return_3 = $15 - .label _2 = $2c - //SEG221 [114] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 y = $38 + .label x = $3b + .label return = $3c + .label field_idx = $c + .label return_2 = $3e + .label return_3 = $19 + .label _2 = $39 + //SEG312 [159] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG222 [115] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG313 [160] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG223 [116] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG314 [161] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG224 [117] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG315 [162] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz2_plus_vbuz3 lda x clc adc _2 @@ -7481,106 +9051,106 @@ form_field_ptr: { adc _2+1 sta return+1 jmp breturn - //SEG225 form_field_ptr::@return + //SEG316 form_field_ptr::@return breturn: - //SEG226 [118] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) + //SEG317 [163] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) rts } -//SEG227 form_render_values +//SEG318 form_render_values form_render_values: { - .label field = $33 - .label idx = 9 - //SEG228 [120] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + .label field = $40 + .label idx = $d + //SEG319 [165] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] b1_from_form_render_values: - //SEG229 [120] 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 + //SEG320 [165] 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 - //SEG230 [120] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + //SEG321 [165] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] b1_from_b3: - //SEG231 [120] 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 + //SEG322 [165] 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 - //SEG232 form_render_values::@1 + //SEG323 form_render_values::@1 b1: - //SEG233 [121] (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:40 [ 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 + //SEG324 [166] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) -- vbuz1=vbuz2 lda idx sta form_field_ptr.field_idx - //SEG234 [122] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ 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 ] ) - //SEG235 [113] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + //SEG325 [167] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG326 [158] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] form_field_ptr_from_b1: - //SEG236 [113] 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 + //SEG327 [158] 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 - //SEG237 [123] (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:40 [ 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 + //SEG328 [168] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG238 form_render_values::@3 + //SEG329 form_render_values::@3 b3: - //SEG239 [124] (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:40 [ 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 + //SEG330 [169] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG240 [125] *((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:40 [ 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 + //SEG331 [170] *((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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG241 [126] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG332 [171] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 inc idx - //SEG242 [127] 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:40 [ 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 + //SEG333 [172] 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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 lda idx cmp #form_fields_cnt bcc b1_from_b3 jmp breturn - //SEG243 form_render_values::@return + //SEG334 form_render_values::@return breturn: - //SEG244 [128] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG335 [173] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts } -//SEG245 form_set_screen +//SEG336 form_set_screen form_set_screen: { - .label _0 = $35 - .label _1 = $36 - .label line = $a - .label y = $c - //SEG246 [130] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + .label _0 = $42 + .label _1 = $43 + .label line = $e + .label y = $10 + //SEG337 [175] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] b1_from_form_set_screen: - //SEG247 [130] 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 + //SEG338 [175] 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 - //SEG248 [130] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + //SEG339 [175] 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 - //SEG249 [130] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + //SEG340 [175] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] b1_from_b1: - //SEG250 [130] 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 - //SEG251 [130] 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 + //SEG341 [175] 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 + //SEG342 [175] 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 - //SEG252 form_set_screen::@1 + //SEG343 form_set_screen::@1 b1: - //SEG253 [131] (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:38 [ 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 + //SEG344 [176] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuz1=_lo_pbuz2 lda line sta _0 - //SEG254 [132] *((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:38 [ 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 + //SEG345 [177] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy y sta form_line_lo,y - //SEG255 [133] (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:38 [ 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 + //SEG346 [178] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuz1=_hi_pbuz2 lda line+1 sta _1 - //SEG256 [134] *((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:38 [ 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 + //SEG347 [179] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda _1 ldy y sta form_line_hi,y - //SEG257 [135] (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:38 [ 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 + //SEG348 [180] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -7588,116 +9158,116 @@ form_set_screen: { bcc !+ inc line+1 !: - //SEG258 [136] (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:38 [ 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 + //SEG349 [181] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuz1=_inc_vbuz1 inc y - //SEG259 [137] 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:38 [ 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 + //SEG350 [182] 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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG260 form_set_screen::@return + //SEG351 form_set_screen::@return breturn: - //SEG261 [138] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG352 [183] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts } -//SEG262 print_str_lines +//SEG353 print_str_lines print_str_lines: { - .label ch = $37 - .label str = $d - //SEG263 [140] (byte*~) print_char_cursor#63 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ) -- pbuz1=pbuz2 + .label ch = $44 + .label str = $11 + //SEG354 [185] (byte*~) print_char_cursor#64 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ) -- pbuz1=pbuz2 lda print_set_screen.screen sta print_char_cursor lda print_set_screen.screen+1 sta print_char_cursor+1 - //SEG264 [141] phi from print_str_lines print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1] + //SEG355 [186] phi from print_str_lines print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1] b1_from_print_str_lines: b1_from_b9: - //SEG265 [141] phi (byte*) print_line_cursor#2 = (byte*) print_set_screen::screen#2 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG266 [141] phi (byte*) print_char_cursor#22 = (byte*~) print_char_cursor#63 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG267 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG356 [186] phi (byte*) print_line_cursor#2 = (byte*) print_set_screen::screen#2 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG357 [186] phi (byte*) print_char_cursor#22 = (byte*~) print_char_cursor#64 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG358 [186] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 - //SEG268 print_str_lines::@1 + //SEG359 print_str_lines::@1 b1: - //SEG269 [142] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG360 [187] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4_from_b1 jmp breturn - //SEG270 print_str_lines::@return + //SEG361 print_str_lines::@return breturn: - //SEG271 [143] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG362 [188] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts - //SEG272 [144] 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] + //SEG363 [189] 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: - //SEG273 [144] phi (byte*) print_char_cursor#20 = (byte*) print_char_cursor#22 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG274 [144] phi (byte*) print_str_lines::str#4 = (byte*) print_str_lines::str#3 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG364 [189] phi (byte*) print_char_cursor#20 = (byte*) print_char_cursor#22 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG365 [189] phi (byte*) print_str_lines::str#4 = (byte*) print_str_lines::str#3 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy jmp b4 - //SEG275 print_str_lines::@4 + //SEG366 print_str_lines::@4 b4: - //SEG276 [145] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuz1=_deref_pbuz2 + //SEG367 [190] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuz1=_deref_pbuz2 ldy #0 lda (str),y sta ch - //SEG277 [146] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG368 [191] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG278 [147] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuz1_eq_vbuc1_then_la1 + //SEG369 [192] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuz1_eq_vbuc1_then_la1 lda ch cmp #'@' beq b5_from_b4 jmp b8 - //SEG279 print_str_lines::@8 + //SEG370 print_str_lines::@8 b8: - //SEG280 [148] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuz2 + //SEG371 [193] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuz2 lda ch ldy #0 sta (print_char_cursor),y - //SEG281 [149] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG372 [194] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 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 !: - //SEG282 [150] 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] + //SEG373 [195] 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: - //SEG283 [150] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG374 [195] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy jmp b5 - //SEG284 print_str_lines::@5 + //SEG375 print_str_lines::@5 b5: - //SEG285 [151] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG376 [196] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #'@' bne b4_from_b5 - //SEG286 [152] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG377 [197] 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 - //SEG287 print_str_lines::@9 + //SEG378 print_str_lines::@9 b9: - //SEG288 [153] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) - //SEG289 [155] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG379 [198] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) + //SEG380 [200] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] print_ln_from_b9: jsr print_ln - //SEG290 [154] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ) -- pbuz1=pbuz2 + //SEG381 [199] (byte*~) print_char_cursor#65 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 jmp b1_from_b9 } -//SEG291 print_ln +//SEG382 print_ln print_ln: { - //SEG292 [156] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG383 [201] 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: - //SEG293 [156] phi (byte*) print_line_cursor#21 = (byte*) print_line_cursor#2 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG384 [201] phi (byte*) print_line_cursor#21 = (byte*) print_line_cursor#2 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp b1 - //SEG294 print_ln::@1 + //SEG385 print_ln::@1 b1: - //SEG295 [157] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG386 [202] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -7705,7 +9275,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG296 [158] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG387 [203] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1_from_b1 @@ -7715,37 +9285,37 @@ print_ln: { bcc b1_from_b1 !: jmp breturn - //SEG297 print_ln::@return + //SEG388 print_ln::@return breturn: - //SEG298 [159] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) + //SEG389 [204] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) rts } -//SEG299 print_cls +//SEG390 print_cls print_cls: { - .label _0 = $38 - .label sc = $13 - //SEG300 [160] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] ) -- pbuz1=pbuz2 + .label _0 = $45 + .label sc = $17 + //SEG391 [205] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) -- pbuz1=pbuz2 lda print_set_screen.screen sta sc lda print_set_screen.screen+1 sta sc+1 - //SEG301 [161] phi from print_cls print_cls::@1 to print_cls::@1 [phi:print_cls/print_cls::@1->print_cls::@1] + //SEG392 [206] phi from print_cls print_cls::@1 to print_cls::@1 [phi:print_cls/print_cls::@1->print_cls::@1] b1_from_print_cls: b1_from_b1: - //SEG302 [161] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#0 [phi:print_cls/print_cls::@1->print_cls::@1#0] -- register_copy + //SEG393 [206] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#0 [phi:print_cls/print_cls::@1->print_cls::@1#0] -- register_copy jmp b1 - //SEG303 print_cls::@1 + //SEG394 print_cls::@1 b1: - //SEG304 [162] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG395 [207] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG305 [163] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG396 [208] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG306 [164] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) -- pbuz1=pbuz2_plus_vwuc1 + //SEG397 [209] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) -- pbuz1=pbuz2_plus_vwuc1 lda print_set_screen.screen clc adc #<$3e8 @@ -7753,7 +9323,7 @@ print_cls: { lda print_set_screen.screen+1 adc #>$3e8 sta _0+1 - //SEG307 [165] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1_neq_pbuz2_then_la1 + //SEG398 [210] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1_neq_pbuz2_then_la1 lda sc+1 cmp _0+1 bne b1_from_b1 @@ -7761,24 +9331,26 @@ print_cls: { cmp _0 bne b1_from_b1 jmp breturn - //SEG308 print_cls::@return + //SEG399 print_cls::@return breturn: - //SEG309 [166] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG400 [211] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) rts } -//SEG310 print_set_screen +//SEG401 print_set_screen print_set_screen: { - .label screen = $11 + .label screen = $15 jmp breturn - //SEG311 print_set_screen::@return + //SEG402 print_set_screen::@return breturn: - //SEG312 [168] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG403 [213] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) rts } DTV_PALETTE_DEFAULT: .byte 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a print_hextab: .text "0123456789abcdef" keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + keyboard_events: .fill 8, 0 + keyboard_scan_values: .fill 8, 0 form_line_lo: .fill $19, 0 form_line_hi: .fill $19, 0 form_fields_x: .byte $16, 7, 7, 7, 7, 7, 7, 7, $11, $11, $11, $10, $11, $10, $11, $10, $11, $1b, $1a, $1b, $1a, $1b, $1a, $1b, $26, $26, $26, $25, $26, $25, $26, $25, $26, $25, $26 @@ -7790,245 +9362,319 @@ print_set_screen: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [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 ] ) always clobbers reg byte a +Statement [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a 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 a 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 a 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 a as potential for zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] -Statement [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((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 -Statement [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((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 -Statement [14] *((const byte*) DTV_CONTROL#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 -Statement [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 -Statement [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ 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 -Statement [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 -Statement [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#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 -Statement [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ 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 -Statement [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 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] -Statement [24] *((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 -Statement [25] *((const byte*) BORDERCOL#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 -Statement [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ 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 [49] (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:46 [ 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 [50] (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:46 [ 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 [54] 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:46 [ 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 [55] (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:46 [ 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 -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#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 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +Removing always clobbered register reg byte a 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#40 form_field_idx#41 ] +Statement [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [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 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ menu::i#2 menu::i#1 ] +Statement [24] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [25] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) always clobbers reg byte a +Statement [49] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ) always clobbers reg byte a +Statement [50] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ) always clobbers reg byte a +Statement [54] 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 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a +Statement [55] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +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#40 form_field_idx#41 ] 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 ] -Statement [56] *((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:46 [ 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 [64] (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:46 [ 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 [65] *((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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) always clobbers reg byte y -Statement [92] 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:46 [ 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 [93] *((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:46 [ 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 [94] *((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:46 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y -Potential register analysis [95] *(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 ] +Statement [56] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [64] (byte~) form_control::$12 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +Statement [65] *((byte*) form_control::field#0) ← (byte~) form_control::$12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) always clobbers reg byte y +Statement [66] (byte~) form_control::$13 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ) always clobbers reg byte a +Statement [78] (byte~) form_control::$24 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ) always clobbers reg byte a +Statement [81] 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::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [82] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a +Statement [83] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Potential register analysis [84] *(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#30 form_field_idx#40 form_field_idx#41 ] MISSING FRAGMENTS pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx -Statement [95] *((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:46 [ 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 ] +Statement [84] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) 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#30 form_field_idx#40 form_field_idx#41 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] 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 [96] 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:46 [ 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 [97] *((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:46 [ 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 [98] (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:46 [ 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 [99] *((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:46 [ 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 [102] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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:7 [ keyboard_key_pressed::key#4 ] -Statement [103] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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:36 [ keyboard_key_pressed::colidx#0 ] -Statement [108] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 [110] *((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:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 [111] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 -Statement [115] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ form_render_values::idx#2 form_render_values::idx#1 ] -Statement [117] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) always clobbers reg byte a -Statement [123] (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:40 [ 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 ] ) always clobbers reg byte a -Statement [124] (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:40 [ 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 ] ) always clobbers reg byte a -Statement [125] *((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:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:9 [ form_render_values::idx#2 form_render_values::idx#1 ] -Statement [135] (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:38 [ 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 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ form_set_screen::y#2 form_set_screen::y#1 ] -Statement [140] (byte*~) print_char_cursor#63 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ) always clobbers reg byte a -Statement [142] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y -Statement [145] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y -Statement [148] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:55 [ print_str_lines::ch#0 ] -Statement [154] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ) always clobbers reg byte a -Statement [157] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a -Statement [158] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a -Statement [160] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] ) always clobbers reg byte a -Statement [162] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [164] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a -Statement [165] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) always clobbers reg byte a +Statement [85] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [86] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [87] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) always clobbers reg byte a reg byte y +Statement [88] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [90] if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) always clobbers reg byte a +Statement [101] if((byte) keyboard_event_scan::row_scan#0==*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] +Statement [103] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Statement [104] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [106] if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) always clobbers reg byte a +Statement [107] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [109] (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ) always clobbers reg byte a +Statement [110] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte/word/dword~) keyboard_event_scan::$12 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) always clobbers reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:8 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] +Statement [116] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) always clobbers reg byte a +Statement [131] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#15 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#17 keyboard_modifiers#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [137] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#16 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#17 keyboard_modifiers#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [143] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#17 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#17 keyboard_modifiers#5 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#5 ] ) always clobbers reg byte a +Statement [146] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) always clobbers reg byte a reg byte y +Statement [148] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [152] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ keyboard_event_pressed::row_bits#0 ] +Statement [153] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) always clobbers reg byte a +Statement [155] *((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:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) always clobbers reg byte a +Statement [156] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [160] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ form_render_values::idx#2 form_render_values::idx#1 ] +Statement [162] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) always clobbers reg byte a +Statement [168] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) always clobbers reg byte a +Statement [169] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_render_values::field#0 ] ) always clobbers reg byte a +Statement [170] *((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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:13 [ form_render_values::idx#2 form_render_values::idx#1 ] +Statement [180] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ form_set_screen::y#2 form_set_screen::y#1 ] +Statement [185] (byte*~) print_char_cursor#64 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ) always clobbers reg byte a +Statement [187] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y +Statement [190] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y +Statement [193] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:68 [ print_str_lines::ch#0 ] +Statement [199] (byte*~) print_char_cursor#65 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ) always clobbers reg byte a +Statement [202] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a +Statement [203] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a +Statement [205] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) always clobbers reg byte a +Statement [207] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [209] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a +Statement [210] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) always clobbers reg byte a Statement [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [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 ] ) always clobbers reg byte a -Statement [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((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 -Statement [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((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 -Statement [14] *((const byte*) DTV_CONTROL#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 -Statement [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 -Statement [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ 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 -Statement [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 -Statement [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#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 -Statement [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ 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 -Statement [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 ] ) always clobbers reg byte a -Statement [24] *((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 -Statement [25] *((const byte*) BORDERCOL#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 -Statement [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ 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 [49] (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:46 [ 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 [50] (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:46 [ 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 [52] 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:46 [ 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 [54] 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:46 [ 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 [55] (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:46 [ 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 [56] *((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:46 [ 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 [64] (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:46 [ 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 [65] *((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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) always clobbers reg byte y -Statement [71] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) always clobbers reg byte a -Statement [77] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) always clobbers reg byte a -Statement [91] *((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:46 [ 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 [92] 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:46 [ 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 [93] *((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:46 [ 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 [94] *((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:46 [ 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 [95] *((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:46 [ 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 [96] 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:46 [ 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 [97] *((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:46 [ 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 [98] (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:46 [ 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 [99] *((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:46 [ 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 [102] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 -Statement [103] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 -Statement [108] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 [110] *((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:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 [111] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 -Statement [115] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) always clobbers reg byte a -Statement [117] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) always clobbers reg byte a -Statement [123] (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:40 [ 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 ] ) always clobbers reg byte a -Statement [124] (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:40 [ 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 ] ) always clobbers reg byte a -Statement [125] *((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:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y -Statement [135] (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:38 [ 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 ] ) always clobbers reg byte a -Statement [140] (byte*~) print_char_cursor#63 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ) always clobbers reg byte a -Statement [142] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y -Statement [145] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y -Statement [148] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y -Statement [154] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ) always clobbers reg byte a -Statement [157] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a -Statement [158] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a -Statement [160] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] ) always clobbers reg byte a -Statement [162] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [164] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a -Statement [165] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) always clobbers reg byte a +Statement [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [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 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ) always clobbers reg byte a +Statement [24] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [25] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) always clobbers reg byte a +Statement [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) always clobbers reg byte a +Statement [49] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ) always clobbers reg byte a +Statement [50] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ) always clobbers reg byte a +Statement [52] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@31 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) always clobbers reg byte a +Statement [54] 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 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a +Statement [55] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y +Statement [56] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [64] (byte~) form_control::$12 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ) always clobbers reg byte a reg byte y +Statement [65] *((byte*) form_control::field#0) ← (byte~) form_control::$12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) always clobbers reg byte y +Statement [66] (byte~) form_control::$13 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ) always clobbers reg byte a +Statement [69] if((byte) form_field_idx#40!=(const byte) form_fields_cnt#0) goto form_control::@32 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) always clobbers reg byte a +Statement [75] if((byte) form_field_idx#41!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@33 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) always clobbers reg byte a +Statement [78] (byte~) form_control::$24 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ) always clobbers reg byte a +Statement [80] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte x +Statement [81] 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::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [82] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [83] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [84] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte x +Statement [85] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [86] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y +Statement [87] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) always clobbers reg byte a reg byte y +Statement [88] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [90] if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) always clobbers reg byte a +Statement [101] if((byte) keyboard_event_scan::row_scan#0==*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [103] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [104] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [106] if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) always clobbers reg byte a +Statement [107] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [109] (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ) always clobbers reg byte a +Statement [110] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte/word/dword~) keyboard_event_scan::$12 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) always clobbers reg byte y +Statement [116] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) always clobbers reg byte a +Statement [131] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#15 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#17 keyboard_modifiers#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [137] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#16 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#17 keyboard_modifiers#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [143] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#17 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#17 keyboard_modifiers#5 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#5 ] ) always clobbers reg byte a +Statement [146] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) always clobbers reg byte a reg byte y +Statement [148] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [152] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [153] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) always clobbers reg byte a +Statement [155] *((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:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) always clobbers reg byte a +Statement [156] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [160] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a +Statement [162] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) always clobbers reg byte a +Statement [168] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) always clobbers reg byte a +Statement [169] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_render_values::field#0 ] ) always clobbers reg byte a +Statement [170] *((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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y +Statement [180] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a +Statement [185] (byte*~) print_char_cursor#64 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ) always clobbers reg byte a +Statement [187] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y +Statement [190] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y +Statement [193] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y +Statement [199] (byte*~) print_char_cursor#65 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ) always clobbers reg byte a +Statement [202] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a +Statement [203] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a +Statement [205] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) always clobbers reg byte a +Statement [207] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [209] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a +Statement [210] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 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 , -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_BYTE:7 [ keyboard_key_pressed::key#4 ] : zp ZP_BYTE:7 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:8 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:9 [ form_render_values::idx#2 form_render_values::idx#1 ] : zp ZP_BYTE:9 , reg byte x , -Potential registers zp ZP_WORD:10 [ form_set_screen::line#2 form_set_screen::line#1 ] : zp ZP_WORD:10 , -Potential registers zp ZP_BYTE:12 [ form_set_screen::y#2 form_set_screen::y#1 ] : zp ZP_BYTE:12 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:13 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] : zp ZP_WORD:13 , -Potential registers zp ZP_WORD:15 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 ] : zp ZP_WORD:15 , -Potential registers zp ZP_WORD:17 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] : zp ZP_WORD:17 , -Potential registers zp ZP_WORD:19 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] : zp ZP_WORD:19 , -Potential registers zp ZP_WORD:21 [ form_field_ptr::return#3 ] : zp ZP_WORD:21 , -Potential registers zp ZP_WORD:23 [ form_control::field#0 ] : zp ZP_WORD:23 , -Potential registers zp ZP_BYTE:25 [ form_control::$6 ] : zp ZP_BYTE:25 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:26 [ keyboard_key_pressed::return#2 ] : zp ZP_BYTE:26 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:27 [ form_control::key_down#0 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:28 [ form_control::$13 ] : zp ZP_BYTE:28 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:29 [ keyboard_key_pressed::return#4 ] : zp ZP_BYTE:29 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:30 [ form_control::$14 ] : zp ZP_BYTE:30 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:31 [ keyboard_key_pressed::return#3 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:32 [ form_control::key_right#0 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:33 [ keyboard_key_pressed::return#10 ] : zp ZP_BYTE:33 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:34 [ form_control::$28 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] : 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#30 form_field_idx#40 form_field_idx#41 ] : zp ZP_BYTE:4 , +Potential registers zp ZP_BYTE:5 [ menu::i#2 menu::i#1 ] : zp ZP_BYTE:5 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:6 [ keyboard_event_get::return#2 keyboard_event_get::return#0 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] : zp ZP_BYTE:7 , reg byte x , +Potential registers zp ZP_BYTE:8 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] : zp ZP_BYTE:8 , reg byte x , +Potential registers zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] : zp ZP_BYTE:9 , reg byte x , +Potential registers zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] : zp ZP_BYTE:10 , +Potential registers zp ZP_BYTE:11 [ keyboard_event_pressed::keycode#4 ] : zp ZP_BYTE:11 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:12 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] : zp ZP_BYTE:12 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:13 [ form_render_values::idx#2 form_render_values::idx#1 ] : zp ZP_BYTE:13 , reg byte x , +Potential registers zp ZP_WORD:14 [ form_set_screen::line#2 form_set_screen::line#1 ] : zp ZP_WORD:14 , +Potential registers zp ZP_BYTE:16 [ form_set_screen::y#2 form_set_screen::y#1 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:17 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] : zp ZP_WORD:17 , +Potential registers zp ZP_WORD:19 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 ] : zp ZP_WORD:19 , +Potential registers zp ZP_WORD:21 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] : zp ZP_WORD:21 , +Potential registers zp ZP_WORD:23 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] : zp ZP_WORD:23 , +Potential registers zp ZP_WORD:25 [ form_field_ptr::return#3 ] : zp ZP_WORD:25 , +Potential registers zp ZP_WORD:27 [ form_control::field#0 ] : zp ZP_WORD:27 , +Potential registers zp ZP_BYTE:29 [ form_control::$6 ] : zp ZP_BYTE:29 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:30 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:30 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:31 [ form_control::key_event#0 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:32 [ form_control::$12 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:33 [ form_control::$13 ] : zp ZP_BYTE:33 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:34 [ form_control::$24 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:35 [ form_control::$7 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:36 [ keyboard_key_pressed::colidx#0 ] : zp ZP_BYTE:36 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:37 [ keyboard_key_pressed::rowidx#0 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:38 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:39 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:40 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:41 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:42 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:42 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:43 [ form_field_ptr::y#0 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:44 [ form_field_ptr::$2 ] : zp ZP_WORD:44 , -Potential registers zp ZP_BYTE:46 [ form_field_ptr::x#0 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:47 [ form_field_ptr::return#0 ] : zp ZP_WORD:47 , -Potential registers zp ZP_WORD:49 [ form_field_ptr::return#2 ] : zp ZP_WORD:49 , -Potential registers zp ZP_WORD:51 [ form_render_values::field#0 ] : zp ZP_WORD:51 , -Potential registers zp ZP_BYTE:53 [ form_set_screen::$0 ] : zp ZP_BYTE:53 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:54 [ form_set_screen::$1 ] : zp ZP_BYTE:54 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:55 [ print_str_lines::ch#0 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , -Potential registers zp ZP_WORD:56 [ print_cls::$0 ] : zp ZP_WORD:56 , +Potential registers zp ZP_BYTE:36 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:36 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:37 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:38 , reg byte x , +Potential registers zp ZP_BYTE:39 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:40 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:41 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:42 [ keyboard_event_scan::$12 ] : zp ZP_BYTE:42 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:43 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:44 [ keyboard_event_scan::$16 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:45 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:46 [ keyboard_event_scan::$20 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:47 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:47 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:48 [ keyboard_event_scan::$24 ] : zp ZP_BYTE:48 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:49 [ keyboard_event_pressed::return#3 ] : zp ZP_BYTE:49 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:50 [ keyboard_event_scan::$28 ] : zp ZP_BYTE:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:51 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:51 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:52 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:52 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:53 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:53 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:54 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:54 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:55 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:56 [ form_field_ptr::y#0 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:57 [ form_field_ptr::$2 ] : zp ZP_WORD:57 , +Potential registers zp ZP_BYTE:59 [ form_field_ptr::x#0 ] : zp ZP_BYTE:59 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:60 [ form_field_ptr::return#0 ] : zp ZP_WORD:60 , +Potential registers zp ZP_WORD:62 [ form_field_ptr::return#2 ] : zp ZP_WORD:62 , +Potential registers zp ZP_WORD:64 [ form_render_values::field#0 ] : zp ZP_WORD:64 , +Potential registers zp ZP_BYTE:66 [ form_set_screen::$0 ] : zp ZP_BYTE:66 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:67 [ form_set_screen::$1 ] : zp ZP_BYTE:67 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:68 [ print_str_lines::ch#0 ] : zp ZP_BYTE:68 , reg byte a , reg byte x , +Potential registers zp ZP_WORD:69 [ print_cls::$0 ] : zp ZP_WORD:69 , REGISTER UPLIFT SCOPES -Uplift Scope [] 3,703: zp ZP_WORD:15 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 ] 2,659.38: zp ZP_WORD:17 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] 49.97: 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.63: 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.57: 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.88: 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,939.17: zp ZP_WORD:13 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] 667.33: zp ZP_BYTE:55 [ print_str_lines::ch#0 ] -Uplift Scope [form_set_screen] 218.83: zp ZP_BYTE:12 [ form_set_screen::y#2 form_set_screen::y#1 ] 202: zp ZP_BYTE:53 [ form_set_screen::$0 ] 202: zp ZP_BYTE:54 [ form_set_screen::$1 ] 148.13: zp ZP_WORD:10 [ form_set_screen::line#2 form_set_screen::line#1 ] -Uplift Scope [form_field_ptr] 241.67: zp ZP_BYTE:8 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] 202: zp ZP_WORD:49 [ form_field_ptr::return#2 ] 26.25: zp ZP_WORD:47 [ form_field_ptr::return#0 ] 6: zp ZP_BYTE:43 [ form_field_ptr::y#0 ] 4: zp ZP_WORD:21 [ form_field_ptr::return#3 ] 4: zp ZP_BYTE:46 [ form_field_ptr::x#0 ] 1: zp ZP_WORD:44 [ form_field_ptr::$2 ] -Uplift Scope [print_cls] 257.5: zp ZP_WORD:19 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] 202: zp ZP_WORD:56 [ print_cls::$0 ] -Uplift Scope [form_render_values] 218.83: zp ZP_BYTE:9 [ form_render_values::idx#2 form_render_values::idx#1 ] 202: zp ZP_WORD:51 [ form_render_values::field#0 ] -Uplift Scope [menu] 353.5: zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] -Uplift Scope [keyboard_key_pressed] 4: zp ZP_BYTE:26 [ keyboard_key_pressed::return#2 ] 4: zp ZP_BYTE:29 [ keyboard_key_pressed::return#4 ] 4: zp ZP_BYTE:31 [ keyboard_key_pressed::return#3 ] 4: zp ZP_BYTE:33 [ keyboard_key_pressed::return#10 ] 4: zp ZP_BYTE:37 [ keyboard_key_pressed::rowidx#0 ] 4: zp ZP_BYTE:40 [ keyboard_key_pressed::$2 ] 2: zp ZP_BYTE:7 [ keyboard_key_pressed::key#4 ] 1.67: zp ZP_BYTE:41 [ keyboard_key_pressed::return#0 ] 0.67: zp ZP_BYTE:36 [ keyboard_key_pressed::colidx#0 ] -Uplift Scope [form_control] 4: zp ZP_BYTE:25 [ form_control::$6 ] 4: zp ZP_BYTE:28 [ form_control::$13 ] 4: zp ZP_BYTE:30 [ form_control::$14 ] 4: zp ZP_BYTE:34 [ form_control::$28 ] 4: zp ZP_BYTE:35 [ form_control::$7 ] 2.67: zp ZP_BYTE:27 [ form_control::key_down#0 ] 2.67: zp ZP_BYTE:32 [ form_control::key_right#0 ] 0.44: zp ZP_WORD:23 [ form_control::field#0 ] -Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:38 [ keyboard_matrix_read::rowid#0 ] 4: zp ZP_BYTE:39 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:42 [ keyboard_matrix_read::return#0 ] +Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:39 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:40 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:41 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:42 [ keyboard_event_scan::$12 ] 17,858.93: zp ZP_BYTE:8 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] 2,101.74: zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:44 [ keyboard_event_scan::$16 ] 4: zp ZP_BYTE:46 [ keyboard_event_scan::$20 ] 4: zp ZP_BYTE:48 [ keyboard_event_scan::$24 ] 4: zp ZP_BYTE:50 [ keyboard_event_scan::$28 ] +Uplift Scope [] 58,841.83: zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] 3,703: zp ZP_WORD:19 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 ] 2,659.38: zp ZP_WORD:21 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] 49.71: zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] 49.34: zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] 48.3: zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:37 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:36 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:55 [ keyboard_matrix_read::return#0 ] +Uplift Scope [print_str_lines] 1,939.17: zp ZP_WORD:17 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] 667.33: zp ZP_BYTE:68 [ print_str_lines::ch#0 ] +Uplift Scope [form_set_screen] 218.83: zp ZP_BYTE:16 [ form_set_screen::y#2 form_set_screen::y#1 ] 202: zp ZP_BYTE:66 [ form_set_screen::$0 ] 202: zp ZP_BYTE:67 [ form_set_screen::$1 ] 148.13: zp ZP_WORD:14 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplift Scope [form_field_ptr] 241.67: zp ZP_BYTE:12 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] 202: zp ZP_WORD:62 [ form_field_ptr::return#2 ] 26.25: zp ZP_WORD:60 [ form_field_ptr::return#0 ] 6: zp ZP_BYTE:56 [ form_field_ptr::y#0 ] 4: zp ZP_WORD:25 [ form_field_ptr::return#3 ] 4: zp ZP_BYTE:59 [ form_field_ptr::x#0 ] 1: zp ZP_WORD:57 [ form_field_ptr::$2 ] +Uplift Scope [print_cls] 257.5: zp ZP_WORD:23 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] 202: zp ZP_WORD:69 [ print_cls::$0 ] +Uplift Scope [form_render_values] 218.83: zp ZP_BYTE:13 [ form_render_values::idx#2 form_render_values::idx#1 ] 202: zp ZP_WORD:64 [ form_render_values::field#0 ] +Uplift Scope [menu] 353.5: zp ZP_BYTE:5 [ menu::i#2 menu::i#1 ] +Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:43 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:45 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:47 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:49 [ keyboard_event_pressed::return#3 ] 4: zp ZP_BYTE:51 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:53 [ keyboard_event_pressed::$1 ] 2: zp ZP_BYTE:52 [ keyboard_event_pressed::row_bits#0 ] 1.67: zp ZP_BYTE:54 [ keyboard_event_pressed::return#10 ] 1.33: zp ZP_BYTE:11 [ keyboard_event_pressed::keycode#4 ] +Uplift Scope [form_control] 4: zp ZP_BYTE:29 [ form_control::$6 ] 4: zp ZP_BYTE:32 [ form_control::$12 ] 4: zp ZP_BYTE:33 [ form_control::$13 ] 4: zp ZP_BYTE:34 [ form_control::$24 ] 4: zp ZP_BYTE:35 [ form_control::$7 ] 3: zp ZP_BYTE:31 [ form_control::key_event#0 ] 0.59: zp ZP_WORD:27 [ form_control::field#0 ] +Uplift Scope [keyboard_event_get] 5.33: zp ZP_BYTE:6 [ keyboard_event_get::return#2 keyboard_event_get::return#0 ] 4: zp ZP_BYTE:30 [ keyboard_event_get::return#3 ] Uplift Scope [print_ln] Uplift Scope [print_set_screen] Uplift Scope [main] -Uplifting [] best 156326 combination zp ZP_WORD:15 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 ] zp ZP_WORD:17 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] 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 144326 combination zp ZP_WORD:13 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] -Uplifting [form_set_screen] best 141626 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:10 [ form_set_screen::line#2 form_set_screen::line#1 ] -Uplifting [form_field_ptr] best 141305 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:49 [ form_field_ptr::return#2 ] zp ZP_WORD:47 [ form_field_ptr::return#0 ] reg byte y [ form_field_ptr::y#0 ] zp ZP_WORD:21 [ form_field_ptr::return#3 ] reg byte a [ form_field_ptr::x#0 ] zp ZP_WORD:44 [ form_field_ptr::$2 ] -Uplifting [print_cls] best 141305 combination zp ZP_WORD:19 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] zp ZP_WORD:56 [ print_cls::$0 ] -Uplifting [form_render_values] best 139805 combination reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:51 [ form_render_values::field#0 ] -Uplifting [menu] best 138605 combination reg byte x [ menu::i#2 menu::i#1 ] -Uplifting [keyboard_key_pressed] best 138581 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:37 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:40 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:7 [ keyboard_key_pressed::key#4 ] zp ZP_BYTE:41 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:36 [ keyboard_key_pressed::colidx#0 ] -Limited combination testing to 100 combinations of 147456 possible. -Uplifting [form_control] best 138561 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:35 [ form_control::$7 ] zp ZP_BYTE:27 [ form_control::key_down#0 ] zp ZP_BYTE:32 [ form_control::key_right#0 ] zp ZP_WORD:23 [ form_control::field#0 ] -Limited combination testing to 100 combinations of 16384 possible. -Uplifting [keyboard_matrix_read] best 138543 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 138543 combination -Uplifting [print_set_screen] best 138543 combination -Uplifting [main] best 138543 combination +Uplifting [keyboard_event_scan] best 1506949 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$12 ] zp ZP_BYTE:8 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:44 [ keyboard_event_scan::$16 ] zp ZP_BYTE:46 [ keyboard_event_scan::$20 ] zp ZP_BYTE:48 [ keyboard_event_scan::$24 ] zp ZP_BYTE:50 [ keyboard_event_scan::$28 ] +Limited combination testing to 100 combinations of 1048576 possible. +Uplifting [] best 1506949 combination zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:19 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 ] zp ZP_WORD:21 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] 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:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +Uplifting [keyboard_matrix_read] best 1494943 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [print_str_lines] best 1482943 combination zp ZP_WORD:17 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] +Uplifting [form_set_screen] best 1480243 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:14 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplifting [form_field_ptr] best 1479922 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:62 [ form_field_ptr::return#2 ] zp ZP_WORD:60 [ form_field_ptr::return#0 ] reg byte y [ form_field_ptr::y#0 ] zp ZP_WORD:25 [ form_field_ptr::return#3 ] reg byte a [ form_field_ptr::x#0 ] zp ZP_WORD:57 [ form_field_ptr::$2 ] +Uplifting [print_cls] best 1479922 combination zp ZP_WORD:23 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] zp ZP_WORD:69 [ print_cls::$0 ] +Uplifting [form_render_values] best 1478422 combination reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:64 [ form_render_values::field#0 ] +Uplifting [menu] best 1477222 combination reg byte x [ menu::i#2 menu::i#1 ] +Uplifting [keyboard_event_pressed] best 1477198 combination reg byte a [ keyboard_event_pressed::return#0 ] reg byte a [ keyboard_event_pressed::return#1 ] reg byte a [ keyboard_event_pressed::return#2 ] reg byte a [ keyboard_event_pressed::return#3 ] zp ZP_BYTE:51 [ keyboard_event_pressed::$0 ] zp ZP_BYTE:53 [ keyboard_event_pressed::$1 ] zp ZP_BYTE:52 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:54 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:11 [ keyboard_event_pressed::keycode#4 ] +Limited combination testing to 100 combinations of 196608 possible. +Uplifting [form_control] best 1477178 combination reg byte a [ form_control::$6 ] reg byte a [ form_control::$12 ] reg byte a [ form_control::$13 ] reg byte a [ form_control::$24 ] zp ZP_BYTE:35 [ form_control::$7 ] zp ZP_BYTE:31 [ form_control::key_event#0 ] zp ZP_WORD:27 [ form_control::field#0 ] +Limited combination testing to 100 combinations of 4096 possible. +Uplifting [keyboard_event_get] best 1477163 combination reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#0 ] reg byte a [ keyboard_event_get::return#3 ] +Uplifting [print_ln] best 1477163 combination +Uplifting [print_set_screen] best 1477163 combination +Uplifting [main] best 1477163 combination +Attempting to uplift remaining variables inzp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +Uplifting [] best 1477163 combination zp ZP_BYTE:10 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:8 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 1327163 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] +Uplifting [keyboard_event_scan] best 1327163 combination zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 1327163 combination zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 1327163 combination zp ZP_BYTE:38 [ keyboard_event_scan::row_scan#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] +Uplifting [] best 1327163 combination zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] 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 138543 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 138543 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 138543 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 138543 combination zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Uplifting [] best 1327163 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:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] +Uplifting [] best 1327163 combination zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:35 [ form_control::$7 ] -Uplifting [form_control] best 138537 combination reg byte a [ form_control::$7 ] -Attempting to uplift remaining variables inzp ZP_BYTE:37 [ keyboard_key_pressed::rowidx#0 ] -Uplifting [keyboard_key_pressed] best 138533 combination reg byte a [ keyboard_key_pressed::rowidx#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:40 [ keyboard_key_pressed::$2 ] -Uplifting [keyboard_key_pressed] best 138527 combination reg byte a [ keyboard_key_pressed::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:27 [ form_control::key_down#0 ] -Uplifting [form_control] best 138517 combination reg byte a [ form_control::key_down#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:32 [ form_control::key_right#0 ] -Uplifting [form_control] best 138507 combination reg byte a [ form_control::key_right#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:7 [ keyboard_key_pressed::key#4 ] -Uplifting [keyboard_key_pressed] best 138493 combination reg byte x [ keyboard_key_pressed::key#4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:41 [ keyboard_key_pressed::return#0 ] -Uplifting [keyboard_key_pressed] best 138478 combination reg byte a [ keyboard_key_pressed::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:36 [ keyboard_key_pressed::colidx#0 ] -Uplifting [keyboard_key_pressed] best 138474 combination reg byte y [ keyboard_key_pressed::colidx#0 ] -Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ form_field_ptr::return#3 ] ] with [ zp ZP_WORD:23 [ form_control::field#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ form_field_ptr::return#3 form_control::field#0 ] ] with [ zp ZP_WORD:47 [ form_field_ptr::return#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:49 [ form_field_ptr::return#2 ] ] with [ zp ZP_WORD:51 [ form_render_values::field#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ] ] with [ zp ZP_WORD:44 [ form_field_ptr::$2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 ] ] with [ zp ZP_WORD:49 [ form_field_ptr::return#2 form_render_values::field#0 ] ] - score: 1 -Coalescing zero page register [ zp ZP_WORD:10 [ form_set_screen::line#2 form_set_screen::line#1 ] ] with [ zp ZP_WORD:13 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] -Coalescing zero page register [ zp ZP_WORD:10 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] with [ zp ZP_WORD:19 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] ] -Coalescing zero page register [ zp ZP_WORD:10 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] ] with [ zp ZP_WORD:21 [ 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_WORD:15 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 ] ] with [ zp ZP_WORD:56 [ print_cls::$0 ] ] -Allocated (was zp ZP_WORD:10) zp ZP_WORD:6 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 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:15) zp ZP_WORD:8 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 print_cls::$0 ] -Allocated (was zp ZP_WORD:17) zp ZP_WORD:10 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] +Uplifting [form_control] best 1327157 combination reg byte a [ form_control::$7 ] +Attempting to uplift remaining variables inzp ZP_BYTE:44 [ keyboard_event_scan::$16 ] +Uplifting [keyboard_event_scan] best 1327153 combination reg byte a [ keyboard_event_scan::$16 ] +Attempting to uplift remaining variables inzp ZP_BYTE:46 [ keyboard_event_scan::$20 ] +Uplifting [keyboard_event_scan] best 1327149 combination reg byte a [ keyboard_event_scan::$20 ] +Attempting to uplift remaining variables inzp ZP_BYTE:48 [ keyboard_event_scan::$24 ] +Uplifting [keyboard_event_scan] best 1327145 combination reg byte a [ keyboard_event_scan::$24 ] +Attempting to uplift remaining variables inzp ZP_BYTE:50 [ keyboard_event_scan::$28 ] +Uplifting [keyboard_event_scan] best 1327141 combination reg byte a [ keyboard_event_scan::$28 ] +Attempting to uplift remaining variables inzp ZP_BYTE:51 [ keyboard_event_pressed::$0 ] +Uplifting [keyboard_event_pressed] best 1327137 combination reg byte a [ keyboard_event_pressed::$0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:53 [ keyboard_event_pressed::$1 ] +Uplifting [keyboard_event_pressed] best 1327133 combination reg byte a [ keyboard_event_pressed::$1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:31 [ form_control::key_event#0 ] +Uplifting [form_control] best 1327124 combination reg byte a [ form_control::key_event#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:52 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 1327120 combination reg byte y [ keyboard_event_pressed::row_bits#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:54 [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 1327105 combination reg byte a [ keyboard_event_pressed::return#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:11 [ keyboard_event_pressed::keycode#4 ] +Uplifting [keyboard_event_pressed] best 1327105 combination zp ZP_BYTE:11 [ keyboard_event_pressed::keycode#4 ] +Coalescing zero page register with common assignment [ zp ZP_WORD:25 [ form_field_ptr::return#3 ] ] with [ zp ZP_WORD:27 [ form_control::field#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:25 [ form_field_ptr::return#3 form_control::field#0 ] ] with [ zp ZP_WORD:60 [ form_field_ptr::return#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:62 [ form_field_ptr::return#2 ] ] with [ zp ZP_WORD:64 [ form_render_values::field#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:25 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ] ] with [ zp ZP_WORD:57 [ form_field_ptr::$2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:25 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 ] ] with [ zp ZP_WORD:62 [ form_field_ptr::return#2 form_render_values::field#0 ] ] - score: 1 +Coalescing zero page register [ zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 ] ] with [ zp ZP_BYTE:7 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:9 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 ] ] with [ zp ZP_BYTE:11 [ keyboard_event_pressed::keycode#4 ] ] +Coalescing zero page register [ zp ZP_WORD:14 [ form_set_screen::line#2 form_set_screen::line#1 ] ] with [ zp ZP_WORD:17 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] +Coalescing zero page register [ zp ZP_WORD:14 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] with [ zp ZP_WORD:23 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] ] +Coalescing zero page register [ zp ZP_WORD:14 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] ] with [ zp ZP_WORD:25 [ 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_WORD:19 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 ] ] with [ zp ZP_WORD:69 [ print_cls::$0 ] ] +Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:5 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 keyboard_event_pressed::keycode#4 ] +Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:6 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] +Allocated (was zp ZP_WORD:14) zp ZP_WORD:7 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 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:19) zp ZP_WORD:9 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 print_cls::$0 ] +Allocated (was zp ZP_WORD:21) zp ZP_WORD:11 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] +Allocated (was zp ZP_BYTE:38) zp ZP_BYTE:13 [ keyboard_event_scan::row_scan#0 ] ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -8060,26 +9706,34 @@ ASSEMBLER BEFORE OPTIMIZATION .label DTV_GRAPHICS_VIC_BANK = $d03d .const KEY_CRSR_RIGHT = 2 .const KEY_CRSR_DOWN = 7 + .const KEY_LSHIFT = $f .const KEY_RSHIFT = $34 + .const KEY_CTRL = $3a + .const KEY_COMMODORE = $3d + .const KEY_MODIFIER_LSHIFT = 1 + .const KEY_MODIFIER_RSHIFT = 2 + .const KEY_MODIFIER_CTRL = 4 + .const KEY_MODIFIER_COMMODORE = 8 .const form_fields_cnt = $23 .const FORM_CURSOR_BLINK = $28 - .label print_char_cursor = 8 - .label print_line_cursor = $a + .const KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT + .label print_char_cursor = 9 + .label print_line_cursor = $b + .label keyboard_events_size = 6 + .label keyboard_modifiers = 3 .label form_cursor_count = 2 - .label key_down_debounce = 3 .label form_field_idx = 4 - .label key_right_debounce = 5 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -b25_from_bbegin: - jmp b25 -//SEG4 @25 -b25: +//SEG3 [1] phi from @begin to @28 [phi:@begin->@28] +b28_from_bbegin: + jmp b28 +//SEG4 @28 +b28: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @25 to @end [phi:@25->@end] -bend_from_b25: +//SEG6 [3] phi from @28 to @end [phi:@28->@end] +bend_from_b28: jmp bend //SEG7 @end bend: @@ -8092,22 +9746,22 @@ main: { sta DTV_FEATURE //SEG11 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_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] -- vbuz1=vbuc1 + //SEG12 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- 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 + //SEG13 [6] phi (byte) keyboard_modifiers#20 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #0 - sta key_down_debounce + sta keyboard_modifiers + //SEG14 [6] phi (byte) keyboard_events_size#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 + lda #0 + sta keyboard_events_size //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 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count jmp b1 //SEG16 main::@1 b1: - //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- true_then_la1 + //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- true_then_la1 jmp b2_from_b1 jmp breturn //SEG18 main::@return @@ -8119,13 +9773,13 @@ main: { jmp b2 //SEG21 main::@2 b2: - //SEG22 [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + //SEG22 [10] call menu param-assignment [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) jsr menu //SEG23 [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] b1_from_b2: - //SEG24 [6] phi (byte) key_right_debounce#1 = (byte) key_right_debounce#11 [phi:main::@2->main::@1#0] -- register_copy - //SEG25 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#1] -- register_copy - //SEG26 [6] phi (byte) key_down_debounce#1 = (byte) key_down_debounce#11 [phi:main::@2->main::@1#2] -- register_copy + //SEG24 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#0] -- register_copy + //SEG25 [6] phi (byte) keyboard_modifiers#20 = (byte) keyboard_modifiers#10 [phi:main::@2->main::@1#1] -- register_copy + //SEG26 [6] phi (byte) keyboard_events_size#22 = (byte) keyboard_events_size#24 [phi:main::@2->main::@1#2] -- register_copy //SEG27 [6] phi (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#13 [phi:main::@2->main::@1#3] -- register_copy jmp b1 } @@ -8133,31 +9787,31 @@ main: { menu: { .label SCREEN = $8000 .label CHARSET = $9800 - //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 + //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI - //SEG32 [14] *((const byte*) DTV_CONTROL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG32 [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_CONTROL - //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 + //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ 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 + //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #3^CHARSET/$4000 sta CIA2_PORT_A - //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 + //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_DEN|VIC_RSEL|3 sta VIC_CONTROL - //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ 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 + //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] @@ -8171,27 +9825,27 @@ 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_vbuxx=pbuc2_derefidx_vbuxx + //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 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b8 //SEG46 menu::@8 b8: - //SEG47 [24] *((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG47 [24] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta BGCOL - //SEG48 [25] *((const byte*) BORDERCOL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG48 [25] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta BORDERCOL - //SEG49 [26] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - //SEG50 [167] phi from menu::@8 to print_set_screen [phi:menu::@8->print_set_screen] + //SEG49 [26] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + //SEG50 [212] phi from menu::@8 to print_set_screen [phi:menu::@8->print_set_screen] print_set_screen_from_b8: - //SEG51 [167] phi (byte*) print_set_screen::screen#2 = (const byte*) COLS#0 [phi:menu::@8->print_set_screen#0] -- pbuz1=pbuc1 + //SEG51 [212] phi (byte*) print_set_screen::screen#2 = (const byte*) COLS#0 [phi:menu::@8->print_set_screen#0] -- pbuz1=pbuc1 lda #COLS @@ -8202,17 +9856,17 @@ menu: { jmp b15 //SEG53 menu::@15 b15: - //SEG54 [28] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG54 [28] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) jsr print_cls //SEG55 [29] phi from menu::@15 to menu::@16 [phi:menu::@15->menu::@16] b16_from_b15: jmp b16 //SEG56 menu::@16 b16: - //SEG57 [30] call print_str_lines param-assignment [ 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 ] ) - //SEG58 [139] phi from menu::@16 to print_str_lines [phi:menu::@16->print_str_lines] + //SEG57 [30] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG58 [184] phi from menu::@16 to print_str_lines [phi:menu::@16->print_str_lines] print_str_lines_from_b16: - //SEG59 [139] phi (byte*) print_str_lines::str#5 = (const string) MENU_COLS#0 [phi:menu::@16->print_str_lines#0] -- pbuz1=pbuc1 + //SEG59 [184] phi (byte*) print_str_lines::str#5 = (const string) MENU_COLS#0 [phi:menu::@16->print_str_lines#0] -- pbuz1=pbuc1 lda #MENU_COLS @@ -8223,10 +9877,10 @@ menu: { jmp b17 //SEG61 menu::@17 b17: - //SEG62 [32] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - //SEG63 [167] phi from menu::@17 to print_set_screen [phi:menu::@17->print_set_screen] + //SEG62 [32] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + //SEG63 [212] phi from menu::@17 to print_set_screen [phi:menu::@17->print_set_screen] print_set_screen_from_b17: - //SEG64 [167] phi (byte*) print_set_screen::screen#2 = (const byte*) menu::SCREEN#0 [phi:menu::@17->print_set_screen#0] -- pbuz1=pbuc1 + //SEG64 [212] phi (byte*) print_set_screen::screen#2 = (const byte*) menu::SCREEN#0 [phi:menu::@17->print_set_screen#0] -- pbuz1=pbuc1 lda #SCREEN @@ -8237,17 +9891,17 @@ menu: { jmp b18 //SEG66 menu::@18 b18: - //SEG67 [34] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG67 [34] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) jsr print_cls //SEG68 [35] phi from menu::@18 to menu::@19 [phi:menu::@18->menu::@19] b19_from_b18: jmp b19 //SEG69 menu::@19 b19: - //SEG70 [36] call print_str_lines param-assignment [ 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 ] ) - //SEG71 [139] phi from menu::@19 to print_str_lines [phi:menu::@19->print_str_lines] + //SEG70 [36] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG71 [184] phi from menu::@19 to print_str_lines [phi:menu::@19->print_str_lines] print_str_lines_from_b19: - //SEG72 [139] phi (byte*) print_str_lines::str#5 = (const string) MENU_TEXT#0 [phi:menu::@19->print_str_lines#0] -- pbuz1=pbuc1 + //SEG72 [184] phi (byte*) print_str_lines::str#5 = (const string) MENU_TEXT#0 [phi:menu::@19->print_str_lines#0] -- pbuz1=pbuc1 lda #MENU_TEXT @@ -8258,8 +9912,8 @@ menu: { jmp b20 //SEG74 menu::@20 b20: - //SEG75 [38] call form_set_screen param-assignment [ 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 ] ) - //SEG76 [129] phi from menu::@20 to form_set_screen [phi:menu::@20->form_set_screen] + //SEG75 [38] call form_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG76 [174] phi from menu::@20 to form_set_screen [phi:menu::@20->form_set_screen] form_set_screen_from_b20: jsr form_set_screen //SEG77 [39] phi from menu::@20 to menu::@21 [phi:menu::@20->menu::@21] @@ -8267,30 +9921,30 @@ menu: { jmp b21 //SEG78 menu::@21 b21: - //SEG79 [40] call form_render_values param-assignment [ 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 ] ) - //SEG80 [119] phi from menu::@21 to form_render_values [phi:menu::@21->form_render_values] + //SEG79 [40] call form_render_values param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG80 [164] phi from menu::@21 to form_render_values [phi:menu::@21->form_render_values] form_render_values_from_b21: jsr form_render_values //SEG81 [41] phi from menu::@21 menu::@7 to menu::@2 [phi:menu::@21/menu::@7->menu::@2] b2_from_b21: b2_from_b7: - //SEG82 [41] phi (byte) key_right_debounce#11 = (byte) key_right_debounce#1 [phi:menu::@21/menu::@7->menu::@2#0] -- register_copy - //SEG83 [41] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@21/menu::@7->menu::@2#1] -- register_copy - //SEG84 [41] phi (byte) key_down_debounce#11 = (byte) key_down_debounce#1 [phi:menu::@21/menu::@7->menu::@2#2] -- register_copy + //SEG82 [41] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@21/menu::@7->menu::@2#0] -- register_copy + //SEG83 [41] phi (byte) keyboard_modifiers#10 = (byte) keyboard_modifiers#20 [phi:menu::@21/menu::@7->menu::@2#1] -- register_copy + //SEG84 [41] phi (byte) keyboard_events_size#24 = (byte) keyboard_events_size#22 [phi:menu::@21/menu::@7->menu::@2#2] -- register_copy //SEG85 [41] phi (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#1 [phi:menu::@21/menu::@7->menu::@2#3] -- register_copy jmp b2 //SEG86 menu::@2 b2: - //SEG87 [42] if(true) goto menu::@5 [ 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 ] ) -- true_then_la1 + //SEG87 [42] if(true) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) -- true_then_la1 jmp b5 jmp breturn //SEG88 menu::@return breturn: - //SEG89 [43] return [ 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 ] ) + //SEG89 [43] return [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) rts //SEG90 menu::@5 b5: - //SEG91 [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ 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 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG91 [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -8299,42 +9953,42 @@ menu: { jmp b7 //SEG93 menu::@7 b7: - //SEG94 [46] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + //SEG94 [46] call form_control param-assignment [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) jsr form_control jmp b2_from_b7 } //SEG95 form_control form_control: { - .label field = 6 - //SEG96 [47] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuxx=vbuz1 + .label field = 7 + //SEG96 [47] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ) -- vbuxx=vbuz1 ldx form_field_idx - //SEG97 [48] 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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) - //SEG98 [113] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + //SEG97 [48] call form_field_ptr param-assignment [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ) + //SEG98 [158] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] form_field_ptr_from_form_control: - //SEG99 [113] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + //SEG99 [158] 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 - //SEG100 [49] (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:46 [ 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:6 - jmp b32 - //SEG101 form_control::@32 - b32: - //SEG102 [50] (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:46 [ 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:6 - //SEG103 [51] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 + //SEG100 [49] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ) + // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:7 + jmp b28 + //SEG101 form_control::@28 + b28: + //SEG102 [50] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ) + // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:7 + //SEG103 [51] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 dec form_cursor_count - //SEG104 [52] 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:46 [ 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 + //SEG104 [52] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@31 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 lda form_cursor_count cmp #0 - bpl b37_from_b32 - //SEG105 [53] phi from form_control::@32 to form_control::@1 [phi:form_control::@32->form_control::@1] - b1_from_b32: - //SEG106 [53] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@32->form_control::@1#0] -- vbsz1=vbsc1 + bpl b31_from_b28 + //SEG105 [53] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] + b1_from_b28: + //SEG106 [53] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 lda #FORM_CURSOR_BLINK sta form_cursor_count jmp b1 //SEG107 form_control::@1 b1: - //SEG108 [54] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 + //SEG108 [54] 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 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 lda form_cursor_count sec sbc #FORM_CURSOR_BLINK/2 @@ -8342,323 +9996,570 @@ form_control: { eor #$80 !: bpl b2 - jmp b17 - //SEG109 form_control::@17 - b17: - //SEG110 [55] (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:46 [ 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 + jmp b15 + //SEG109 form_control::@15 + b15: + //SEG110 [55] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuaa=_deref_pbuz1_bor_vbuc1 lda #$80 ldy #0 ora (field),y - //SEG111 [56] *((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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + //SEG111 [56] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (field),y - //SEG112 [57] 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: + //SEG112 [57] 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: b3_from_b2: jmp b3 //SEG113 form_control::@3 b3: - //SEG114 [58] 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:46 [ 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 ] ) - //SEG115 [101] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] - keyboard_key_pressed_from_b3: - //SEG116 [101] 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 - //SEG117 [59] (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:46 [ 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 b33 - //SEG118 form_control::@33 - b33: - //SEG119 [60] (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:46 [ 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 - //SEG120 [61] 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:46 [ 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_b33 - jmp b19 - //SEG121 form_control::@19 - b19: - //SEG122 [62] (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:46 [ 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 - //SEG123 [63] 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:46 [ 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_b19 - jmp b20 - //SEG124 form_control::@20 - b20: - //SEG125 [64] (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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG114 [58] call keyboard_event_scan param-assignment [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + //SEG115 [95] phi from form_control::@3 to keyboard_event_scan [phi:form_control::@3->keyboard_event_scan] + keyboard_event_scan_from_b3: + jsr keyboard_event_scan + //SEG116 [59] phi from form_control::@3 to form_control::@29 [phi:form_control::@3->form_control::@29] + b29_from_b3: + jmp b29 + //SEG117 form_control::@29 + b29: + //SEG118 [60] call keyboard_event_get param-assignment [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ) + jsr keyboard_event_get + //SEG119 [61] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ) + // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a + jmp b30 + //SEG120 form_control::@30 + b30: + //SEG121 [62] (byte) form_control::key_event#0 ← (byte) keyboard_event_get::return#3 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) + // (byte) form_control::key_event#0 = (byte) keyboard_event_get::return#3 // register copy reg byte a + //SEG122 [63] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_DOWN#0) goto form_control::@4 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) -- vbuaa_neq_vbuc1_then_la1 + cmp #KEY_CRSR_DOWN + bne b4 + jmp b17 + //SEG123 form_control::@17 + b17: + //SEG124 [64] (byte~) form_control::$12 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y - //SEG126 [65] *((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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- _deref_pbuz1=vbuaa + //SEG125 [65] *((byte*) form_control::field#0) ← (byte~) form_control::$12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (field),y - //SEG127 [66] 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:46 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - //SEG128 [101] phi from form_control::@20 to keyboard_key_pressed [phi:form_control::@20->keyboard_key_pressed] - keyboard_key_pressed_from_b20: - //SEG129 [101] 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 - //SEG130 [67] (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:46 [ 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 b35 - //SEG131 form_control::@35 - b35: - //SEG132 [68] (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:46 [ 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 - //SEG133 [69] 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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuaa_neq_0_then_la1 + //SEG126 [66] (byte~) form_control::$13 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers + //SEG127 [67] if((byte~) form_control::$13!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) -- vbuaa_neq_0_then_la1 cmp #0 - bne b6 - jmp b21 - //SEG134 form_control::@21 - b21: - //SEG135 [70] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1=_inc_vbuz1 + bne b5 + jmp b18 + //SEG128 form_control::@18 + b18: + //SEG129 [68] (byte) form_field_idx#40 ← ++ (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) -- vbuz1=_inc_vbuz1 inc form_field_idx - //SEG136 [71] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG130 [69] if((byte) form_field_idx#40!=(const byte) form_fields_cnt#0) goto form_control::@32 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #form_fields_cnt - bne b38_from_b21 - //SEG137 [72] phi from form_control::@21 to form_control::@8 [phi:form_control::@21->form_control::@8] - b8_from_b21: - //SEG138 [72] 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 + bne b32_from_b18 + //SEG131 [70] phi from form_control::@18 to form_control::@7 [phi:form_control::@18->form_control::@7] + b7_from_b18: + //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@18->form_control::@7#0] -- vbuz1=vbuc1 lda #0 sta form_field_idx - jmp b8 - //SEG139 form_control::@8 - b8: - //SEG140 [73] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] - breturn_from_b8: - //SEG141 [73] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy - //SEG142 [73] phi (byte) form_field_idx#18 = (byte) form_field_idx#32 [phi:form_control::@8->form_control::@return#1] -- register_copy - //SEG143 [73] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy - //SEG144 [73] 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 + jmp b7 + //SEG133 form_control::@7 + b7: + //SEG134 [71] phi from form_control::@7 to form_control::@return [phi:form_control::@7->form_control::@return] + breturn_from_b7: + //SEG135 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@7->form_control::@return#0] -- register_copy + //SEG136 [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::@7->form_control::@return#1] -- vbsz1=vbuc1 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count jmp breturn - //SEG145 [73] 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: - //SEG146 [73] 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 - //SEG147 [73] 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 - //SEG148 [73] 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 - //SEG149 [73] 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 + //SEG137 [71] phi from form_control::@12 form_control::@4 to form_control::@return [phi:form_control::@12/form_control::@4->form_control::@return] + breturn_from_b12: + breturn_from_b4: + //SEG138 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@12/form_control::@4->form_control::@return#0] -- register_copy + //SEG139 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@12/form_control::@4->form_control::@return#1] -- register_copy jmp breturn - //SEG150 form_control::@return + //SEG140 form_control::@return breturn: - //SEG151 [74] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + //SEG141 [72] return [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) rts - //SEG152 [75] phi from form_control::@21 to form_control::@38 [phi:form_control::@21->form_control::@38] - b38_from_b21: - jmp b38 - //SEG153 form_control::@38 - b38: - //SEG154 [72] 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: - //SEG155 [72] 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 - //SEG156 form_control::@6 - b6: - //SEG157 [76] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1=_dec_vbuz1 + //SEG142 [73] phi from form_control::@18 to form_control::@32 [phi:form_control::@18->form_control::@32] + b32_from_b18: + jmp b32 + //SEG143 form_control::@32 + b32: + //SEG144 [70] phi from form_control::@32 form_control::@33 to form_control::@7 [phi:form_control::@32/form_control::@33->form_control::@7] + b7_from_b32: + b7_from_b33: + //SEG145 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#40 [phi:form_control::@32/form_control::@33->form_control::@7#0] -- register_copy + jmp b7 + //SEG146 form_control::@5 + b5: + //SEG147 [74] (byte) form_field_idx#41 ← -- (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) -- vbuz1=_dec_vbuz1 dec form_field_idx - //SEG158 [77] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG148 [75] if((byte) form_field_idx#41!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@33 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #$ff - bne b39_from_b6 - //SEG159 [72] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] - b8_from_b6: - //SEG160 [72] 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 + bne b33_from_b5 + //SEG149 [70] phi from form_control::@5 to form_control::@7 [phi:form_control::@5->form_control::@7] + b7_from_b5: + //SEG150 [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::@5->form_control::@7#0] -- vbuz1=vbuc1 lda #form_fields_cnt-1 sta form_field_idx - jmp b8 - //SEG161 [78] phi from form_control::@6 to form_control::@39 [phi:form_control::@6->form_control::@39] - b39_from_b6: - jmp b39 - //SEG162 form_control::@39 - b39: - jmp b8_from_b39 - //SEG163 [79] 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: - //SEG164 [79] 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 - //SEG165 form_control::@4 + jmp b7 + //SEG151 [76] phi from form_control::@5 to form_control::@33 [phi:form_control::@5->form_control::@33] + b33_from_b5: + jmp b33 + //SEG152 form_control::@33 + b33: + jmp b7_from_b33 + //SEG153 form_control::@4 b4: - //SEG166 [80] 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:46 [ 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 ] ) - //SEG167 [101] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] - keyboard_key_pressed_from_b4: - //SEG168 [101] 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 - //SEG169 [81] (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:46 [ 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 b34 - //SEG170 form_control::@34 - b34: - //SEG171 [82] (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:46 [ 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 - //SEG172 [83] 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:46 [ 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_b34 - jmp b26 - //SEG173 form_control::@26 - b26: - //SEG174 [84] (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:46 [ 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 - //SEG175 [85] 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:46 [ 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 + //SEG154 [77] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_RIGHT#0) goto form_control::@return [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- vbuaa_neq_vbuc1_then_la1 + cmp #KEY_CRSR_RIGHT + bne breturn_from_b4 + jmp b23 + //SEG155 form_control::@23 + b23: + //SEG156 [78] (byte~) form_control::$24 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers + //SEG157 [79] if((byte~) form_control::$24!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- vbuaa_neq_0_then_la1 cmp #0 - beq breturn_from_b26 - //SEG176 [86] phi from form_control::@26 to form_control::@27 [phi:form_control::@26->form_control::@27] - b27_from_b26: - jmp b27 - //SEG177 form_control::@27 - b27: - //SEG178 [87] 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:46 [ 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 ] ) - //SEG179 [101] phi from form_control::@27 to keyboard_key_pressed [phi:form_control::@27->keyboard_key_pressed] - keyboard_key_pressed_from_b27: - //SEG180 [101] 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 - //SEG181 [88] (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:46 [ 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 b36 - //SEG182 form_control::@36 - b36: - //SEG183 [89] (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:46 [ 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 - //SEG184 [90] 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:46 [ 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 b28 - //SEG185 form_control::@28 - b28: - //SEG186 [91] *((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:46 [ 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 + bne b10 + jmp b24 + //SEG158 form_control::@24 + b24: + //SEG159 [80] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 ldx form_field_idx inc form_fields_val,x - //SEG187 [92] 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:46 [ 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 + //SEG160 [81] 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::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- 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 - //SEG188 form_control::@29 - b29: - //SEG189 [93] *((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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + bcc b12 + beq b12 + jmp b25 + //SEG161 form_control::@25 + b25: + //SEG162 [82] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 ldy form_field_idx lda #0 sta form_fields_val,y - jmp b14 - //SEG190 form_control::@14 - b14: - //SEG191 [94] *((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:46 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + jmp b12 + //SEG163 form_control::@12 + b12: + //SEG164 [83] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ) -- _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_b14 - //SEG192 form_control::@12 - b12: - //SEG193 [95] *((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:46 [ 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 + jmp breturn_from_b12 + //SEG165 form_control::@10 + b10: + //SEG166 [84] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 ldx form_field_idx lda form_fields_val,x sec sbc #1 ldx form_field_idx sta form_fields_val,x - //SEG194 [96] 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:46 [ 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 + //SEG167 [85] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 ldy form_field_idx lda form_fields_val,y cmp #$ff - bne b14 - jmp b31 - //SEG195 form_control::@31 - b31: - //SEG196 [97] *((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:46 [ 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 + bne b12 + jmp b27 + //SEG168 form_control::@27 + b27: + //SEG169 [86] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy form_field_idx lda form_fields_max,y sta form_fields_val,y - jmp b14 - //SEG197 form_control::@2 + jmp b12 + //SEG170 form_control::@2 b2: - //SEG198 [98] (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:46 [ 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 + //SEG171 [87] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y - //SEG199 [99] *((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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + //SEG172 [88] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (field),y jmp b3_from_b2 - //SEG200 [100] phi from form_control::@32 to form_control::@37 [phi:form_control::@32->form_control::@37] - b37_from_b32: - jmp b37 - //SEG201 form_control::@37 - b37: - //SEG202 [53] phi from form_control::@37 to form_control::@1 [phi:form_control::@37->form_control::@1] - b1_from_b37: - //SEG203 [53] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@37->form_control::@1#0] -- register_copy + //SEG173 [89] phi from form_control::@28 to form_control::@31 [phi:form_control::@28->form_control::@31] + b31_from_b28: + jmp b31 + //SEG174 form_control::@31 + b31: + //SEG175 [53] phi from form_control::@31 to form_control::@1 [phi:form_control::@31->form_control::@1] + b1_from_b31: + //SEG176 [53] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@31->form_control::@1#0] -- register_copy jmp b1 } -//SEG204 keyboard_key_pressed -keyboard_key_pressed: { - //SEG205 [102] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - tay - //SEG206 [103] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG207 [104] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG208 [105] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG209 [106] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG210 keyboard_key_pressed::@2 - b2: - //SEG211 [107] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG212 [108] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 +//SEG177 keyboard_event_get +keyboard_event_get: { + //SEG178 [90] if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) -- vbuz1_neq_0_then_la1 + lda keyboard_events_size + bne b1 + //SEG179 [91] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + breturn_from_keyboard_event_get: + //SEG180 [91] phi (byte) keyboard_events_size#20 = (byte) keyboard_events_size#17 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG181 [91] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + lda #$ff jmp breturn - //SEG213 keyboard_key_pressed::@return + //SEG182 keyboard_event_get::@return breturn: - //SEG214 [109] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) + //SEG183 [92] return [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + rts + //SEG184 keyboard_event_get::@1 + b1: + //SEG185 [93] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#17 [ keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#4 ] ) -- vbuz1=_dec_vbuz1 + dec keyboard_events_size + //SEG186 [94] (byte) keyboard_event_get::return#0 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) [ keyboard_event_get::return#0 keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#0 keyboard_events_size#4 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 + ldy keyboard_events_size + lda keyboard_events,y + //SEG187 [91] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] + breturn_from_b1: + //SEG188 [91] phi (byte) keyboard_events_size#20 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy + //SEG189 [91] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#0 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy + jmp breturn +} +//SEG190 keyboard_event_scan +keyboard_event_scan: { + .label row_scan = $d + .label keycode = 5 + .label row = 3 + //SEG191 [96] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + b1_from_keyboard_event_scan: + //SEG192 [96] phi (byte) keyboard_events_size#43 = (byte) keyboard_events_size#24 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG193 [96] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + lda #0 + sta keycode + //SEG194 [96] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + lda #0 + sta row + jmp b1 + //SEG195 [96] phi from keyboard_event_scan::@8 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1] + b1_from_b8: + //SEG196 [96] phi (byte) keyboard_events_size#43 = (byte) keyboard_events_size#17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#0] -- register_copy + //SEG197 [96] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#1] -- register_copy + //SEG198 [96] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#2] -- register_copy + jmp b1 + //SEG199 keyboard_event_scan::@1 + b1: + //SEG200 [97] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ) -- vbuxx=vbuz1 + ldx row + //SEG201 [98] call keyboard_matrix_read param-assignment [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) + jsr keyboard_matrix_read + //SEG202 [99] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ) + // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a + jmp b25 + //SEG203 keyboard_event_scan::@25 + b25: + //SEG204 [100] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) -- vbuz1=vbuaa + sta row_scan + //SEG205 [101] if((byte) keyboard_event_scan::row_scan#0==*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) -- vbuz1_eq_pbuc1_derefidx_vbuz2_then_la1 + ldy row + lda keyboard_scan_values,y + cmp row_scan + beq b2 + //SEG206 [102] phi from keyboard_event_scan::@25 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3] + b3_from_b25: + //SEG207 [102] phi (byte) keyboard_events_size#14 = (byte) keyboard_events_size#43 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#0] -- register_copy + //SEG208 [102] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#1] -- register_copy + //SEG209 [102] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#2] -- vbuxx=vbuc1 + ldx #0 + jmp b3 + //SEG210 [102] phi from keyboard_event_scan::@4 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3] + b3_from_b4: + //SEG211 [102] phi (byte) keyboard_events_size#14 = (byte) keyboard_events_size#44 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#0] -- register_copy + //SEG212 [102] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#1] -- register_copy + //SEG213 [102] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#2] -- register_copy + jmp b3 + //SEG214 keyboard_event_scan::@3 + b3: + //SEG215 [103] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + lda row_scan + ldy row + eor keyboard_scan_values,y + //SEG216 [104] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + and keyboard_matrix_col_bitmask,x + //SEG217 [105] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b4_from_b3 + jmp b14 + //SEG218 keyboard_event_scan::@14 + b14: + //SEG219 [106] if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuz1_eq_vbuc1_then_la1 + lda keyboard_events_size + cmp #8 + beq b4_from_b14 + jmp b15 + //SEG220 keyboard_event_scan::@15 + b15: + //SEG221 [107] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + lda keyboard_matrix_col_bitmask,x + and row_scan + //SEG222 [108] if((byte) keyboard_event_scan::event_type#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@6 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b6 + jmp b16 + //SEG223 keyboard_event_scan::@16 + b16: + //SEG224 [109] (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ) -- vbuaa=vbuz1_bor_vbuc1 + lda #$40 + ora keycode + //SEG225 [110] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte/word/dword~) keyboard_event_scan::$12 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- pbuc1_derefidx_vbuz1=vbuaa + ldy keyboard_events_size + sta keyboard_events,y + //SEG226 [111] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ) -- vbuz1=_inc_vbuz1 + inc keyboard_events_size + //SEG227 [112] phi from keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@14/keyboard_event_scan::@16/keyboard_event_scan::@3/keyboard_event_scan::@6->keyboard_event_scan::@4] + b4_from_b14: + b4_from_b16: + b4_from_b3: + b4_from_b6: + //SEG228 [112] phi (byte) keyboard_events_size#44 = (byte) keyboard_events_size#14 [phi:keyboard_event_scan::@14/keyboard_event_scan::@16/keyboard_event_scan::@3/keyboard_event_scan::@6->keyboard_event_scan::@4#0] -- register_copy + jmp b4 + //SEG229 keyboard_event_scan::@4 + b4: + //SEG230 [113] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuz1=_inc_vbuz1 + inc keycode + //SEG231 [114] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG232 [115] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@3 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 + bne b3_from_b4 + jmp b18 + //SEG233 keyboard_event_scan::@18 + b18: + //SEG234 [116] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda row_scan + ldy row + sta keyboard_scan_values,y + //SEG235 [117] phi from keyboard_event_scan::@18 keyboard_event_scan::@2 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8] + b8_from_b18: + b8_from_b2: + //SEG236 [117] phi (byte) keyboard_events_size#17 = (byte) keyboard_events_size#44 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8#0] -- register_copy + //SEG237 [117] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8#1] -- register_copy + jmp b8 + //SEG238 keyboard_event_scan::@8 + b8: + //SEG239 [118] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) -- vbuz1=_inc_vbuz1 + inc row + //SEG240 [119] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda row + cmp #8 + bne b1_from_b8 + //SEG241 [120] phi from keyboard_event_scan::@8 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@8->keyboard_event_scan::@20] + b20_from_b8: + jmp b20 + //SEG242 keyboard_event_scan::@20 + b20: + //SEG243 [121] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] ) + //SEG244 [149] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + keyboard_event_pressed_from_b20: + //SEG245 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_LSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG246 [122] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_event_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#0 ] ) + // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + jmp b26 + //SEG247 keyboard_event_scan::@26 + b26: + //SEG248 [123] (byte~) keyboard_event_scan::$16 ← (byte) keyboard_event_pressed::return#0 [ keyboard_events_size#17 keyboard_event_scan::$16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::$16 ] ) + // (byte~) keyboard_event_scan::$16 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a + //SEG249 [124] if((byte~) keyboard_event_scan::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b9_from_b26 + //SEG250 [125] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + b21_from_b26: + jmp b21 + //SEG251 keyboard_event_scan::@21 + b21: + //SEG252 [126] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + b9_from_b21: + //SEG253 [126] phi (byte) keyboard_modifiers#15 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + lda #0|KEY_MODIFIER_LSHIFT + sta keyboard_modifiers + jmp b9 + //SEG254 [126] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + b9_from_b26: + //SEG255 [126] phi (byte) keyboard_modifiers#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + lda #0 + sta keyboard_modifiers + jmp b9 + //SEG256 keyboard_event_scan::@9 + b9: + //SEG257 [127] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ) + //SEG258 [149] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + keyboard_event_pressed_from_b9: + //SEG259 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_RSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG260 [128] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ) + // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + jmp b27 + //SEG261 keyboard_event_scan::@27 + b27: + //SEG262 [129] (byte~) keyboard_event_scan::$20 ← (byte) keyboard_event_pressed::return#1 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ) + // (byte~) keyboard_event_scan::$20 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a + //SEG263 [130] if((byte~) keyboard_event_scan::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 [ keyboard_events_size#17 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b10_from_b27 + jmp b22 + //SEG264 keyboard_event_scan::@22 + b22: + //SEG265 [131] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#15 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#17 keyboard_modifiers#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#3 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_RSHIFT + ora keyboard_modifiers + sta keyboard_modifiers + //SEG266 [132] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + b10_from_b22: + b10_from_b27: + //SEG267 [132] phi (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + jmp b10 + //SEG268 keyboard_event_scan::@10 + b10: + //SEG269 [133] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ) + //SEG270 [149] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + keyboard_event_pressed_from_b10: + //SEG271 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_CTRL + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG272 [134] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ) + // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + jmp b28 + //SEG273 keyboard_event_scan::@28 + b28: + //SEG274 [135] (byte~) keyboard_event_scan::$24 ← (byte) keyboard_event_pressed::return#2 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ) + // (byte~) keyboard_event_scan::$24 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a + //SEG275 [136] if((byte~) keyboard_event_scan::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 [ keyboard_events_size#17 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b11_from_b28 + jmp b23 + //SEG276 keyboard_event_scan::@23 + b23: + //SEG277 [137] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#16 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#17 keyboard_modifiers#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#4 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_CTRL + ora keyboard_modifiers + sta keyboard_modifiers + //SEG278 [138] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + b11_from_b23: + b11_from_b28: + //SEG279 [138] phi (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + jmp b11 + //SEG280 keyboard_event_scan::@11 + b11: + //SEG281 [139] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ) + //SEG282 [149] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + keyboard_event_pressed_from_b11: + //SEG283 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_COMMODORE + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG284 [140] (byte) keyboard_event_pressed::return#3 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ) + // (byte) keyboard_event_pressed::return#3 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + jmp b29 + //SEG285 keyboard_event_scan::@29 + b29: + //SEG286 [141] (byte~) keyboard_event_scan::$28 ← (byte) keyboard_event_pressed::return#3 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ) + // (byte~) keyboard_event_scan::$28 = (byte) keyboard_event_pressed::return#3 // register copy reg byte a + //SEG287 [142] if((byte~) keyboard_event_scan::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return [ keyboard_events_size#17 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq breturn_from_b29 + jmp b24 + //SEG288 keyboard_event_scan::@24 + b24: + //SEG289 [143] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#17 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#17 keyboard_modifiers#5 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#5 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_COMMODORE + ora keyboard_modifiers + sta keyboard_modifiers + //SEG290 [144] phi from keyboard_event_scan::@24 keyboard_event_scan::@29 to keyboard_event_scan::@return [phi:keyboard_event_scan::@24/keyboard_event_scan::@29->keyboard_event_scan::@return] + breturn_from_b24: + breturn_from_b29: + //SEG291 [144] phi (byte) keyboard_modifiers#18 = (byte) keyboard_modifiers#5 [phi:keyboard_event_scan::@24/keyboard_event_scan::@29->keyboard_event_scan::@return#0] -- register_copy + jmp breturn + //SEG292 keyboard_event_scan::@return + breturn: + //SEG293 [145] return [ keyboard_modifiers#18 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_modifiers#18 keyboard_events_size#17 ] ) + rts + //SEG294 keyboard_event_scan::@6 + b6: + //SEG295 [146] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda keycode + ldy keyboard_events_size + sta keyboard_events,y + //SEG296 [147] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ) -- vbuz1=_inc_vbuz1 + inc keyboard_events_size + jmp b4_from_b6 + //SEG297 keyboard_event_scan::@2 + b2: + //SEG298 [148] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ) -- vbuz1=vbuz1_plus_vbuc1 + lda #8 + clc + adc keycode + sta keycode + jmp b8_from_b2 +} +//SEG299 keyboard_event_pressed +keyboard_event_pressed: { + .label keycode = 5 + //SEG300 [150] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ) -- vbuaa=vbuz1_ror_3 + lda keycode + lsr + lsr + lsr + //SEG301 [151] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ) -- vbuyy=pbuc1_derefidx_vbuaa + tax + ldy keyboard_scan_values,x + //SEG302 [152] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and keycode + //SEG303 [153] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) -- vbuaa=vbuyy_band_pbuc1_derefidx_vbuaa + tax + tya + and keyboard_matrix_col_bitmask,x + jmp breturn + //SEG304 keyboard_event_pressed::@return + breturn: + //SEG305 [154] return [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) rts } -//SEG215 keyboard_matrix_read +//SEG306 keyboard_matrix_read keyboard_matrix_read: { - //SEG216 [110] *((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:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 + //SEG307 [155] *((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:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG217 [111] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 + //SEG308 [156] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG218 keyboard_matrix_read::@return + //SEG309 keyboard_matrix_read::@return breturn: - //SEG219 [112] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) + //SEG310 [157] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) rts } -//SEG220 form_field_ptr +//SEG311 form_field_ptr form_field_ptr: { - .label return = 6 - .label _2 = 6 - //SEG221 [114] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + .label return = 7 + .label _2 = 7 + //SEG312 [159] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG222 [115] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG313 [160] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG223 [116] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG314 [161] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx lda form_fields_x,x - //SEG224 [117] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG315 [162] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz1_plus_vbuaa clc adc return sta return @@ -8666,85 +10567,85 @@ form_field_ptr: { adc return+1 sta return+1 jmp breturn - //SEG225 form_field_ptr::@return + //SEG316 form_field_ptr::@return breturn: - //SEG226 [118] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) + //SEG317 [163] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) rts } -//SEG227 form_render_values +//SEG318 form_render_values form_render_values: { - .label field = 6 - //SEG228 [120] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + .label field = 7 + //SEG319 [165] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] b1_from_form_render_values: - //SEG229 [120] 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 + //SEG320 [165] 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 - //SEG230 [120] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + //SEG321 [165] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] b1_from_b3: - //SEG231 [120] 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 + //SEG322 [165] 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 - //SEG232 form_render_values::@1 + //SEG323 form_render_values::@1 b1: - //SEG233 [121] (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:40 [ 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 ] ) + //SEG324 [166] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG234 [122] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ 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 ] ) - //SEG235 [113] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + //SEG325 [167] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG326 [158] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] form_field_ptr_from_b1: - //SEG236 [113] 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 + //SEG327 [158] 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 - //SEG237 [123] (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:40 [ 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 + //SEG328 [168] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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:7 jmp b3 - //SEG238 form_render_values::@3 + //SEG329 form_render_values::@3 b3: - //SEG239 [124] (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:40 [ 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 - //SEG240 [125] *((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:40 [ 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 + //SEG330 [169] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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:7 + //SEG331 [170] *((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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG241 [126] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuxx=_inc_vbuxx + //SEG332 [171] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG242 [127] 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:40 [ 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 + //SEG333 [172] 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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) -- vbuxx_lt_vbuc1_then_la1 cpx #form_fields_cnt bcc b1_from_b3 jmp breturn - //SEG243 form_render_values::@return + //SEG334 form_render_values::@return breturn: - //SEG244 [128] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG335 [173] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts } -//SEG245 form_set_screen +//SEG336 form_set_screen form_set_screen: { - .label line = 6 - //SEG246 [130] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + .label line = 7 + //SEG337 [175] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] b1_from_form_set_screen: - //SEG247 [130] 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 + //SEG338 [175] 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 - //SEG248 [130] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + //SEG339 [175] 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 - //SEG249 [130] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + //SEG340 [175] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] b1_from_b1: - //SEG250 [130] 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 - //SEG251 [130] 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 + //SEG341 [175] 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 + //SEG342 [175] 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 - //SEG252 form_set_screen::@1 + //SEG343 form_set_screen::@1 b1: - //SEG253 [131] (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:38 [ 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 + //SEG344 [176] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 lda line - //SEG254 [132] *((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:38 [ 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 + //SEG345 [177] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta form_line_lo,x - //SEG255 [133] (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:38 [ 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 + //SEG346 [178] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 lda line+1 - //SEG256 [134] *((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:38 [ 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 + //SEG347 [179] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta form_line_hi,x - //SEG257 [135] (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:38 [ 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 + //SEG348 [180] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -8752,110 +10653,110 @@ form_set_screen: { bcc !+ inc line+1 !: - //SEG258 [136] (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:38 [ 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 + //SEG349 [181] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG259 [137] 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:38 [ 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 + //SEG350 [182] 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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$19 bne b1_from_b1 jmp breturn - //SEG260 form_set_screen::@return + //SEG351 form_set_screen::@return breturn: - //SEG261 [138] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG352 [183] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts } -//SEG262 print_str_lines +//SEG353 print_str_lines print_str_lines: { - .label str = 6 - //SEG263 [140] (byte*~) print_char_cursor#63 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ) -- pbuz1=pbuz2 + .label str = 7 + //SEG354 [185] (byte*~) print_char_cursor#64 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ) -- pbuz1=pbuz2 lda print_set_screen.screen sta print_char_cursor lda print_set_screen.screen+1 sta print_char_cursor+1 - //SEG264 [141] phi from print_str_lines print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1] + //SEG355 [186] phi from print_str_lines print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1] b1_from_print_str_lines: b1_from_b9: - //SEG265 [141] phi (byte*) print_line_cursor#2 = (byte*) print_set_screen::screen#2 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG266 [141] phi (byte*) print_char_cursor#22 = (byte*~) print_char_cursor#63 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG267 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG356 [186] phi (byte*) print_line_cursor#2 = (byte*) print_set_screen::screen#2 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG357 [186] phi (byte*) print_char_cursor#22 = (byte*~) print_char_cursor#64 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG358 [186] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 - //SEG268 print_str_lines::@1 + //SEG359 print_str_lines::@1 b1: - //SEG269 [142] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG360 [187] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4_from_b1 jmp breturn - //SEG270 print_str_lines::@return + //SEG361 print_str_lines::@return breturn: - //SEG271 [143] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG362 [188] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts - //SEG272 [144] 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] + //SEG363 [189] 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: - //SEG273 [144] phi (byte*) print_char_cursor#20 = (byte*) print_char_cursor#22 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG274 [144] phi (byte*) print_str_lines::str#4 = (byte*) print_str_lines::str#3 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG364 [189] phi (byte*) print_char_cursor#20 = (byte*) print_char_cursor#22 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG365 [189] phi (byte*) print_str_lines::str#4 = (byte*) print_str_lines::str#3 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy jmp b4 - //SEG275 print_str_lines::@4 + //SEG366 print_str_lines::@4 b4: - //SEG276 [145] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 + //SEG367 [190] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - //SEG277 [146] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG368 [191] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG278 [147] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 + //SEG369 [192] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 cmp #'@' beq b5_from_b4 jmp b8 - //SEG279 print_str_lines::@8 + //SEG370 print_str_lines::@8 b8: - //SEG280 [148] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa + //SEG371 [193] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - //SEG281 [149] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG372 [194] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 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 !: - //SEG282 [150] 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] + //SEG373 [195] 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: - //SEG283 [150] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG374 [195] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy jmp b5 - //SEG284 print_str_lines::@5 + //SEG375 print_str_lines::@5 b5: - //SEG285 [151] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) -- vbuaa_neq_vbuc1_then_la1 + //SEG376 [196] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) -- vbuaa_neq_vbuc1_then_la1 cmp #'@' bne b4_from_b5 - //SEG286 [152] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG377 [197] 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 - //SEG287 print_str_lines::@9 + //SEG378 print_str_lines::@9 b9: - //SEG288 [153] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) - //SEG289 [155] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG379 [198] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) + //SEG380 [200] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] print_ln_from_b9: jsr print_ln - //SEG290 [154] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ) -- pbuz1=pbuz2 + //SEG381 [199] (byte*~) print_char_cursor#65 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 jmp b1_from_b9 } -//SEG291 print_ln +//SEG382 print_ln print_ln: { - //SEG292 [156] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG383 [201] 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: - //SEG293 [156] phi (byte*) print_line_cursor#21 = (byte*) print_line_cursor#2 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG384 [201] phi (byte*) print_line_cursor#21 = (byte*) print_line_cursor#2 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp b1 - //SEG294 print_ln::@1 + //SEG385 print_ln::@1 b1: - //SEG295 [157] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG386 [202] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -8863,7 +10764,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG296 [158] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG387 [203] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1_from_b1 @@ -8873,37 +10774,37 @@ print_ln: { bcc b1_from_b1 !: jmp breturn - //SEG297 print_ln::@return + //SEG388 print_ln::@return breturn: - //SEG298 [159] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) + //SEG389 [204] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) rts } -//SEG299 print_cls +//SEG390 print_cls print_cls: { - .label _0 = 8 - .label sc = 6 - //SEG300 [160] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] ) -- pbuz1=pbuz2 + .label _0 = 9 + .label sc = 7 + //SEG391 [205] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) -- pbuz1=pbuz2 lda print_set_screen.screen sta sc lda print_set_screen.screen+1 sta sc+1 - //SEG301 [161] phi from print_cls print_cls::@1 to print_cls::@1 [phi:print_cls/print_cls::@1->print_cls::@1] + //SEG392 [206] phi from print_cls print_cls::@1 to print_cls::@1 [phi:print_cls/print_cls::@1->print_cls::@1] b1_from_print_cls: b1_from_b1: - //SEG302 [161] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#0 [phi:print_cls/print_cls::@1->print_cls::@1#0] -- register_copy + //SEG393 [206] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#0 [phi:print_cls/print_cls::@1->print_cls::@1#0] -- register_copy jmp b1 - //SEG303 print_cls::@1 + //SEG394 print_cls::@1 b1: - //SEG304 [162] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG395 [207] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG305 [163] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG396 [208] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG306 [164] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) -- pbuz1=pbuz2_plus_vwuc1 + //SEG397 [209] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) -- pbuz1=pbuz2_plus_vwuc1 lda print_set_screen.screen clc adc #<$3e8 @@ -8911,7 +10812,7 @@ print_cls: { lda print_set_screen.screen+1 adc #>$3e8 sta _0+1 - //SEG307 [165] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1_neq_pbuz2_then_la1 + //SEG398 [210] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1_neq_pbuz2_then_la1 lda sc+1 cmp _0+1 bne b1_from_b1 @@ -8919,24 +10820,26 @@ print_cls: { cmp _0 bne b1_from_b1 jmp breturn - //SEG308 print_cls::@return + //SEG399 print_cls::@return breturn: - //SEG309 [166] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG400 [211] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) rts } -//SEG310 print_set_screen +//SEG401 print_set_screen print_set_screen: { - .label screen = $a + .label screen = $b jmp breturn - //SEG311 print_set_screen::@return + //SEG402 print_set_screen::@return breturn: - //SEG312 [168] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG403 [213] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) rts } DTV_PALETTE_DEFAULT: .byte 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a print_hextab: .text "0123456789abcdef" keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + keyboard_events: .fill 8, 0 + keyboard_scan_values: .fill 8, 0 form_line_lo: .fill $19, 0 form_line_hi: .fill $19, 0 form_fields_x: .byte $16, 7, 7, 7, 7, 7, 7, 7, $11, $11, $11, $10, $11, $10, $11, $10, $11, $1b, $1a, $1b, $1a, $1b, $1a, $1b, $26, $26, $26, $25, $26, $25, $26, $25, $26, $25, $26 @@ -8947,7 +10850,7 @@ print_set_screen: { MENU_TEXT: .text " DTV GfxExplorer MODE 0 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p0 patt p0 screen s0 @"+" mcm 0 start 00 start 00 gfx g0 @"+" ecm 0 step 00 step 00 colors c0 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @"+" chunk 0 overs 0 bgcol3 00 @"+"@" ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b25 +Removing instruction jmp b28 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp breturn @@ -8964,30 +10867,47 @@ Removing instruction jmp b21 Removing instruction jmp b2 Removing instruction jmp breturn Removing instruction jmp b7 -Removing instruction jmp b32 -Removing instruction jmp b1 -Removing instruction jmp b17 -Removing instruction jmp b3 -Removing instruction jmp b33 -Removing instruction jmp b19 -Removing instruction jmp b20 -Removing instruction jmp b35 -Removing instruction jmp b21 -Removing instruction jmp b8 -Removing instruction jmp breturn -Removing instruction jmp b38 -Removing instruction jmp b39 -Removing instruction jmp b4 -Removing instruction jmp b34 -Removing instruction jmp b26 -Removing instruction jmp b27 -Removing instruction jmp b36 Removing instruction jmp b28 +Removing instruction jmp b1 +Removing instruction jmp b15 +Removing instruction jmp b3 Removing instruction jmp b29 -Removing instruction jmp b14 +Removing instruction jmp b30 +Removing instruction jmp b17 +Removing instruction jmp b18 +Removing instruction jmp b7 +Removing instruction jmp breturn +Removing instruction jmp b32 +Removing instruction jmp b33 +Removing instruction jmp b23 +Removing instruction jmp b24 +Removing instruction jmp b25 +Removing instruction jmp b12 +Removing instruction jmp b27 Removing instruction jmp b31 -Removing instruction jmp b37 -Removing instruction jmp b2 +Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp b25 +Removing instruction jmp b3 +Removing instruction jmp b14 +Removing instruction jmp b15 +Removing instruction jmp b16 +Removing instruction jmp b4 +Removing instruction jmp b18 +Removing instruction jmp b8 +Removing instruction jmp b20 +Removing instruction jmp b26 +Removing instruction jmp b21 +Removing instruction jmp b9 +Removing instruction jmp b27 +Removing instruction jmp b22 +Removing instruction jmp b10 +Removing instruction jmp b28 +Removing instruction jmp b23 +Removing instruction jmp b11 +Removing instruction jmp b29 +Removing instruction jmp b24 +Removing instruction jmp breturn Removing instruction jmp breturn Removing instruction jmp breturn Removing instruction jmp breturn @@ -9016,20 +10936,27 @@ Removing instruction ldy #0 Removing instruction ldy #0 Removing instruction ldx form_field_idx Removing instruction ldy #0 +Removing instruction lda #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label b2_from_b1 with b2 Replacing label b1_from_b1 with b1 Replacing label b2_from_b7 with b2 -Replacing label b37_from_b32 with b37 -Replacing label b4_from_b33 with b4 -Replacing label b4_from_b19 with b4 -Replacing label b38_from_b21 with b38 -Replacing label b39_from_b6 with b39 -Replacing label b8_from_b39 with b38 -Replacing label breturn_from_b34 with breturn -Replacing label breturn_from_b26 with breturn -Replacing label breturn_from_b14 with breturn +Replacing label b31_from_b28 with b31 +Replacing label b32_from_b18 with b32 +Replacing label b33_from_b5 with b33 +Replacing label b7_from_b33 with b32 +Replacing label breturn_from_b4 with breturn +Replacing label breturn_from_b12 with breturn Replacing label b3_from_b2 with b3 +Replacing label b4_from_b3 with b4 +Replacing label b4_from_b14 with b4 +Replacing label b3_from_b4 with b3 +Replacing label b1_from_b8 with b1 +Replacing label b10_from_b27 with b10 +Replacing label b11_from_b28 with b11 +Replacing label breturn_from_b29 with breturn +Replacing label b4_from_b6 with b4 +Replacing label b8_from_b2 with b8 Replacing label b1_from_b3 with b1 Replacing label b1_from_b1 with b1 Replacing label b4_from_b1 with b4 @@ -9041,8 +10968,8 @@ Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction bbegin: -Removing instruction b25_from_bbegin: -Removing instruction bend_from_b25: +Removing instruction b28_from_bbegin: +Removing instruction bend_from_b28: Removing instruction b2_from_b1: Removing instruction b1_from_b1: Removing instruction b15_from_b8: @@ -9060,24 +10987,40 @@ Removing instruction form_render_values_from_b21: Removing instruction b2_from_b21: Removing instruction b2_from_b7: Removing instruction b7_from_b5: -Removing instruction b3_from_b17: +Removing instruction b3_from_b15: Removing instruction b3_from_b2: -Removing instruction keyboard_key_pressed_from_b3: -Removing instruction breturn_from_b8: -Removing instruction breturn_from_b14: -Removing instruction breturn_from_b26: -Removing instruction breturn_from_b34: -Removing instruction b38_from_b21: -Removing instruction b8_from_b38: -Removing instruction b8_from_b39: -Removing instruction b39_from_b6: -Removing instruction b4_from_b19: -Removing instruction b4_from_b33: -Removing instruction keyboard_key_pressed_from_b4: -Removing instruction b27_from_b26: -Removing instruction keyboard_key_pressed_from_b27: -Removing instruction b37_from_b32: -Removing instruction b1_from_b37: +Removing instruction keyboard_event_scan_from_b3: +Removing instruction b29_from_b3: +Removing instruction breturn_from_b7: +Removing instruction breturn_from_b12: +Removing instruction breturn_from_b4: +Removing instruction b32_from_b18: +Removing instruction b7_from_b32: +Removing instruction b7_from_b33: +Removing instruction b33_from_b5: +Removing instruction b31_from_b28: +Removing instruction b1_from_b31: +Removing instruction b1_from_b8: +Removing instruction b3_from_b4: +Removing instruction b4_from_b14: +Removing instruction b4_from_b16: +Removing instruction b4_from_b3: +Removing instruction b4_from_b6: +Removing instruction b8_from_b18: +Removing instruction b8_from_b2: +Removing instruction b20_from_b8: +Removing instruction keyboard_event_pressed_from_b20: +Removing instruction b21_from_b26: +Removing instruction b9_from_b21: +Removing instruction keyboard_event_pressed_from_b9: +Removing instruction b10_from_b22: +Removing instruction b10_from_b27: +Removing instruction keyboard_event_pressed_from_b10: +Removing instruction b11_from_b23: +Removing instruction b11_from_b28: +Removing instruction keyboard_event_pressed_from_b11: +Removing instruction breturn_from_b24: +Removing instruction breturn_from_b29: Removing instruction b1_from_b3: Removing instruction b1_from_b1: Removing instruction b1_from_print_str_lines: @@ -9093,7 +11036,7 @@ Removing instruction b1_from_b1: Removing instruction b1_from_print_cls: Removing instruction b1_from_b1: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b25: +Removing instruction b28: Removing instruction bend: Removing instruction b1_from_main: Removing instruction breturn: @@ -9111,25 +11054,37 @@ Removing instruction b21: Removing instruction breturn: Removing instruction b7: Removing instruction form_field_ptr_from_form_control: -Removing instruction b32: -Removing instruction b1_from_b32: -Removing instruction b17: -Removing instruction b33: -Removing instruction b19: -Removing instruction b20: -Removing instruction keyboard_key_pressed_from_b20: -Removing instruction b35: -Removing instruction b21: -Removing instruction b8_from_b21: -Removing instruction b8_from_b6: -Removing instruction b34: -Removing instruction b26: -Removing instruction b27: -Removing instruction b36: Removing instruction b28: +Removing instruction b1_from_b28: +Removing instruction b15: Removing instruction b29: -Removing instruction b31: -Removing instruction b2: +Removing instruction b30: +Removing instruction b17: +Removing instruction b18: +Removing instruction b7_from_b18: +Removing instruction b7_from_b5: +Removing instruction b23: +Removing instruction b24: +Removing instruction b25: +Removing instruction b27: +Removing instruction breturn_from_keyboard_event_get: +Removing instruction breturn_from_b1: +Removing instruction b1_from_keyboard_event_scan: +Removing instruction b25: +Removing instruction b3_from_b25: +Removing instruction b14: +Removing instruction b15: +Removing instruction b16: +Removing instruction b18: +Removing instruction b20: +Removing instruction b26: +Removing instruction b21: +Removing instruction b27: +Removing instruction b22: +Removing instruction b28: +Removing instruction b23: +Removing instruction b29: +Removing instruction b24: Removing instruction breturn: Removing instruction breturn: Removing instruction breturn: @@ -9148,43 +11103,49 @@ Removing instruction breturn: Succesful ASM optimization Pass5UnusedLabelElimination Skipping double jump to b2 in jmp b1 Skipping double jump to b5 in jmp b2 -Skipping double jump to b1 in bpl b37 -Skipping double jump to b8 in bne b38 -Skipping double jump to b38 in bne b39 -Skipping double jump to b8 in jmp b38 +Skipping double jump to b1 in bpl b31 +Skipping double jump to b7 in bne b32 +Skipping double jump to b32 in bne b33 +Skipping double jump to b7 in jmp b32 Succesful ASM optimization Pass5DoubleJumpElimination Removing unreachable instruction rts Removing unreachable instruction rts Succesful ASM optimization Pass5UnreachableCodeElimination +Relabelling long label b9_from_b26 to b5 +Succesful ASM optimization Pass5RelabelLongLabels Removing instruction jmp b2 Removing instruction jmp b1 Removing instruction jmp b5 Removing instruction jmp breturn Removing instruction jmp b1 +Removing instruction jmp b3 +Removing instruction jmp b1 Removing instruction jmp b1 Succesful ASM optimization Pass5NextJumpElimination +Replacing instruction lda #0 with TYA Removing instruction ldy form_field_idx Removing instruction ldy form_field_idx Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction b1: Removing instruction b2: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b39: -Removing instruction b37: +Removing instruction b33: +Removing instruction b31: Succesful ASM optimization Pass5UnusedLabelElimination -Skipping double jump to b8 in bne b38 +Skipping double jump to b7 in bne b32 Succesful ASM optimization Pass5DoubleJumpElimination -Removing unreachable instruction jmp b8 +Removing unreachable instruction jmp b7 Removing unreachable instruction jmp b1 Succesful ASM optimization Pass5UnreachableCodeElimination -Removing instruction b38: +Removing instruction b32: Succesful ASM optimization Pass5UnusedLabelElimination -Removing unreachable instruction jmp b8 +Removing unreachable instruction jmp b7 Succesful ASM optimization Pass5UnreachableCodeElimination -Fixing long branch [129] bpl b2 to bmi +Fixing long branch [137] bpl b2 to bmi +Fixing long branch [246] beq b2 to bne FINAL SYMBOL TABLE -(label) @25 +(label) @28 (label) @begin (label) @end (byte*) BGCOL @@ -9221,10 +11182,26 @@ FINAL SYMBOL TABLE (const byte[16]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } (signed byte) FORM_CURSOR_BLINK (const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (byte/signed byte/word/signed word/dword/signed dword) 40 +(byte) KEY_COMMODORE +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 61 (byte) KEY_CRSR_DOWN (const byte) KEY_CRSR_DOWN#0 KEY_CRSR_DOWN = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_CRSR_RIGHT (const byte) KEY_CRSR_RIGHT#0 KEY_CRSR_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 2 +(byte) KEY_CTRL +(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 58 +(byte) KEY_LSHIFT +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 15 +(byte) KEY_MODIFIER_COMMODORE +(const byte) KEY_MODIFIER_COMMODORE#0 KEY_MODIFIER_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 8 +(byte) KEY_MODIFIER_CTRL +(const byte) KEY_MODIFIER_CTRL#0 KEY_MODIFIER_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 4 +(byte) KEY_MODIFIER_LSHIFT +(const byte) KEY_MODIFIER_LSHIFT#0 KEY_MODIFIER_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 1 +(byte) KEY_MODIFIER_RSHIFT +(const byte) KEY_MODIFIER_RSHIFT#0 KEY_MODIFIER_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 2 +(byte) KEY_MODIFIER_SHIFT +(const byte) KEY_MODIFIER_SHIFT#0 KEY_MODIFIER_SHIFT = (const byte) KEY_MODIFIER_LSHIFT#0|(const byte) KEY_MODIFIER_RSHIFT#0 (byte) KEY_RSHIFT (const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 52 (byte[]) MENU_COLS @@ -9246,58 +11223,52 @@ FINAL SYMBOL TABLE (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (void()) form_control() +(byte~) form_control::$12 reg byte a 4.0 (byte~) form_control::$13 reg byte a 4.0 -(byte~) form_control::$14 reg byte a 4.0 -(byte~) form_control::$28 reg byte a 4.0 +(byte~) form_control::$24 reg byte a 4.0 (byte/word/dword~) form_control::$6 reg byte a 4.0 (byte~) form_control::$7 reg byte a 4.0 (label) form_control::@1 +(label) form_control::@10 (label) form_control::@12 -(label) form_control::@14 +(label) form_control::@15 (label) form_control::@17 -(label) form_control::@19 +(label) form_control::@18 (label) form_control::@2 -(label) form_control::@20 -(label) form_control::@21 -(label) form_control::@26 +(label) form_control::@23 +(label) form_control::@24 +(label) form_control::@25 (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::@37 -(label) form_control::@38 -(label) form_control::@39 (label) form_control::@4 -(label) form_control::@6 -(label) form_control::@8 +(label) form_control::@5 +(label) form_control::@7 (label) form_control::@return (byte*) form_control::field -(byte*) form_control::field#0 field zp ZP_WORD:6 0.44444444444444453 -(byte) form_control::key_down -(byte) form_control::key_down#0 reg byte a 2.6666666666666665 -(byte) form_control::key_right -(byte) form_control::key_right#0 reg byte a 2.6666666666666665 +(byte*) form_control::field#0 field zp ZP_WORD:7 0.5925925925925926 +(byte) form_control::key_event +(byte) form_control::key_event#0 reg byte a 3.0 (signed byte) form_cursor_count (signed byte) form_cursor_count#1 form_cursor_count zp ZP_BYTE:2 0.3939393939393939 (signed byte) form_cursor_count#13 form_cursor_count zp ZP_BYTE:2 11.6 -(signed byte) form_cursor_count#15 form_cursor_count zp ZP_BYTE:2 0.3125 -(signed byte) form_cursor_count#16 form_cursor_count zp ZP_BYTE:2 35.66666666666666 +(signed byte) form_cursor_count#15 form_cursor_count zp ZP_BYTE:2 0.34782608695652173 +(signed byte) form_cursor_count#16 form_cursor_count zp ZP_BYTE:2 34.99999999999999 (signed byte) form_cursor_count#5 form_cursor_count zp ZP_BYTE:2 2.0 (byte) form_field_idx (byte) form_field_idx#1 form_field_idx zp ZP_BYTE:4 0.3939393939393939 -(byte) form_field_idx#14 form_field_idx zp ZP_BYTE:4 2.901960784313723 -(byte) form_field_idx#18 form_field_idx zp ZP_BYTE:4 36.33333333333332 -(byte) form_field_idx#32 form_field_idx zp ZP_BYTE:4 6.0 +(byte) form_field_idx#14 form_field_idx zp ZP_BYTE:4 3.6499999999999972 +(byte) form_field_idx#18 form_field_idx zp ZP_BYTE:4 35.66666666666666 +(byte) form_field_idx#30 form_field_idx zp ZP_BYTE:4 6.0 +(byte) form_field_idx#40 form_field_idx zp ZP_BYTE:4 2.0 (byte) form_field_idx#41 form_field_idx zp ZP_BYTE:4 2.0 -(byte) form_field_idx#42 form_field_idx zp ZP_BYTE:4 2.0 (byte*()) form_field_ptr((byte) form_field_ptr::field_idx) -(word~) form_field_ptr::$2 $2 zp ZP_WORD:6 1.0 +(word~) form_field_ptr::$2 $2 zp ZP_WORD:7 1.0 (label) form_field_ptr::@return (byte*) form_field_ptr::field (byte) form_field_ptr::field_idx @@ -9306,9 +11277,9 @@ FINAL SYMBOL TABLE (byte) form_field_ptr::field_idx#2 reg byte x 35.66666666666666 (byte*) form_field_ptr::line (byte*) form_field_ptr::return -(byte*) form_field_ptr::return#0 return zp ZP_WORD:6 26.25 -(byte*) form_field_ptr::return#2 return zp ZP_WORD:6 202.0 -(byte*) form_field_ptr::return#3 return zp ZP_WORD:6 4.0 +(byte*) form_field_ptr::return#0 return zp ZP_WORD:7 26.25 +(byte*) form_field_ptr::return#2 return zp ZP_WORD:7 202.0 +(byte*) form_field_ptr::return#3 return zp ZP_WORD:7 4.0 (byte) form_field_ptr::x (byte) form_field_ptr::x#0 reg byte a 4.0 (byte) form_field_ptr::y @@ -9332,7 +11303,7 @@ FINAL SYMBOL TABLE (label) form_render_values::@3 (label) form_render_values::@return (byte*) form_render_values::field -(byte*) form_render_values::field#0 field zp ZP_WORD:6 202.0 +(byte*) form_render_values::field#0 field zp ZP_WORD:7 202.0 (byte) form_render_values::idx (byte) form_render_values::idx#1 reg byte x 151.5 (byte) form_render_values::idx#2 reg byte x 67.33333333333333 @@ -9342,51 +11313,118 @@ FINAL SYMBOL TABLE (label) form_set_screen::@1 (label) form_set_screen::@return (byte*) form_set_screen::line -(byte*) form_set_screen::line#1 line zp ZP_WORD:6 67.33333333333333 -(byte*) form_set_screen::line#2 line zp ZP_WORD:6 80.8 +(byte*) form_set_screen::line#1 line zp ZP_WORD:7 67.33333333333333 +(byte*) form_set_screen::line#2 line zp ZP_WORD:7 80.8 (byte*) form_set_screen::screen (byte) form_set_screen::y (byte) form_set_screen::y#1 reg byte x 151.5 (byte) form_set_screen::y#2 reg byte x 67.33333333333333 -(byte) key_down_debounce -(byte) key_down_debounce#1 key_down_debounce zp ZP_BYTE:3 0.3939393939393939 -(byte) key_down_debounce#11 key_down_debounce zp ZP_BYTE:3 4.916666666666666 -(byte) key_down_debounce#13 key_down_debounce zp ZP_BYTE:3 36.33333333333332 -(byte) key_down_debounce#20 key_down_debounce zp ZP_BYTE:3 0.5263157894736842 -(byte) key_down_debounce#23 key_down_debounce zp ZP_BYTE:3 0.4 -(byte) key_right_debounce -(byte) key_right_debounce#1 key_right_debounce zp ZP_BYTE:5 0.3939393939393939 -(byte) key_right_debounce#11 key_right_debounce zp ZP_BYTE:5 2.727272727272727 -(byte) key_right_debounce#13 key_right_debounce zp ZP_BYTE:5 36.33333333333332 -(byte) key_right_debounce#21 key_right_debounce zp ZP_BYTE:5 0.42857142857142855 -(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) -(byte~) keyboard_key_pressed::$2 reg byte a 4.0 -(label) keyboard_key_pressed::@2 -(label) keyboard_key_pressed::@return -(byte) keyboard_key_pressed::colidx -(byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666 -(byte) keyboard_key_pressed::key -(byte) keyboard_key_pressed::key#4 reg byte x 2.0 -(byte) keyboard_key_pressed::return -(byte) keyboard_key_pressed::return#0 reg byte a 1.6666666666666665 -(byte) keyboard_key_pressed::return#10 reg byte a 4.0 -(byte) keyboard_key_pressed::return#2 reg byte a 4.0 -(byte) keyboard_key_pressed::return#3 reg byte a 4.0 -(byte) keyboard_key_pressed::return#4 reg byte a 4.0 -(byte) keyboard_key_pressed::rowidx -(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte()) keyboard_event_get() +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte) keyboard_event_get::return#0 reg byte a 4.0 +(byte) keyboard_event_get::return#2 reg byte a 1.3333333333333333 +(byte) keyboard_event_get::return#3 reg byte a 4.0 +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 reg byte a 4.0 +(byte~) keyboard_event_pressed::$1 reg byte a 4.0 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::keycode#4 keycode zp ZP_BYTE:5 1.3333333333333333 +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::return#0 reg byte a 4.0 +(byte) keyboard_event_pressed::return#1 reg byte a 4.0 +(byte) keyboard_event_pressed::return#10 reg byte a 1.6666666666666665 +(byte) keyboard_event_pressed::return#2 reg byte a 4.0 +(byte) keyboard_event_pressed::return#3 reg byte a 4.0 +(byte) keyboard_event_pressed::row_bits +(byte) keyboard_event_pressed::row_bits#0 reg byte y 2.0 +(void()) keyboard_event_scan() +(byte/word/dword~) keyboard_event_scan::$12 reg byte a 20002.0 +(byte~) keyboard_event_scan::$16 reg byte a 4.0 +(byte~) keyboard_event_scan::$20 reg byte a 4.0 +(byte~) keyboard_event_scan::$24 reg byte a 4.0 +(byte~) keyboard_event_scan::$28 reg byte a 4.0 +(byte~) keyboard_event_scan::$3 reg byte a 20002.0 +(byte~) keyboard_event_scan::$4 reg byte a 20002.0 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@14 +(label) keyboard_event_scan::@15 +(label) keyboard_event_scan::@16 +(label) keyboard_event_scan::@18 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@20 +(label) keyboard_event_scan::@21 +(label) keyboard_event_scan::@22 +(label) keyboard_event_scan::@23 +(label) keyboard_event_scan::@24 +(label) keyboard_event_scan::@25 +(label) keyboard_event_scan::@26 +(label) keyboard_event_scan::@27 +(label) keyboard_event_scan::@28 +(label) keyboard_event_scan::@29 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::col#1 reg byte x 15001.5 +(byte) keyboard_event_scan::col#2 reg byte x 2857.4285714285716 +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::event_type#0 reg byte a 20002.0 +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:5 2002.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:5 3154.230769230769 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:5 500.5 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:5 1001.0 +(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:5 5250.75 +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:3 1501.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:3 600.24 +(byte) keyboard_event_scan::row_scan +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:13 1278.0555555555554 +(byte[8]) keyboard_events +(const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } +(byte) keyboard_events_size +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:6 20002.0 +(byte) keyboard_events_size#14 keyboard_events_size zp ZP_BYTE:6 8100.9000000000015 +(byte) keyboard_events_size#17 keyboard_events_size zp ZP_BYTE:6 94.03125 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:6 20002.0 +(byte) keyboard_events_size#20 keyboard_events_size zp ZP_BYTE:6 3.5000000000000004 +(byte) keyboard_events_size#22 keyboard_events_size zp ZP_BYTE:6 0.3939393939393939 +(byte) keyboard_events_size#24 keyboard_events_size zp ZP_BYTE:6 5.523809523809524 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:6 3.0 +(byte) keyboard_events_size#43 keyboard_events_size zp ZP_BYTE:6 429.2857142857143 +(byte) keyboard_events_size#44 keyboard_events_size zp ZP_BYTE:6 10201.2 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return -(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333 -(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::return#0 reg byte a 334.33333333333337 +(byte) keyboard_matrix_read::return#2 reg byte a 2002.0 (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid -(byte) keyboard_matrix_read::rowid#0 reg byte x 4.0 +(byte) keyboard_matrix_read::rowid#0 reg byte x 1003.0 (byte[8]) keyboard_matrix_row_bitmask (const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(byte) keyboard_modifiers +(byte) keyboard_modifiers#10 keyboard_modifiers zp ZP_BYTE:3 28.5 +(byte) keyboard_modifiers#15 keyboard_modifiers zp ZP_BYTE:3 0.8 +(byte) keyboard_modifiers#16 keyboard_modifiers zp ZP_BYTE:3 1.6 +(byte) keyboard_modifiers#17 keyboard_modifiers zp ZP_BYTE:3 1.6 +(byte) keyboard_modifiers#18 keyboard_modifiers zp ZP_BYTE:3 3.40625 +(byte) keyboard_modifiers#20 keyboard_modifiers zp ZP_BYTE:3 0.3939393939393939 +(byte) keyboard_modifiers#3 keyboard_modifiers zp ZP_BYTE:3 4.0 +(byte) keyboard_modifiers#4 keyboard_modifiers zp ZP_BYTE:3 4.0 +(byte) keyboard_modifiers#5 keyboard_modifiers zp ZP_BYTE:3 4.0 +(byte[8]) keyboard_scan_values +(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } (void()) main() (label) main::@1 (label) main::@2 @@ -9413,26 +11451,26 @@ FINAL SYMBOL TABLE (byte) menu::i#1 reg byte x 151.5 (byte) menu::i#2 reg byte x 202.0 (byte*) print_char_cursor -(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:8 2002.0 -(byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:8 821.0 -(byte*) print_char_cursor#22 print_char_cursor zp ZP_WORD:8 102.0 -(byte*) print_char_cursor#38 print_char_cursor zp ZP_WORD:8 572.0 -(byte*~) print_char_cursor#63 print_char_cursor zp ZP_WORD:8 4.0 -(byte*~) print_char_cursor#64 print_char_cursor zp ZP_WORD:8 202.0 +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:9 2002.0 +(byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:9 821.0 +(byte*) print_char_cursor#22 print_char_cursor zp ZP_WORD:9 102.0 +(byte*) print_char_cursor#38 print_char_cursor zp ZP_WORD:9 572.0 +(byte*~) print_char_cursor#64 print_char_cursor zp ZP_WORD:9 4.0 +(byte*~) print_char_cursor#65 print_char_cursor zp ZP_WORD:9 202.0 (void()) print_cls() -(byte*~) print_cls::$0 $0 zp ZP_WORD:8 202.0 +(byte*~) print_cls::$0 $0 zp ZP_WORD:9 202.0 (label) print_cls::@1 (label) print_cls::@return (byte*) print_cls::sc -(byte*) print_cls::sc#0 sc zp ZP_WORD:6 4.0 -(byte*) print_cls::sc#1 sc zp ZP_WORD:6 101.0 -(byte*) print_cls::sc#2 sc zp ZP_WORD:6 152.5 +(byte*) print_cls::sc#0 sc zp ZP_WORD:7 4.0 +(byte*) print_cls::sc#1 sc zp ZP_WORD:7 101.0 +(byte*) print_cls::sc#2 sc zp ZP_WORD:7 152.5 (byte[]) print_hextab (const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(byte*) print_line_cursor#2 print_line_cursor zp ZP_WORD:10 8.749999999999998 -(byte*) print_line_cursor#21 print_line_cursor zp ZP_WORD:10 2004.0 -(byte*) print_line_cursor#22 print_line_cursor zp ZP_WORD:10 641.0 +(byte*) print_line_cursor#2 print_line_cursor zp ZP_WORD:11 8.749999999999998 +(byte*) print_line_cursor#21 print_line_cursor zp ZP_WORD:11 2004.0 +(byte*) print_line_cursor#22 print_line_cursor zp ZP_WORD:11 641.0 (void()) print_ln() (label) print_ln::@1 (label) print_ln::@return @@ -9440,7 +11478,7 @@ FINAL SYMBOL TABLE (void()) print_set_screen((byte*) print_set_screen::screen) (label) print_set_screen::@return (byte*) print_set_screen::screen -(byte*) print_set_screen::screen#2 screen zp ZP_WORD:10 5.631578947368421 +(byte*) print_set_screen::screen#2 screen zp ZP_WORD:11 5.631578947368421 (void()) print_str_lines((byte*) print_str_lines::str) (label) print_str_lines::@1 (label) print_str_lines::@4 @@ -9451,40 +11489,51 @@ FINAL SYMBOL TABLE (byte) print_str_lines::ch (byte) print_str_lines::ch#0 reg byte a 667.3333333333334 (byte*) print_str_lines::str -(byte*) print_str_lines::str#0 str zp ZP_WORD:6 233.66666666666669 -(byte*) print_str_lines::str#3 str zp ZP_WORD:6 152.5 -(byte*) print_str_lines::str#4 str zp ZP_WORD:6 1552.0 -(byte*) print_str_lines::str#5 str zp ZP_WORD:6 1.0 +(byte*) print_str_lines::str#0 str zp ZP_WORD:7 233.66666666666669 +(byte*) print_str_lines::str#3 str zp ZP_WORD:7 152.5 +(byte*) print_str_lines::str#4 str zp ZP_WORD:7 1552.0 +(byte*) print_str_lines::str#5 str zp ZP_WORD:7 1.0 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:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] -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:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] reg byte x [ menu::i#2 menu::i#1 ] -reg byte x [ keyboard_key_pressed::key#4 ] +reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#0 ] +reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +zp ZP_BYTE:5 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 keyboard_event_pressed::keycode#4 ] +zp ZP_BYTE:6 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] -zp ZP_WORD:6 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 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 ] +zp ZP_WORD:7 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 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 ] reg byte x [ form_set_screen::y#2 form_set_screen::y#1 ] -zp ZP_WORD:8 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 print_cls::$0 ] -zp ZP_WORD:10 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] +zp ZP_WORD:9 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 print_cls::$0 ] +zp ZP_WORD:11 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] reg byte a [ form_control::$6 ] -reg byte a [ keyboard_key_pressed::return#2 ] -reg byte a [ form_control::key_down#0 ] +reg byte a [ keyboard_event_get::return#3 ] +reg byte a [ form_control::key_event#0 ] +reg byte a [ form_control::$12 ] reg byte a [ form_control::$13 ] -reg byte a [ keyboard_key_pressed::return#4 ] -reg byte a [ form_control::$14 ] -reg byte a [ keyboard_key_pressed::return#3 ] -reg byte a [ form_control::key_right#0 ] -reg byte a [ keyboard_key_pressed::return#10 ] -reg byte a [ form_control::$28 ] +reg byte a [ form_control::$24 ] reg byte a [ form_control::$7 ] -reg byte y [ keyboard_key_pressed::colidx#0 ] -reg byte a [ keyboard_key_pressed::rowidx#0 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] -reg byte a [ keyboard_key_pressed::$2 ] -reg byte a [ keyboard_key_pressed::return#0 ] +zp ZP_BYTE:13 [ keyboard_event_scan::row_scan#0 ] +reg byte a [ keyboard_event_scan::$3 ] +reg byte a [ keyboard_event_scan::$4 ] +reg byte a [ keyboard_event_scan::event_type#0 ] +reg byte a [ keyboard_event_scan::$12 ] +reg byte a [ keyboard_event_pressed::return#0 ] +reg byte a [ keyboard_event_scan::$16 ] +reg byte a [ keyboard_event_pressed::return#1 ] +reg byte a [ keyboard_event_scan::$20 ] +reg byte a [ keyboard_event_pressed::return#2 ] +reg byte a [ keyboard_event_scan::$24 ] +reg byte a [ keyboard_event_pressed::return#3 ] +reg byte a [ keyboard_event_scan::$28 ] +reg byte a [ keyboard_event_pressed::$0 ] +reg byte y [ keyboard_event_pressed::row_bits#0 ] +reg byte a [ keyboard_event_pressed::$1 ] +reg byte a [ keyboard_event_pressed::return#10 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte y [ form_field_ptr::y#0 ] reg byte a [ form_field_ptr::x#0 ] @@ -9494,7 +11543,7 @@ reg byte a [ print_str_lines::ch#0 ] FINAL ASSEMBLER -Score: 114985 +Score: 1082592 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -9525,21 +11574,29 @@ Score: 114985 .label DTV_GRAPHICS_VIC_BANK = $d03d .const KEY_CRSR_RIGHT = 2 .const KEY_CRSR_DOWN = 7 + .const KEY_LSHIFT = $f .const KEY_RSHIFT = $34 + .const KEY_CTRL = $3a + .const KEY_COMMODORE = $3d + .const KEY_MODIFIER_LSHIFT = 1 + .const KEY_MODIFIER_RSHIFT = 2 + .const KEY_MODIFIER_CTRL = 4 + .const KEY_MODIFIER_COMMODORE = 8 .const form_fields_cnt = $23 .const FORM_CURSOR_BLINK = $28 - .label print_char_cursor = 8 - .label print_line_cursor = $a + .const KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT + .label print_char_cursor = 9 + .label print_line_cursor = $b + .label keyboard_events_size = 6 + .label keyboard_modifiers = 3 .label form_cursor_count = 2 - .label key_down_debounce = 3 .label form_field_idx = 4 - .label key_right_debounce = 5 //SEG2 @begin -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -//SEG4 @25 +//SEG3 [1] phi from @begin to @28 [phi:@begin->@28] +//SEG4 @28 //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @25 to @end [phi:@25->@end] +//SEG6 [3] phi from @28 to @end [phi:@28->@end] //SEG7 @end //SEG8 main main: { @@ -9549,29 +11606,29 @@ main: { lda #DTV_FEATURE_ENABLE sta DTV_FEATURE //SEG11 [6] phi from main to main::@1 [phi:main->main::@1] - //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 + //SEG12 [6] phi (byte) form_field_idx#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] -- 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 + //SEG13 [6] phi (byte) keyboard_modifiers#20 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 + sta keyboard_modifiers + //SEG14 [6] phi (byte) keyboard_events_size#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 + sta keyboard_events_size //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 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count //SEG16 main::@1 - //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- true_then_la1 + //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- true_then_la1 //SEG18 main::@return //SEG19 [8] return [ ] ( main:2 [ ] ) //SEG20 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] //SEG21 main::@2 b2: - //SEG22 [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + //SEG22 [10] call menu param-assignment [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) jsr menu //SEG23 [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] - //SEG24 [6] phi (byte) key_right_debounce#1 = (byte) key_right_debounce#11 [phi:main::@2->main::@1#0] -- register_copy - //SEG25 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#1] -- register_copy - //SEG26 [6] phi (byte) key_down_debounce#1 = (byte) key_down_debounce#11 [phi:main::@2->main::@1#2] -- register_copy + //SEG24 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#0] -- register_copy + //SEG25 [6] phi (byte) keyboard_modifiers#20 = (byte) keyboard_modifiers#10 [phi:main::@2->main::@1#1] -- register_copy + //SEG26 [6] phi (byte) keyboard_events_size#22 = (byte) keyboard_events_size#24 [phi:main::@2->main::@1#2] -- register_copy //SEG27 [6] phi (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#13 [phi:main::@2->main::@1#3] -- register_copy jmp b2 } @@ -9579,30 +11636,30 @@ main: { menu: { .label SCREEN = $8000 .label CHARSET = $9800 - //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 + //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI - //SEG32 [14] *((const byte*) DTV_CONTROL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG32 [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 sta DTV_CONTROL - //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 + //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ 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 + //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #3^CHARSET/$4000 sta CIA2_PORT_A - //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ 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 + //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_DEN|VIC_RSEL|3 sta VIC_CONTROL - //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ 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 + //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((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 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] @@ -9612,23 +11669,23 @@ menu: { //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_vbuxx=pbuc2_derefidx_vbuxx + //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 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 menu::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG46 menu::@8 - //SEG47 [24] *((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 ] ) -- _deref_pbuc1=vbuc2 + //SEG47 [24] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta BGCOL - //SEG48 [25] *((const byte*) BORDERCOL#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 ] ) -- _deref_pbuc1=vbuc2 + //SEG48 [25] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) -- _deref_pbuc1=vbuc2 sta BORDERCOL - //SEG49 [26] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - //SEG50 [167] phi from menu::@8 to print_set_screen [phi:menu::@8->print_set_screen] - //SEG51 [167] phi (byte*) print_set_screen::screen#2 = (const byte*) COLS#0 [phi:menu::@8->print_set_screen#0] -- pbuz1=pbuc1 + //SEG49 [26] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + //SEG50 [212] phi from menu::@8 to print_set_screen [phi:menu::@8->print_set_screen] + //SEG51 [212] phi (byte*) print_set_screen::screen#2 = (const byte*) COLS#0 [phi:menu::@8->print_set_screen#0] -- pbuz1=pbuc1 lda #COLS @@ -9636,13 +11693,13 @@ menu: { jsr print_set_screen //SEG52 [27] phi from menu::@8 to menu::@15 [phi:menu::@8->menu::@15] //SEG53 menu::@15 - //SEG54 [28] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG54 [28] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) jsr print_cls //SEG55 [29] phi from menu::@15 to menu::@16 [phi:menu::@15->menu::@16] //SEG56 menu::@16 - //SEG57 [30] call print_str_lines param-assignment [ 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 ] ) - //SEG58 [139] phi from menu::@16 to print_str_lines [phi:menu::@16->print_str_lines] - //SEG59 [139] phi (byte*) print_str_lines::str#5 = (const string) MENU_COLS#0 [phi:menu::@16->print_str_lines#0] -- pbuz1=pbuc1 + //SEG57 [30] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG58 [184] phi from menu::@16 to print_str_lines [phi:menu::@16->print_str_lines] + //SEG59 [184] phi (byte*) print_str_lines::str#5 = (const string) MENU_COLS#0 [phi:menu::@16->print_str_lines#0] -- pbuz1=pbuc1 lda #MENU_COLS @@ -9650,9 +11707,9 @@ menu: { jsr print_str_lines //SEG60 [31] phi from menu::@16 to menu::@17 [phi:menu::@16->menu::@17] //SEG61 menu::@17 - //SEG62 [32] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) - //SEG63 [167] phi from menu::@17 to print_set_screen [phi:menu::@17->print_set_screen] - //SEG64 [167] phi (byte*) print_set_screen::screen#2 = (const byte*) menu::SCREEN#0 [phi:menu::@17->print_set_screen#0] -- pbuz1=pbuc1 + //SEG62 [32] call print_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) + //SEG63 [212] phi from menu::@17 to print_set_screen [phi:menu::@17->print_set_screen] + //SEG64 [212] phi (byte*) print_set_screen::screen#2 = (const byte*) menu::SCREEN#0 [phi:menu::@17->print_set_screen#0] -- pbuz1=pbuc1 lda #SCREEN @@ -9660,13 +11717,13 @@ menu: { jsr print_set_screen //SEG65 [33] phi from menu::@17 to menu::@18 [phi:menu::@17->menu::@18] //SEG66 menu::@18 - //SEG67 [34] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG67 [34] call print_cls param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) jsr print_cls //SEG68 [35] phi from menu::@18 to menu::@19 [phi:menu::@18->menu::@19] //SEG69 menu::@19 - //SEG70 [36] call print_str_lines param-assignment [ 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 ] ) - //SEG71 [139] phi from menu::@19 to print_str_lines [phi:menu::@19->print_str_lines] - //SEG72 [139] phi (byte*) print_str_lines::str#5 = (const string) MENU_TEXT#0 [phi:menu::@19->print_str_lines#0] -- pbuz1=pbuc1 + //SEG70 [36] call print_str_lines param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG71 [184] phi from menu::@19 to print_str_lines [phi:menu::@19->print_str_lines] + //SEG72 [184] phi (byte*) print_str_lines::str#5 = (const string) MENU_TEXT#0 [phi:menu::@19->print_str_lines#0] -- pbuz1=pbuc1 lda #MENU_TEXT @@ -9674,62 +11731,62 @@ menu: { jsr print_str_lines //SEG73 [37] phi from menu::@19 to menu::@20 [phi:menu::@19->menu::@20] //SEG74 menu::@20 - //SEG75 [38] call form_set_screen param-assignment [ 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 ] ) - //SEG76 [129] phi from menu::@20 to form_set_screen [phi:menu::@20->form_set_screen] + //SEG75 [38] call form_set_screen param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG76 [174] phi from menu::@20 to form_set_screen [phi:menu::@20->form_set_screen] jsr form_set_screen //SEG77 [39] phi from menu::@20 to menu::@21 [phi:menu::@20->menu::@21] //SEG78 menu::@21 - //SEG79 [40] call form_render_values param-assignment [ 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 ] ) - //SEG80 [119] phi from menu::@21 to form_render_values [phi:menu::@21->form_render_values] + //SEG79 [40] call form_render_values param-assignment [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ( main:2::menu:10 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) + //SEG80 [164] phi from menu::@21 to form_render_values [phi:menu::@21->form_render_values] jsr form_render_values //SEG81 [41] phi from menu::@21 menu::@7 to menu::@2 [phi:menu::@21/menu::@7->menu::@2] - //SEG82 [41] phi (byte) key_right_debounce#11 = (byte) key_right_debounce#1 [phi:menu::@21/menu::@7->menu::@2#0] -- register_copy - //SEG83 [41] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@21/menu::@7->menu::@2#1] -- register_copy - //SEG84 [41] phi (byte) key_down_debounce#11 = (byte) key_down_debounce#1 [phi:menu::@21/menu::@7->menu::@2#2] -- register_copy + //SEG82 [41] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@21/menu::@7->menu::@2#0] -- register_copy + //SEG83 [41] phi (byte) keyboard_modifiers#10 = (byte) keyboard_modifiers#20 [phi:menu::@21/menu::@7->menu::@2#1] -- register_copy + //SEG84 [41] phi (byte) keyboard_events_size#24 = (byte) keyboard_events_size#22 [phi:menu::@21/menu::@7->menu::@2#2] -- register_copy //SEG85 [41] phi (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#1 [phi:menu::@21/menu::@7->menu::@2#3] -- register_copy //SEG86 menu::@2 - //SEG87 [42] if(true) goto menu::@5 [ 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 ] ) -- true_then_la1 + //SEG87 [42] if(true) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) -- true_then_la1 //SEG88 menu::@return - //SEG89 [43] return [ 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 ] ) + //SEG89 [43] return [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 keyboard_modifiers#10 form_field_idx#14 ] ) //SEG90 menu::@5 b5: - //SEG91 [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ 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 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG91 [44] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@5 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ( main:2::menu:10 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 //SEG92 [45] phi from menu::@5 to menu::@7 [phi:menu::@5->menu::@7] //SEG93 menu::@7 - //SEG94 [46] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + //SEG94 [46] call form_control param-assignment [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) jsr form_control jmp b5 } //SEG95 form_control form_control: { - .label field = 6 - //SEG96 [47] (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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuxx=vbuz1 + .label field = 7 + //SEG96 [47] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#1 ] ) -- vbuxx=vbuz1 ldx form_field_idx - //SEG97 [48] 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:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) - //SEG98 [113] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] - //SEG99 [113] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + //SEG97 [48] call form_field_ptr param-assignment [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] ) + //SEG98 [158] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + //SEG99 [158] 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 - //SEG100 [49] (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:46 [ 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:6 - //SEG101 form_control::@32 - //SEG102 [50] (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:46 [ 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:6 - //SEG103 [51] (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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 + //SEG100 [49] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#3 ] ) + // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:7 + //SEG101 form_control::@28 + //SEG102 [50] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_control::field#0 ] ) + // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:7 + //SEG103 [51] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 dec form_cursor_count - //SEG104 [52] 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:46 [ 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 + //SEG104 [52] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@31 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 lda form_cursor_count cmp #0 bpl b1 - //SEG105 [53] phi from form_control::@32 to form_control::@1 [phi:form_control::@32->form_control::@1] - //SEG106 [53] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@32->form_control::@1#0] -- vbsz1=vbsc1 + //SEG105 [53] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] + //SEG106 [53] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 lda #FORM_CURSOR_BLINK sta form_cursor_count //SEG107 form_control::@1 b1: - //SEG108 [54] 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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 + //SEG108 [54] 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 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 lda form_cursor_count sec sbc #FORM_CURSOR_BLINK/2 @@ -9739,158 +11796,117 @@ form_control: { bmi !b2+ jmp b2 !b2: - //SEG109 form_control::@17 - //SEG110 [55] (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:46 [ 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 + //SEG109 form_control::@15 + //SEG110 [55] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuaa=_deref_pbuz1_bor_vbuc1 lda #$80 ldy #0 ora (field),y - //SEG111 [56] *((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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + //SEG111 [56] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa sta (field),y - //SEG112 [57] phi from form_control::@17 form_control::@2 to form_control::@3 [phi:form_control::@17/form_control::@2->form_control::@3] + //SEG112 [57] phi from form_control::@15 form_control::@2 to form_control::@3 [phi:form_control::@15/form_control::@2->form_control::@3] //SEG113 form_control::@3 b3: - //SEG114 [58] 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:46 [ 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 ] ) - //SEG115 [101] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] - //SEG116 [101] 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 - //SEG117 [59] (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:46 [ 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 - //SEG118 form_control::@33 - //SEG119 [60] (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:46 [ 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 - //SEG120 [61] 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:46 [ 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 - //SEG121 form_control::@19 - //SEG122 [62] (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:46 [ 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 - //SEG123 [63] 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:46 [ 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 - //SEG124 form_control::@20 - //SEG125 [64] (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:46 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG114 [58] call keyboard_event_scan param-assignment [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) + //SEG115 [95] phi from form_control::@3 to keyboard_event_scan [phi:form_control::@3->keyboard_event_scan] + jsr keyboard_event_scan + //SEG116 [59] phi from form_control::@3 to form_control::@29 [phi:form_control::@3->form_control::@29] + //SEG117 form_control::@29 + //SEG118 [60] call keyboard_event_get param-assignment [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#2 ] ) + jsr keyboard_event_get + //SEG119 [61] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#3 ] ) + // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a + //SEG120 form_control::@30 + //SEG121 [62] (byte) form_control::key_event#0 ← (byte) keyboard_event_get::return#3 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) + // (byte) form_control::key_event#0 = (byte) keyboard_event_get::return#3 // register copy reg byte a + //SEG122 [63] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_DOWN#0) goto form_control::@4 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::key_event#0 ] ) -- vbuaa_neq_vbuc1_then_la1 + cmp #KEY_CRSR_DOWN + bne b4 + //SEG123 form_control::@17 + //SEG124 [64] (byte~) form_control::$12 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_control::$12 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y - //SEG126 [65] *((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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- _deref_pbuz1=vbuaa + //SEG125 [65] *((byte*) form_control::field#0) ← (byte~) form_control::$12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) -- _deref_pbuz1=vbuaa sta (field),y - //SEG127 [66] 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:46 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) - //SEG128 [101] phi from form_control::@20 to keyboard_key_pressed [phi:form_control::@20->keyboard_key_pressed] - //SEG129 [101] 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 - //SEG130 [67] (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:46 [ 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 - //SEG131 form_control::@35 - //SEG132 [68] (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:46 [ 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 - //SEG133 [69] 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:46 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuaa_neq_0_then_la1 + //SEG126 [66] (byte~) form_control::$13 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::$13 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers + //SEG127 [67] if((byte~) form_control::$13!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 ] ) -- vbuaa_neq_0_then_la1 cmp #0 - bne b6 - //SEG134 form_control::@21 - //SEG135 [70] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1=_inc_vbuz1 + bne b5 + //SEG128 form_control::@18 + //SEG129 [68] (byte) form_field_idx#40 ← ++ (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) -- vbuz1=_inc_vbuz1 inc form_field_idx - //SEG136 [71] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG130 [69] if((byte) form_field_idx#40!=(const byte) form_fields_cnt#0) goto form_control::@32 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#40 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #form_fields_cnt - bne b8 - //SEG137 [72] phi from form_control::@21 to form_control::@8 [phi:form_control::@21->form_control::@8] - //SEG138 [72] 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 + bne b7 + //SEG131 [70] phi from form_control::@18 to form_control::@7 [phi:form_control::@18->form_control::@7] + //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@18->form_control::@7#0] -- vbuz1=vbuc1 + tya sta form_field_idx - //SEG139 form_control::@8 - b8: - //SEG140 [73] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] - //SEG141 [73] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy - //SEG142 [73] phi (byte) form_field_idx#18 = (byte) form_field_idx#32 [phi:form_control::@8->form_control::@return#1] -- register_copy - //SEG143 [73] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy - //SEG144 [73] 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 + //SEG133 form_control::@7 + b7: + //SEG134 [71] phi from form_control::@7 to form_control::@return [phi:form_control::@7->form_control::@return] + //SEG135 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@7->form_control::@return#0] -- register_copy + //SEG136 [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::@7->form_control::@return#1] -- vbsz1=vbuc1 lda #FORM_CURSOR_BLINK/2 sta form_cursor_count - //SEG145 [73] 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] - //SEG146 [73] 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 - //SEG147 [73] 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 - //SEG148 [73] 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 - //SEG149 [73] 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 - //SEG150 form_control::@return + //SEG137 [71] phi from form_control::@12 form_control::@4 to form_control::@return [phi:form_control::@12/form_control::@4->form_control::@return] + //SEG138 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@12/form_control::@4->form_control::@return#0] -- register_copy + //SEG139 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@12/form_control::@4->form_control::@return#1] -- register_copy + //SEG140 form_control::@return breturn: - //SEG151 [74] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + //SEG141 [72] return [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ( main:2::menu:10::form_control:46 [ form_cursor_count#16 keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#18 ] ) rts - //SEG152 [75] phi from form_control::@21 to form_control::@38 [phi:form_control::@21->form_control::@38] - //SEG153 form_control::@38 - //SEG154 [72] phi from form_control::@38 form_control::@39 to form_control::@8 [phi:form_control::@38/form_control::@39->form_control::@8] - //SEG155 [72] phi (byte) form_field_idx#32 = (byte) form_field_idx#41 [phi:form_control::@38/form_control::@39->form_control::@8#0] -- register_copy - //SEG156 form_control::@6 - b6: - //SEG157 [76] (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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1=_dec_vbuz1 + //SEG142 [73] phi from form_control::@18 to form_control::@32 [phi:form_control::@18->form_control::@32] + //SEG143 form_control::@32 + //SEG144 [70] phi from form_control::@32 form_control::@33 to form_control::@7 [phi:form_control::@32/form_control::@33->form_control::@7] + //SEG145 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#40 [phi:form_control::@32/form_control::@33->form_control::@7#0] -- register_copy + //SEG146 form_control::@5 + b5: + //SEG147 [74] (byte) form_field_idx#41 ← -- (byte) form_field_idx#14 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) -- vbuz1=_dec_vbuz1 dec form_field_idx - //SEG158 [77] 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:46 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#42 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG148 [75] if((byte) form_field_idx#41!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@33 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#20 keyboard_modifiers#18 form_field_idx#41 ] ) -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #$ff - bne b8 - //SEG159 [72] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] - //SEG160 [72] 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 + bne b7 + //SEG149 [70] phi from form_control::@5 to form_control::@7 [phi:form_control::@5->form_control::@7] + //SEG150 [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::@5->form_control::@7#0] -- vbuz1=vbuc1 lda #form_fields_cnt-1 sta form_field_idx - jmp b8 - //SEG161 [78] phi from form_control::@6 to form_control::@39 [phi:form_control::@6->form_control::@39] - //SEG162 form_control::@39 - //SEG163 [79] phi from form_control::@19 form_control::@33 to form_control::@4 [phi:form_control::@19/form_control::@33->form_control::@4] - //SEG164 [79] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@19/form_control::@33->form_control::@4#0] -- register_copy - //SEG165 form_control::@4 + jmp b7 + //SEG151 [76] phi from form_control::@5 to form_control::@33 [phi:form_control::@5->form_control::@33] + //SEG152 form_control::@33 + //SEG153 form_control::@4 b4: - //SEG166 [80] 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:46 [ 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 ] ) - //SEG167 [101] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] - //SEG168 [101] 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 - //SEG169 [81] (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:46 [ 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 - //SEG170 form_control::@34 - //SEG171 [82] (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:46 [ 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 - //SEG172 [83] 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:46 [ 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 - //SEG173 form_control::@26 - //SEG174 [84] (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:46 [ 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 - //SEG175 [85] 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:46 [ 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 + //SEG154 [77] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_RIGHT#0) goto form_control::@return [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- vbuaa_neq_vbuc1_then_la1 + cmp #KEY_CRSR_RIGHT + bne breturn + //SEG155 form_control::@23 + //SEG156 [78] (byte~) form_control::$24 ← (byte) keyboard_modifiers#18 & (const byte) KEY_MODIFIER_SHIFT#0 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 form_control::$24 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #KEY_MODIFIER_SHIFT + and keyboard_modifiers + //SEG157 [79] if((byte~) form_control::$24!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- vbuaa_neq_0_then_la1 cmp #0 - beq breturn - //SEG176 [86] phi from form_control::@26 to form_control::@27 [phi:form_control::@26->form_control::@27] - //SEG177 form_control::@27 - //SEG178 [87] 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:46 [ 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 ] ) - //SEG179 [101] phi from form_control::@27 to keyboard_key_pressed [phi:form_control::@27->keyboard_key_pressed] - //SEG180 [101] 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 - //SEG181 [88] (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:46 [ 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 - //SEG182 form_control::@36 - //SEG183 [89] (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:46 [ 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 - //SEG184 [90] 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:46 [ 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 - //SEG185 form_control::@28 - //SEG186 [91] *((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:46 [ 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 + bne b10 + //SEG158 form_control::@24 + //SEG159 [80] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 ldx form_field_idx inc form_fields_val,x - //SEG187 [92] 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:46 [ 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 + //SEG160 [81] 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::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- 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 - //SEG188 form_control::@29 - //SEG189 [93] *((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:46 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + bcc b12 + beq b12 + //SEG161 form_control::@25 + //SEG162 [82] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 lda #0 sta form_fields_val,y - //SEG190 form_control::@14 - b14: - //SEG191 [94] *((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:46 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + //SEG163 form_control::@12 + b12: + //SEG164 [83] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_cursor_count#15 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 ldy form_field_idx lda form_fields_val,y tay @@ -9898,161 +11914,403 @@ form_control: { ldy #0 sta (field),y jmp breturn - //SEG192 form_control::@12 - b12: - //SEG193 [95] *((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:46 [ 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 + //SEG165 form_control::@10 + b10: + //SEG166 [84] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 ldx form_field_idx lda form_fields_val,x sec sbc #1 sta form_fields_val,x - //SEG194 [96] 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:46 [ 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 + //SEG167 [85] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 ldy form_field_idx lda form_fields_val,y cmp #$ff - bne b14 - //SEG195 form_control::@31 - //SEG196 [97] *((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:46 [ 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 + bne b12 + //SEG168 form_control::@27 + //SEG169 [86] *((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 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ form_field_idx#14 keyboard_events_size#20 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 lda form_fields_max,y sta form_fields_val,y - jmp b14 - //SEG197 form_control::@2 + jmp b12 + //SEG170 form_control::@2 b2: - //SEG198 [98] (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:46 [ 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 + //SEG171 [87] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y - //SEG199 [99] *((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:46 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + //SEG172 [88] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:46 [ keyboard_events_size#24 form_field_idx#14 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa sta (field),y jmp b3 - //SEG200 [100] phi from form_control::@32 to form_control::@37 [phi:form_control::@32->form_control::@37] - //SEG201 form_control::@37 - //SEG202 [53] phi from form_control::@37 to form_control::@1 [phi:form_control::@37->form_control::@1] - //SEG203 [53] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@37->form_control::@1#0] -- register_copy + //SEG173 [89] phi from form_control::@28 to form_control::@31 [phi:form_control::@28->form_control::@31] + //SEG174 form_control::@31 + //SEG175 [53] phi from form_control::@31 to form_control::@1 [phi:form_control::@31->form_control::@1] + //SEG176 [53] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@31->form_control::@1#0] -- register_copy } -//SEG204 keyboard_key_pressed -keyboard_key_pressed: { - //SEG205 [102] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - tay - //SEG206 [103] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG207 [104] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG208 [105] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) +//SEG177 keyboard_event_get +keyboard_event_get: { + //SEG178 [90] if((byte) keyboard_events_size#17!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) -- vbuz1_neq_0_then_la1 + lda keyboard_events_size + bne b1 + //SEG179 [91] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG180 [91] phi (byte) keyboard_events_size#20 = (byte) keyboard_events_size#17 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG181 [91] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + lda #$ff + //SEG182 keyboard_event_get::@return + breturn: + //SEG183 [92] return [ keyboard_events_size#20 keyboard_event_get::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#20 keyboard_event_get::return#2 ] ) + rts + //SEG184 keyboard_event_get::@1 + b1: + //SEG185 [93] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#17 [ keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_events_size#4 ] ) -- vbuz1=_dec_vbuz1 + dec keyboard_events_size + //SEG186 [94] (byte) keyboard_event_get::return#0 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) [ keyboard_event_get::return#0 keyboard_events_size#4 ] ( main:2::menu:10::form_control:46::keyboard_event_get:60 [ form_field_idx#14 keyboard_modifiers#18 form_control::field#0 form_cursor_count#15 keyboard_event_get::return#0 keyboard_events_size#4 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 + ldy keyboard_events_size + lda keyboard_events,y + //SEG187 [91] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] + //SEG188 [91] phi (byte) keyboard_events_size#20 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy + //SEG189 [91] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#0 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy + jmp breturn +} +//SEG190 keyboard_event_scan +keyboard_event_scan: { + .label row_scan = $d + .label keycode = 5 + .label row = 3 + //SEG191 [96] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG192 [96] phi (byte) keyboard_events_size#43 = (byte) keyboard_events_size#24 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG193 [96] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + lda #0 + sta keycode + //SEG194 [96] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + sta row + //SEG195 [96] phi from keyboard_event_scan::@8 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1] + //SEG196 [96] phi (byte) keyboard_events_size#43 = (byte) keyboard_events_size#17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#0] -- register_copy + //SEG197 [96] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#1] -- register_copy + //SEG198 [96] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@1#2] -- register_copy + //SEG199 keyboard_event_scan::@1 + b1: + //SEG200 [97] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::rowid#0 ] ) -- vbuxx=vbuz1 + ldx row + //SEG201 [98] call keyboard_matrix_read param-assignment [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) jsr keyboard_matrix_read - //SEG209 [106] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) + //SEG202 [99] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#2 ] ) // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a - //SEG210 keyboard_key_pressed::@2 - //SEG211 [107] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ 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:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG212 [108] (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:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 - //SEG213 keyboard_key_pressed::@return - //SEG214 [109] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58 [ 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:46::keyboard_key_pressed:66 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80 [ 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:46::keyboard_key_pressed:87 [ 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 ] ) + //SEG203 keyboard_event_scan::@25 + //SEG204 [100] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) -- vbuz1=vbuaa + sta row_scan + //SEG205 [101] if((byte) keyboard_event_scan::row_scan#0==*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_event_scan::row_scan#0 ] ) -- vbuz1_eq_pbuc1_derefidx_vbuz2_then_la1 + ldy row + lda keyboard_scan_values,y + cmp row_scan + bne !b2+ + jmp b2 + !b2: + //SEG206 [102] phi from keyboard_event_scan::@25 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3] + //SEG207 [102] phi (byte) keyboard_events_size#14 = (byte) keyboard_events_size#43 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#0] -- register_copy + //SEG208 [102] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#1] -- register_copy + //SEG209 [102] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@3#2] -- vbuxx=vbuc1 + ldx #0 + //SEG210 [102] phi from keyboard_event_scan::@4 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3] + //SEG211 [102] phi (byte) keyboard_events_size#14 = (byte) keyboard_events_size#44 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#0] -- register_copy + //SEG212 [102] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#1] -- register_copy + //SEG213 [102] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@4->keyboard_event_scan::@3#2] -- register_copy + //SEG214 keyboard_event_scan::@3 + b3: + //SEG215 [103] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$3 ] ) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + lda row_scan + ldy row + eor keyboard_scan_values,y + //SEG216 [104] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$4 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + and keyboard_matrix_col_bitmask,x + //SEG217 [105] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b4 + //SEG218 keyboard_event_scan::@14 + //SEG219 [106] if((byte) keyboard_events_size#14==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuz1_eq_vbuc1_then_la1 + lda keyboard_events_size + cmp #8 + beq b4 + //SEG220 keyboard_event_scan::@15 + //SEG221 [107] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::event_type#0 ] ) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + lda keyboard_matrix_col_bitmask,x + and row_scan + //SEG222 [108] if((byte) keyboard_event_scan::event_type#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@6 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b6 + //SEG223 keyboard_event_scan::@16 + //SEG224 [109] (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 keyboard_event_scan::$12 ] ) -- vbuaa=vbuz1_bor_vbuc1 + lda #$40 + ora keycode + //SEG225 [110] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte/word/dword~) keyboard_event_scan::$12 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- pbuc1_derefidx_vbuz1=vbuaa + ldy keyboard_events_size + sta keyboard_events,y + //SEG226 [111] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#2 ] ) -- vbuz1=_inc_vbuz1 + inc keyboard_events_size + //SEG227 [112] phi from keyboard_event_scan::@14 keyboard_event_scan::@16 keyboard_event_scan::@3 keyboard_event_scan::@6 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@14/keyboard_event_scan::@16/keyboard_event_scan::@3/keyboard_event_scan::@6->keyboard_event_scan::@4] + //SEG228 [112] phi (byte) keyboard_events_size#44 = (byte) keyboard_events_size#14 [phi:keyboard_event_scan::@14/keyboard_event_scan::@16/keyboard_event_scan::@3/keyboard_event_scan::@6->keyboard_event_scan::@4#0] -- register_copy + //SEG229 keyboard_event_scan::@4 + b4: + //SEG230 [113] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuz1=_inc_vbuz1 + inc keycode + //SEG231 [114] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG232 [115] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@3 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#1 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 + bne b3 + //SEG233 keyboard_event_scan::@18 + //SEG234 [116] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#44 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda row_scan + ldy row + sta keyboard_scan_values,y + //SEG235 [117] phi from keyboard_event_scan::@18 keyboard_event_scan::@2 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8] + //SEG236 [117] phi (byte) keyboard_events_size#17 = (byte) keyboard_events_size#44 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8#0] -- register_copy + //SEG237 [117] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@18/keyboard_event_scan::@2->keyboard_event_scan::@8#1] -- register_copy + //SEG238 keyboard_event_scan::@8 + b8: + //SEG239 [118] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) -- vbuz1=_inc_vbuz1 + inc row + //SEG240 [119] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 [ keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::row#1 keyboard_event_scan::keycode#14 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda row + cmp #8 + bne b1 + //SEG241 [120] phi from keyboard_event_scan::@8 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@8->keyboard_event_scan::@20] + //SEG242 keyboard_event_scan::@20 + //SEG243 [121] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] ) + //SEG244 [149] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG245 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_LSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG246 [122] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_event_pressed::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#0 ] ) + // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + //SEG247 keyboard_event_scan::@26 + //SEG248 [123] (byte~) keyboard_event_scan::$16 ← (byte) keyboard_event_pressed::return#0 [ keyboard_events_size#17 keyboard_event_scan::$16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_scan::$16 ] ) + // (byte~) keyboard_event_scan::$16 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a + //SEG249 [124] if((byte~) keyboard_event_scan::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 [ keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b5 + //SEG250 [125] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG251 keyboard_event_scan::@21 + //SEG252 [126] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG253 [126] phi (byte) keyboard_modifiers#15 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + lda #0|KEY_MODIFIER_LSHIFT + sta keyboard_modifiers + jmp b9 + //SEG254 [126] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + b5: + //SEG255 [126] phi (byte) keyboard_modifiers#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + lda #0 + sta keyboard_modifiers + //SEG256 keyboard_event_scan::@9 + b9: + //SEG257 [127] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#15 ] ) + //SEG258 [149] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG259 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_RSHIFT + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG260 [128] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#1 ] ) + // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + //SEG261 keyboard_event_scan::@27 + //SEG262 [129] (byte~) keyboard_event_scan::$20 ← (byte) keyboard_event_pressed::return#1 [ keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_scan::$20 ] ) + // (byte~) keyboard_event_scan::$20 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a + //SEG263 [130] if((byte~) keyboard_event_scan::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 [ keyboard_events_size#17 keyboard_modifiers#15 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b10 + //SEG264 keyboard_event_scan::@22 + //SEG265 [131] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#15 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#17 keyboard_modifiers#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#3 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_RSHIFT + ora keyboard_modifiers + sta keyboard_modifiers + //SEG266 [132] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG267 [132] phi (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + //SEG268 keyboard_event_scan::@10 + b10: + //SEG269 [133] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#16 ] ) + //SEG270 [149] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG271 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_CTRL + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG272 [134] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#2 ] ) + // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + //SEG273 keyboard_event_scan::@28 + //SEG274 [135] (byte~) keyboard_event_scan::$24 ← (byte) keyboard_event_pressed::return#2 [ keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_scan::$24 ] ) + // (byte~) keyboard_event_scan::$24 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a + //SEG275 [136] if((byte~) keyboard_event_scan::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 [ keyboard_events_size#17 keyboard_modifiers#16 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b11 + //SEG276 keyboard_event_scan::@23 + //SEG277 [137] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#16 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#17 keyboard_modifiers#4 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#4 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_CTRL + ora keyboard_modifiers + sta keyboard_modifiers + //SEG278 [138] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG279 [138] phi (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + //SEG280 keyboard_event_scan::@11 + b11: + //SEG281 [139] call keyboard_event_pressed param-assignment [ keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 keyboard_modifiers#17 ] ) + //SEG282 [149] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG283 [149] phi (byte) keyboard_event_pressed::keycode#4 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_COMMODORE + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG284 [140] (byte) keyboard_event_pressed::return#3 ← (byte) keyboard_event_pressed::return#10 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#3 ] ) + // (byte) keyboard_event_pressed::return#3 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a + //SEG285 keyboard_event_scan::@29 + //SEG286 [141] (byte~) keyboard_event_scan::$28 ← (byte) keyboard_event_pressed::return#3 [ keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_scan::$28 ] ) + // (byte~) keyboard_event_scan::$28 = (byte) keyboard_event_pressed::return#3 // register copy reg byte a + //SEG287 [142] if((byte~) keyboard_event_scan::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return [ keyboard_events_size#17 keyboard_modifiers#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq breturn + //SEG288 keyboard_event_scan::@24 + //SEG289 [143] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#17 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#17 keyboard_modifiers#5 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#5 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #KEY_MODIFIER_COMMODORE + ora keyboard_modifiers + sta keyboard_modifiers + //SEG290 [144] phi from keyboard_event_scan::@24 keyboard_event_scan::@29 to keyboard_event_scan::@return [phi:keyboard_event_scan::@24/keyboard_event_scan::@29->keyboard_event_scan::@return] + //SEG291 [144] phi (byte) keyboard_modifiers#18 = (byte) keyboard_modifiers#5 [phi:keyboard_event_scan::@24/keyboard_event_scan::@29->keyboard_event_scan::@return#0] -- register_copy + //SEG292 keyboard_event_scan::@return + breturn: + //SEG293 [145] return [ keyboard_modifiers#18 keyboard_events_size#17 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_modifiers#18 keyboard_events_size#17 ] ) + rts + //SEG294 keyboard_event_scan::@6 + b6: + //SEG295 [146] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#14) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#14 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda keycode + ldy keyboard_events_size + sta keyboard_events,y + //SEG296 [147] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#14 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#1 ] ) -- vbuz1=_inc_vbuz1 + inc keyboard_events_size + jmp b4 + //SEG297 keyboard_event_scan::@2 + b2: + //SEG298 [148] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#43 keyboard_event_scan::keycode#1 ] ) -- vbuz1=vbuz1_plus_vbuc1 + lda #8 + clc + adc keycode + sta keycode + jmp b8 +} +//SEG299 keyboard_event_pressed +keyboard_event_pressed: { + .label keycode = 5 + //SEG300 [150] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ) -- vbuaa=vbuz1_ror_3 + lda keycode + lsr + lsr + lsr + //SEG301 [151] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::keycode#4 keyboard_event_pressed::row_bits#0 ] ) -- vbuyy=pbuc1_derefidx_vbuaa + tax + ldy keyboard_scan_values,x + //SEG302 [152] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and keycode + //SEG303 [153] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) -- vbuaa=vbuyy_band_pbuc1_derefidx_vbuaa + tax + tya + and keyboard_matrix_col_bitmask,x + //SEG304 keyboard_event_pressed::@return + //SEG305 [154] return [ keyboard_event_pressed::return#10 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:121 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:127 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#15 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:133 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#16 keyboard_event_pressed::return#10 ] main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_event_pressed:139 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_events_size#17 keyboard_modifiers#17 keyboard_event_pressed::return#10 ] ) rts } -//SEG215 keyboard_matrix_read +//SEG306 keyboard_matrix_read keyboard_matrix_read: { - //SEG216 [110] *((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:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 + //SEG307 [155] *((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:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG217 [111] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 + //SEG308 [156] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG218 keyboard_matrix_read::@return - //SEG219 [112] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_key_pressed:58::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:66::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:80::keyboard_matrix_read:105 [ 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:46::keyboard_key_pressed:87::keyboard_matrix_read:105 [ 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 ] ) + //SEG309 keyboard_matrix_read::@return + //SEG310 [157] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:46::keyboard_event_scan:58::keyboard_matrix_read:98 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#43 keyboard_matrix_read::return#0 ] ) rts } -//SEG220 form_field_ptr +//SEG311 form_field_ptr form_field_ptr: { - .label return = 6 - .label _2 = 6 - //SEG221 [114] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + .label return = 7 + .label _2 = 7 + //SEG312 [159] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG222 [115] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG313 [160] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG223 [116] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG314 [161] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx lda form_fields_x,x - //SEG224 [117] (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:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 + //SEG315 [162] (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:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG225 form_field_ptr::@return - //SEG226 [118] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ 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:40::form_field_ptr:122 [ 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 ] ) + //SEG316 form_field_ptr::@return + //SEG317 [163] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:46::form_field_ptr:48 [ form_cursor_count#13 keyboard_events_size#24 form_field_idx#14 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:40::form_field_ptr:167 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) rts } -//SEG227 form_render_values +//SEG318 form_render_values form_render_values: { - .label field = 6 - //SEG228 [120] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] - //SEG229 [120] 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 + .label field = 7 + //SEG319 [165] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + //SEG320 [165] 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 - //SEG230 [120] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] - //SEG231 [120] 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 - //SEG232 form_render_values::@1 + //SEG321 [165] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + //SEG322 [165] 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 + //SEG323 form_render_values::@1 b1: - //SEG233 [121] (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:40 [ 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 ] ) + //SEG324 [166] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG234 [122] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ 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 ] ) - //SEG235 [113] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] - //SEG236 [113] 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 + //SEG325 [167] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG326 [158] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + //SEG327 [158] 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 - //SEG237 [123] (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:40 [ 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 - //SEG238 form_render_values::@3 - //SEG239 [124] (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:40 [ 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 - //SEG240 [125] *((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:40 [ 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 + //SEG328 [168] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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:7 + //SEG329 form_render_values::@3 + //SEG330 [169] (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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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:7 + //SEG331 [170] *((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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#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 - //SEG241 [126] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuxx=_inc_vbuxx + //SEG332 [171] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG242 [127] 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:40 [ 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 + //SEG333 [172] 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:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_render_values::idx#1 ] ) -- vbuxx_lt_vbuc1_then_la1 cpx #form_fields_cnt bcc b1 - //SEG243 form_render_values::@return - //SEG244 [128] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG334 form_render_values::@return + //SEG335 [173] return [ ] ( main:2::menu:10::form_render_values:40 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts } -//SEG245 form_set_screen +//SEG336 form_set_screen form_set_screen: { - .label line = 6 - //SEG246 [130] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] - //SEG247 [130] 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 + .label line = 7 + //SEG337 [175] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + //SEG338 [175] 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 - //SEG248 [130] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + //SEG339 [175] 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 - //SEG249 [130] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] - //SEG250 [130] 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 - //SEG251 [130] 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 - //SEG252 form_set_screen::@1 + //SEG340 [175] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + //SEG341 [175] 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 + //SEG342 [175] 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 + //SEG343 form_set_screen::@1 b1: - //SEG253 [131] (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:38 [ 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 + //SEG344 [176] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 lda line - //SEG254 [132] *((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:38 [ 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 + //SEG345 [177] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta form_line_lo,x - //SEG255 [133] (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:38 [ 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 + //SEG346 [178] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 lda line+1 - //SEG256 [134] *((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:38 [ 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 + //SEG347 [179] *((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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta form_line_hi,x - //SEG257 [135] (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:38 [ 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 + //SEG348 [180] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -10060,88 +12318,88 @@ form_set_screen: { bcc !+ inc line+1 !: - //SEG258 [136] (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:38 [ 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 + //SEG349 [181] (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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG259 [137] 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:38 [ 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 + //SEG350 [182] 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:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$19 bne b1 - //SEG260 form_set_screen::@return - //SEG261 [138] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG351 form_set_screen::@return + //SEG352 [183] return [ ] ( main:2::menu:10::form_set_screen:38 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts } -//SEG262 print_str_lines +//SEG353 print_str_lines print_str_lines: { - .label str = 6 - //SEG263 [140] (byte*~) print_char_cursor#63 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#5 print_char_cursor#63 print_set_screen::screen#2 ] ) -- pbuz1=pbuz2 + .label str = 7 + //SEG354 [185] (byte*~) print_char_cursor#64 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#5 print_char_cursor#64 print_set_screen::screen#2 ] ) -- pbuz1=pbuz2 lda print_set_screen.screen sta print_char_cursor lda print_set_screen.screen+1 sta print_char_cursor+1 - //SEG264 [141] phi from print_str_lines print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1] - //SEG265 [141] phi (byte*) print_line_cursor#2 = (byte*) print_set_screen::screen#2 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG266 [141] phi (byte*) print_char_cursor#22 = (byte*~) print_char_cursor#63 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG267 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#2] -- register_copy - //SEG268 print_str_lines::@1 + //SEG355 [186] phi from print_str_lines print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1] + //SEG356 [186] phi (byte*) print_line_cursor#2 = (byte*) print_set_screen::screen#2 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG357 [186] phi (byte*) print_char_cursor#22 = (byte*~) print_char_cursor#64 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG358 [186] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG359 print_str_lines::@1 b1: - //SEG269 [142] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG360 [187] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4 - //SEG270 print_str_lines::@return - //SEG271 [143] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG361 print_str_lines::@return + //SEG362 [188] return [ ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 ] ) rts - //SEG272 [144] 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] - //SEG273 [144] phi (byte*) print_char_cursor#20 = (byte*) print_char_cursor#22 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG274 [144] phi (byte*) print_str_lines::str#4 = (byte*) print_str_lines::str#3 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy - //SEG275 print_str_lines::@4 + //SEG363 [189] 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] + //SEG364 [189] phi (byte*) print_char_cursor#20 = (byte*) print_char_cursor#22 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG365 [189] phi (byte*) print_str_lines::str#4 = (byte*) print_str_lines::str#3 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG366 print_str_lines::@4 b4: - //SEG276 [145] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 + //SEG367 [190] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - //SEG277 [146] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG368 [191] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG278 [147] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 + //SEG369 [192] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 cmp #'@' beq b5 - //SEG279 print_str_lines::@8 - //SEG280 [148] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa + //SEG370 print_str_lines::@8 + //SEG371 [193] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - //SEG281 [149] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG372 [194] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#20 [ print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 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 !: - //SEG282 [150] 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] - //SEG283 [150] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy - //SEG284 print_str_lines::@5 + //SEG373 [195] 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] + //SEG374 [195] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG375 print_str_lines::@5 b5: - //SEG285 [151] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) -- vbuaa_neq_vbuc1_then_la1 + //SEG376 [196] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#38 ] ) -- vbuaa_neq_vbuc1_then_la1 cmp #'@' bne b4 - //SEG286 [152] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] - //SEG287 print_str_lines::@9 - //SEG288 [153] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) - //SEG289 [155] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG377 [197] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG378 print_str_lines::@9 + //SEG379 [198] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) + //SEG380 [200] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] jsr print_ln - //SEG290 [154] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#64 print_line_cursor#22 ] ) -- pbuz1=pbuz2 + //SEG381 [199] (byte*~) print_char_cursor#65 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_char_cursor#65 print_line_cursor#22 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 jmp b1 } -//SEG291 print_ln +//SEG382 print_ln print_ln: { - //SEG292 [156] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] - //SEG293 [156] phi (byte*) print_line_cursor#21 = (byte*) print_line_cursor#2 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy - //SEG294 print_ln::@1 + //SEG383 [201] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG384 [201] phi (byte*) print_line_cursor#21 = (byte*) print_line_cursor#2 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG385 print_ln::@1 b1: - //SEG295 [157] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG386 [202] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -10149,7 +12407,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG296 [158] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG387 [203] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1 @@ -10158,33 +12416,33 @@ print_ln: { cmp print_char_cursor bcc b1 !: - //SEG297 print_ln::@return - //SEG298 [159] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:153 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#22 ] ) + //SEG388 print_ln::@return + //SEG389 [204] return [ print_line_cursor#22 ] ( main:2::menu:10::print_str_lines:30::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] main:2::menu:10::print_str_lines:36::print_ln:198 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 ] ) rts } -//SEG299 print_cls +//SEG390 print_cls print_cls: { - .label _0 = 8 - .label sc = 6 - //SEG300 [160] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#0 ] ) -- pbuz1=pbuz2 + .label _0 = 9 + .label sc = 7 + //SEG391 [205] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) -- pbuz1=pbuz2 lda print_set_screen.screen sta sc lda print_set_screen.screen+1 sta sc+1 - //SEG301 [161] phi from print_cls print_cls::@1 to print_cls::@1 [phi:print_cls/print_cls::@1->print_cls::@1] - //SEG302 [161] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#0 [phi:print_cls/print_cls::@1->print_cls::@1#0] -- register_copy - //SEG303 print_cls::@1 + //SEG392 [206] phi from print_cls print_cls::@1 to print_cls::@1 [phi:print_cls/print_cls::@1->print_cls::@1] + //SEG393 [206] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#0 [phi:print_cls/print_cls::@1->print_cls::@1#0] -- register_copy + //SEG394 print_cls::@1 b1: - //SEG304 [162] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG395 [207] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG305 [163] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG396 [208] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG306 [164] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) -- pbuz1=pbuz2_plus_vwuc1 + //SEG397 [209] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) -- pbuz1=pbuz2_plus_vwuc1 lda print_set_screen.screen clc adc #<$3e8 @@ -10192,28 +12450,30 @@ print_cls: { lda print_set_screen.screen+1 adc #>$3e8 sta _0+1 - //SEG307 [165] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1_neq_pbuz2_then_la1 + //SEG398 [210] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) -- pbuz1_neq_pbuz2_then_la1 lda sc+1 cmp _0+1 bne b1 lda sc cmp _0 bne b1 - //SEG308 print_cls::@return - //SEG309 [166] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + //SEG399 print_cls::@return + //SEG400 [211] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_cls:28 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_cls:34 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) rts } -//SEG310 print_set_screen +//SEG401 print_set_screen print_set_screen: { - .label screen = $a - //SEG311 print_set_screen::@return - //SEG312 [168] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_set_screen::screen#2 ] ) + .label screen = $b + //SEG402 print_set_screen::@return + //SEG403 [213] return [ print_set_screen::screen#2 ] ( main:2::menu:10::print_set_screen:26 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] main:2::menu:10::print_set_screen:32 [ form_cursor_count#1 keyboard_events_size#22 keyboard_modifiers#20 form_field_idx#1 print_set_screen::screen#2 ] ) rts } DTV_PALETTE_DEFAULT: .byte 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a print_hextab: .text "0123456789abcdef" keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + keyboard_events: .fill 8, 0 + keyboard_scan_values: .fill 8, 0 form_line_lo: .fill $19, 0 form_line_hi: .fill $19, 0 form_fields_x: .byte $16, 7, 7, 7, 7, 7, 7, 7, $11, $11, $11, $10, $11, $10, $11, $10, $11, $1b, $1a, $1b, $1a, $1b, $1a, $1b, $26, $26, $26, $25, $26, $25, $26, $25, $26, $25, $26 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.sym b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.sym index b208eb2ea..862bad7c4 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.sym @@ -1,4 +1,4 @@ -(label) @25 +(label) @28 (label) @begin (label) @end (byte*) BGCOL @@ -35,10 +35,26 @@ (const byte[16]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } (signed byte) FORM_CURSOR_BLINK (const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (byte/signed byte/word/signed word/dword/signed dword) 40 +(byte) KEY_COMMODORE +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 61 (byte) KEY_CRSR_DOWN (const byte) KEY_CRSR_DOWN#0 KEY_CRSR_DOWN = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_CRSR_RIGHT (const byte) KEY_CRSR_RIGHT#0 KEY_CRSR_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 2 +(byte) KEY_CTRL +(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 58 +(byte) KEY_LSHIFT +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 15 +(byte) KEY_MODIFIER_COMMODORE +(const byte) KEY_MODIFIER_COMMODORE#0 KEY_MODIFIER_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 8 +(byte) KEY_MODIFIER_CTRL +(const byte) KEY_MODIFIER_CTRL#0 KEY_MODIFIER_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 4 +(byte) KEY_MODIFIER_LSHIFT +(const byte) KEY_MODIFIER_LSHIFT#0 KEY_MODIFIER_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 1 +(byte) KEY_MODIFIER_RSHIFT +(const byte) KEY_MODIFIER_RSHIFT#0 KEY_MODIFIER_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 2 +(byte) KEY_MODIFIER_SHIFT +(const byte) KEY_MODIFIER_SHIFT#0 KEY_MODIFIER_SHIFT = (const byte) KEY_MODIFIER_LSHIFT#0|(const byte) KEY_MODIFIER_RSHIFT#0 (byte) KEY_RSHIFT (const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 52 (byte[]) MENU_COLS @@ -60,58 +76,52 @@ (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (void()) form_control() +(byte~) form_control::$12 reg byte a 4.0 (byte~) form_control::$13 reg byte a 4.0 -(byte~) form_control::$14 reg byte a 4.0 -(byte~) form_control::$28 reg byte a 4.0 +(byte~) form_control::$24 reg byte a 4.0 (byte/word/dword~) form_control::$6 reg byte a 4.0 (byte~) form_control::$7 reg byte a 4.0 (label) form_control::@1 +(label) form_control::@10 (label) form_control::@12 -(label) form_control::@14 +(label) form_control::@15 (label) form_control::@17 -(label) form_control::@19 +(label) form_control::@18 (label) form_control::@2 -(label) form_control::@20 -(label) form_control::@21 -(label) form_control::@26 +(label) form_control::@23 +(label) form_control::@24 +(label) form_control::@25 (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::@37 -(label) form_control::@38 -(label) form_control::@39 (label) form_control::@4 -(label) form_control::@6 -(label) form_control::@8 +(label) form_control::@5 +(label) form_control::@7 (label) form_control::@return (byte*) form_control::field -(byte*) form_control::field#0 field zp ZP_WORD:6 0.44444444444444453 -(byte) form_control::key_down -(byte) form_control::key_down#0 reg byte a 2.6666666666666665 -(byte) form_control::key_right -(byte) form_control::key_right#0 reg byte a 2.6666666666666665 +(byte*) form_control::field#0 field zp ZP_WORD:7 0.5925925925925926 +(byte) form_control::key_event +(byte) form_control::key_event#0 reg byte a 3.0 (signed byte) form_cursor_count (signed byte) form_cursor_count#1 form_cursor_count zp ZP_BYTE:2 0.3939393939393939 (signed byte) form_cursor_count#13 form_cursor_count zp ZP_BYTE:2 11.6 -(signed byte) form_cursor_count#15 form_cursor_count zp ZP_BYTE:2 0.3125 -(signed byte) form_cursor_count#16 form_cursor_count zp ZP_BYTE:2 35.66666666666666 +(signed byte) form_cursor_count#15 form_cursor_count zp ZP_BYTE:2 0.34782608695652173 +(signed byte) form_cursor_count#16 form_cursor_count zp ZP_BYTE:2 34.99999999999999 (signed byte) form_cursor_count#5 form_cursor_count zp ZP_BYTE:2 2.0 (byte) form_field_idx (byte) form_field_idx#1 form_field_idx zp ZP_BYTE:4 0.3939393939393939 -(byte) form_field_idx#14 form_field_idx zp ZP_BYTE:4 2.901960784313723 -(byte) form_field_idx#18 form_field_idx zp ZP_BYTE:4 36.33333333333332 -(byte) form_field_idx#32 form_field_idx zp ZP_BYTE:4 6.0 +(byte) form_field_idx#14 form_field_idx zp ZP_BYTE:4 3.6499999999999972 +(byte) form_field_idx#18 form_field_idx zp ZP_BYTE:4 35.66666666666666 +(byte) form_field_idx#30 form_field_idx zp ZP_BYTE:4 6.0 +(byte) form_field_idx#40 form_field_idx zp ZP_BYTE:4 2.0 (byte) form_field_idx#41 form_field_idx zp ZP_BYTE:4 2.0 -(byte) form_field_idx#42 form_field_idx zp ZP_BYTE:4 2.0 (byte*()) form_field_ptr((byte) form_field_ptr::field_idx) -(word~) form_field_ptr::$2 $2 zp ZP_WORD:6 1.0 +(word~) form_field_ptr::$2 $2 zp ZP_WORD:7 1.0 (label) form_field_ptr::@return (byte*) form_field_ptr::field (byte) form_field_ptr::field_idx @@ -120,9 +130,9 @@ (byte) form_field_ptr::field_idx#2 reg byte x 35.66666666666666 (byte*) form_field_ptr::line (byte*) form_field_ptr::return -(byte*) form_field_ptr::return#0 return zp ZP_WORD:6 26.25 -(byte*) form_field_ptr::return#2 return zp ZP_WORD:6 202.0 -(byte*) form_field_ptr::return#3 return zp ZP_WORD:6 4.0 +(byte*) form_field_ptr::return#0 return zp ZP_WORD:7 26.25 +(byte*) form_field_ptr::return#2 return zp ZP_WORD:7 202.0 +(byte*) form_field_ptr::return#3 return zp ZP_WORD:7 4.0 (byte) form_field_ptr::x (byte) form_field_ptr::x#0 reg byte a 4.0 (byte) form_field_ptr::y @@ -146,7 +156,7 @@ (label) form_render_values::@3 (label) form_render_values::@return (byte*) form_render_values::field -(byte*) form_render_values::field#0 field zp ZP_WORD:6 202.0 +(byte*) form_render_values::field#0 field zp ZP_WORD:7 202.0 (byte) form_render_values::idx (byte) form_render_values::idx#1 reg byte x 151.5 (byte) form_render_values::idx#2 reg byte x 67.33333333333333 @@ -156,51 +166,118 @@ (label) form_set_screen::@1 (label) form_set_screen::@return (byte*) form_set_screen::line -(byte*) form_set_screen::line#1 line zp ZP_WORD:6 67.33333333333333 -(byte*) form_set_screen::line#2 line zp ZP_WORD:6 80.8 +(byte*) form_set_screen::line#1 line zp ZP_WORD:7 67.33333333333333 +(byte*) form_set_screen::line#2 line zp ZP_WORD:7 80.8 (byte*) form_set_screen::screen (byte) form_set_screen::y (byte) form_set_screen::y#1 reg byte x 151.5 (byte) form_set_screen::y#2 reg byte x 67.33333333333333 -(byte) key_down_debounce -(byte) key_down_debounce#1 key_down_debounce zp ZP_BYTE:3 0.3939393939393939 -(byte) key_down_debounce#11 key_down_debounce zp ZP_BYTE:3 4.916666666666666 -(byte) key_down_debounce#13 key_down_debounce zp ZP_BYTE:3 36.33333333333332 -(byte) key_down_debounce#20 key_down_debounce zp ZP_BYTE:3 0.5263157894736842 -(byte) key_down_debounce#23 key_down_debounce zp ZP_BYTE:3 0.4 -(byte) key_right_debounce -(byte) key_right_debounce#1 key_right_debounce zp ZP_BYTE:5 0.3939393939393939 -(byte) key_right_debounce#11 key_right_debounce zp ZP_BYTE:5 2.727272727272727 -(byte) key_right_debounce#13 key_right_debounce zp ZP_BYTE:5 36.33333333333332 -(byte) key_right_debounce#21 key_right_debounce zp ZP_BYTE:5 0.42857142857142855 -(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) -(byte~) keyboard_key_pressed::$2 reg byte a 4.0 -(label) keyboard_key_pressed::@2 -(label) keyboard_key_pressed::@return -(byte) keyboard_key_pressed::colidx -(byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666 -(byte) keyboard_key_pressed::key -(byte) keyboard_key_pressed::key#4 reg byte x 2.0 -(byte) keyboard_key_pressed::return -(byte) keyboard_key_pressed::return#0 reg byte a 1.6666666666666665 -(byte) keyboard_key_pressed::return#10 reg byte a 4.0 -(byte) keyboard_key_pressed::return#2 reg byte a 4.0 -(byte) keyboard_key_pressed::return#3 reg byte a 4.0 -(byte) keyboard_key_pressed::return#4 reg byte a 4.0 -(byte) keyboard_key_pressed::rowidx -(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte()) keyboard_event_get() +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte) keyboard_event_get::return#0 reg byte a 4.0 +(byte) keyboard_event_get::return#2 reg byte a 1.3333333333333333 +(byte) keyboard_event_get::return#3 reg byte a 4.0 +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 reg byte a 4.0 +(byte~) keyboard_event_pressed::$1 reg byte a 4.0 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::keycode#4 keycode zp ZP_BYTE:5 1.3333333333333333 +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::return#0 reg byte a 4.0 +(byte) keyboard_event_pressed::return#1 reg byte a 4.0 +(byte) keyboard_event_pressed::return#10 reg byte a 1.6666666666666665 +(byte) keyboard_event_pressed::return#2 reg byte a 4.0 +(byte) keyboard_event_pressed::return#3 reg byte a 4.0 +(byte) keyboard_event_pressed::row_bits +(byte) keyboard_event_pressed::row_bits#0 reg byte y 2.0 +(void()) keyboard_event_scan() +(byte/word/dword~) keyboard_event_scan::$12 reg byte a 20002.0 +(byte~) keyboard_event_scan::$16 reg byte a 4.0 +(byte~) keyboard_event_scan::$20 reg byte a 4.0 +(byte~) keyboard_event_scan::$24 reg byte a 4.0 +(byte~) keyboard_event_scan::$28 reg byte a 4.0 +(byte~) keyboard_event_scan::$3 reg byte a 20002.0 +(byte~) keyboard_event_scan::$4 reg byte a 20002.0 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@14 +(label) keyboard_event_scan::@15 +(label) keyboard_event_scan::@16 +(label) keyboard_event_scan::@18 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@20 +(label) keyboard_event_scan::@21 +(label) keyboard_event_scan::@22 +(label) keyboard_event_scan::@23 +(label) keyboard_event_scan::@24 +(label) keyboard_event_scan::@25 +(label) keyboard_event_scan::@26 +(label) keyboard_event_scan::@27 +(label) keyboard_event_scan::@28 +(label) keyboard_event_scan::@29 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::col#1 reg byte x 15001.5 +(byte) keyboard_event_scan::col#2 reg byte x 2857.4285714285716 +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::event_type#0 reg byte a 20002.0 +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:5 2002.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:5 3154.230769230769 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:5 500.5 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:5 1001.0 +(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:5 5250.75 +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:3 1501.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:3 600.24 +(byte) keyboard_event_scan::row_scan +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:13 1278.0555555555554 +(byte[8]) keyboard_events +(const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } +(byte) keyboard_events_size +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:6 20002.0 +(byte) keyboard_events_size#14 keyboard_events_size zp ZP_BYTE:6 8100.9000000000015 +(byte) keyboard_events_size#17 keyboard_events_size zp ZP_BYTE:6 94.03125 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:6 20002.0 +(byte) keyboard_events_size#20 keyboard_events_size zp ZP_BYTE:6 3.5000000000000004 +(byte) keyboard_events_size#22 keyboard_events_size zp ZP_BYTE:6 0.3939393939393939 +(byte) keyboard_events_size#24 keyboard_events_size zp ZP_BYTE:6 5.523809523809524 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:6 3.0 +(byte) keyboard_events_size#43 keyboard_events_size zp ZP_BYTE:6 429.2857142857143 +(byte) keyboard_events_size#44 keyboard_events_size zp ZP_BYTE:6 10201.2 +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return -(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333 -(byte) keyboard_matrix_read::return#2 reg byte a 4.0 +(byte) keyboard_matrix_read::return#0 reg byte a 334.33333333333337 +(byte) keyboard_matrix_read::return#2 reg byte a 2002.0 (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid -(byte) keyboard_matrix_read::rowid#0 reg byte x 4.0 +(byte) keyboard_matrix_read::rowid#0 reg byte x 1003.0 (byte[8]) keyboard_matrix_row_bitmask (const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(byte) keyboard_modifiers +(byte) keyboard_modifiers#10 keyboard_modifiers zp ZP_BYTE:3 28.5 +(byte) keyboard_modifiers#15 keyboard_modifiers zp ZP_BYTE:3 0.8 +(byte) keyboard_modifiers#16 keyboard_modifiers zp ZP_BYTE:3 1.6 +(byte) keyboard_modifiers#17 keyboard_modifiers zp ZP_BYTE:3 1.6 +(byte) keyboard_modifiers#18 keyboard_modifiers zp ZP_BYTE:3 3.40625 +(byte) keyboard_modifiers#20 keyboard_modifiers zp ZP_BYTE:3 0.3939393939393939 +(byte) keyboard_modifiers#3 keyboard_modifiers zp ZP_BYTE:3 4.0 +(byte) keyboard_modifiers#4 keyboard_modifiers zp ZP_BYTE:3 4.0 +(byte) keyboard_modifiers#5 keyboard_modifiers zp ZP_BYTE:3 4.0 +(byte[8]) keyboard_scan_values +(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } (void()) main() (label) main::@1 (label) main::@2 @@ -227,26 +304,26 @@ (byte) menu::i#1 reg byte x 151.5 (byte) menu::i#2 reg byte x 202.0 (byte*) print_char_cursor -(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:8 2002.0 -(byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:8 821.0 -(byte*) print_char_cursor#22 print_char_cursor zp ZP_WORD:8 102.0 -(byte*) print_char_cursor#38 print_char_cursor zp ZP_WORD:8 572.0 -(byte*~) print_char_cursor#63 print_char_cursor zp ZP_WORD:8 4.0 -(byte*~) print_char_cursor#64 print_char_cursor zp ZP_WORD:8 202.0 +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:9 2002.0 +(byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:9 821.0 +(byte*) print_char_cursor#22 print_char_cursor zp ZP_WORD:9 102.0 +(byte*) print_char_cursor#38 print_char_cursor zp ZP_WORD:9 572.0 +(byte*~) print_char_cursor#64 print_char_cursor zp ZP_WORD:9 4.0 +(byte*~) print_char_cursor#65 print_char_cursor zp ZP_WORD:9 202.0 (void()) print_cls() -(byte*~) print_cls::$0 $0 zp ZP_WORD:8 202.0 +(byte*~) print_cls::$0 $0 zp ZP_WORD:9 202.0 (label) print_cls::@1 (label) print_cls::@return (byte*) print_cls::sc -(byte*) print_cls::sc#0 sc zp ZP_WORD:6 4.0 -(byte*) print_cls::sc#1 sc zp ZP_WORD:6 101.0 -(byte*) print_cls::sc#2 sc zp ZP_WORD:6 152.5 +(byte*) print_cls::sc#0 sc zp ZP_WORD:7 4.0 +(byte*) print_cls::sc#1 sc zp ZP_WORD:7 101.0 +(byte*) print_cls::sc#2 sc zp ZP_WORD:7 152.5 (byte[]) print_hextab (const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(byte*) print_line_cursor#2 print_line_cursor zp ZP_WORD:10 8.749999999999998 -(byte*) print_line_cursor#21 print_line_cursor zp ZP_WORD:10 2004.0 -(byte*) print_line_cursor#22 print_line_cursor zp ZP_WORD:10 641.0 +(byte*) print_line_cursor#2 print_line_cursor zp ZP_WORD:11 8.749999999999998 +(byte*) print_line_cursor#21 print_line_cursor zp ZP_WORD:11 2004.0 +(byte*) print_line_cursor#22 print_line_cursor zp ZP_WORD:11 641.0 (void()) print_ln() (label) print_ln::@1 (label) print_ln::@return @@ -254,7 +331,7 @@ (void()) print_set_screen((byte*) print_set_screen::screen) (label) print_set_screen::@return (byte*) print_set_screen::screen -(byte*) print_set_screen::screen#2 screen zp ZP_WORD:10 5.631578947368421 +(byte*) print_set_screen::screen#2 screen zp ZP_WORD:11 5.631578947368421 (void()) print_str_lines((byte*) print_str_lines::str) (label) print_str_lines::@1 (label) print_str_lines::@4 @@ -265,40 +342,51 @@ (byte) print_str_lines::ch (byte) print_str_lines::ch#0 reg byte a 667.3333333333334 (byte*) print_str_lines::str -(byte*) print_str_lines::str#0 str zp ZP_WORD:6 233.66666666666669 -(byte*) print_str_lines::str#3 str zp ZP_WORD:6 152.5 -(byte*) print_str_lines::str#4 str zp ZP_WORD:6 1552.0 -(byte*) print_str_lines::str#5 str zp ZP_WORD:6 1.0 +(byte*) print_str_lines::str#0 str zp ZP_WORD:7 233.66666666666669 +(byte*) print_str_lines::str#3 str zp ZP_WORD:7 152.5 +(byte*) print_str_lines::str#4 str zp ZP_WORD:7 1552.0 +(byte*) print_str_lines::str#5 str zp ZP_WORD:7 1.0 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:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] -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:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +zp ZP_BYTE:3 [ keyboard_modifiers#20 keyboard_modifiers#10 keyboard_modifiers#18 keyboard_modifiers#17 keyboard_modifiers#4 keyboard_modifiers#16 keyboard_modifiers#3 keyboard_modifiers#15 keyboard_modifiers#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#40 form_field_idx#41 ] reg byte x [ menu::i#2 menu::i#1 ] -reg byte x [ keyboard_key_pressed::key#4 ] +reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#0 ] +reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +zp ZP_BYTE:5 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 keyboard_event_pressed::keycode#4 ] +zp ZP_BYTE:6 [ keyboard_events_size#14 keyboard_events_size#43 keyboard_events_size#22 keyboard_events_size#24 keyboard_events_size#20 keyboard_events_size#4 keyboard_events_size#17 keyboard_events_size#44 keyboard_events_size#2 keyboard_events_size#1 ] reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] -zp ZP_WORD:6 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 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 ] +zp ZP_WORD:7 [ form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 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 ] reg byte x [ form_set_screen::y#2 form_set_screen::y#1 ] -zp ZP_WORD:8 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#63 print_char_cursor#64 print_char_cursor#38 print_char_cursor#1 print_cls::$0 ] -zp ZP_WORD:10 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] +zp ZP_WORD:9 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#64 print_char_cursor#65 print_char_cursor#38 print_char_cursor#1 print_cls::$0 ] +zp ZP_WORD:11 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] reg byte a [ form_control::$6 ] -reg byte a [ keyboard_key_pressed::return#2 ] -reg byte a [ form_control::key_down#0 ] +reg byte a [ keyboard_event_get::return#3 ] +reg byte a [ form_control::key_event#0 ] +reg byte a [ form_control::$12 ] reg byte a [ form_control::$13 ] -reg byte a [ keyboard_key_pressed::return#4 ] -reg byte a [ form_control::$14 ] -reg byte a [ keyboard_key_pressed::return#3 ] -reg byte a [ form_control::key_right#0 ] -reg byte a [ keyboard_key_pressed::return#10 ] -reg byte a [ form_control::$28 ] +reg byte a [ form_control::$24 ] reg byte a [ form_control::$7 ] -reg byte y [ keyboard_key_pressed::colidx#0 ] -reg byte a [ keyboard_key_pressed::rowidx#0 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] -reg byte a [ keyboard_key_pressed::$2 ] -reg byte a [ keyboard_key_pressed::return#0 ] +zp ZP_BYTE:13 [ keyboard_event_scan::row_scan#0 ] +reg byte a [ keyboard_event_scan::$3 ] +reg byte a [ keyboard_event_scan::$4 ] +reg byte a [ keyboard_event_scan::event_type#0 ] +reg byte a [ keyboard_event_scan::$12 ] +reg byte a [ keyboard_event_pressed::return#0 ] +reg byte a [ keyboard_event_scan::$16 ] +reg byte a [ keyboard_event_pressed::return#1 ] +reg byte a [ keyboard_event_scan::$20 ] +reg byte a [ keyboard_event_pressed::return#2 ] +reg byte a [ keyboard_event_scan::$24 ] +reg byte a [ keyboard_event_pressed::return#3 ] +reg byte a [ keyboard_event_scan::$28 ] +reg byte a [ keyboard_event_pressed::$0 ] +reg byte y [ keyboard_event_pressed::row_bits#0 ] +reg byte a [ keyboard_event_pressed::$1 ] +reg byte a [ keyboard_event_pressed::return#10 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte y [ form_field_ptr::y#0 ] reg byte a [ form_field_ptr::x#0 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.cfg b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.cfg index 28694bcf2..df0ad95ef 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@42 -@42: scope:[] from @begin + to:@45 +@45: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @42 +@end: scope:[] from @45 [3] phi() [ ] ( ) -main: scope:[main] from @42 +main: scope:[main] from @45 asm { sei } [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) @@ -413,7 +413,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@10 menu::@11 men to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [223] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [224] (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:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) + [224] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [225] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log index 0cc4ad4da..b204e93aa 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log @@ -1288,7 +1288,7 @@ const byte[] keyboard_char_keycodes = { byte[8] keyboard_matrix_row_bitmask = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; // Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7) -byte[] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; +byte[8] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; // Initialize keyboard reading by setting CIA#$ Data Direction Registers void keyboard_init() { @@ -1308,7 +1308,7 @@ byte keyboard_matrix_read(byte rowid) { return row_pressed_bits; } -// Determines whether a specific key is currently pressed +// Determines whether a specific key is currently pressed by accessing the matrix directly // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed @@ -1325,7 +1325,102 @@ byte keyboard_key_pressed(byte key) { byte keyboard_get_keycode(byte ch) { return keyboard_char_keycodes[ch]; } + +// Keyboard event buffer. Contains keycodes for key presses/releases. Presses are represented by the keycode. Releases by keycode | $40. The buffer is filled by keyboard_scan() +byte[8] keyboard_events; +// Keyboard event buffer size. The number of events currently in the event buffer +byte keyboard_events_size = 0; +// Current keyboard modifiers (left shift, right shift, ctrl, commodore) +byte keyboard_modifiers = 0; +// Left shift is pressed +const byte KEY_MODIFIER_LSHIFT = 1; +// Right shift is pressed +const byte KEY_MODIFIER_RSHIFT = 2; +// CTRL is pressed +const byte KEY_MODIFIER_CTRL = 4; +// Commodore is pressed +const byte KEY_MODIFIER_COMMODORE = 8; +// Any shift is pressed +const byte KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT; +// The values scanned values for each row. Set by keyboard_scan() and used by keyboard_get_event() +byte[8] keyboard_scan_values; + +// Scans the entire matrix to determine which keys have been pressed/depressed. +// Generates keyboard events into the event buffer. Events can be read using keyboard_event_get(). +// Handles debounce and only generates events when the status of a key changes. +// Also stores current status of modifiers in keyboard_modifiers. +void keyboard_event_scan() { + byte keycode = 0; + for(byte row : 0..7) { + byte row_scan = keyboard_matrix_read(row); + if(row_scan!=keyboard_scan_values[row]) { + // Something has changed on the keyboard row - check each column + for(byte col : 0..7){ + // XOR of row scan with the last seen row scan AND'ed with the col bitmask will be non-0 if the key status is changed + if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) { + // Key(row, col) status has changed. We have an event. + // Only process event if there is still room in the buffer + if(keyboard_events_size!=8) { + // AND of row scan and bit mask determines if key is pressed or released + byte event_type = row_scan&keyboard_matrix_col_bitmask[col]; + if(event_type==0) { + // Key released + keyboard_events[keyboard_events_size++] = keycode|$40; + } else { + // Key pressed + keyboard_events[keyboard_events_size++] = keycode; + } + } + } + keycode++; + } + // Store the current keyboard status for the row to debounce + keyboard_scan_values[row] = row_scan; + } else { + // Update current keycode + keycode = keycode + 8; + } + } + // Update the keyboard modifiers + keyboard_modifiers = 0; + if(keyboard_event_pressed(KEY_LSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_LSHIFT; + } + if(keyboard_event_pressed(KEY_RSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_RSHIFT; + } + if(keyboard_event_pressed(KEY_CTRL)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_CTRL; + } + if(keyboard_event_pressed(KEY_COMMODORE)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_COMMODORE; + } +} + +// Determine if a specific key is currently pressed based on the last keyboard_event_scan() +// Returns 0 is not pressed and non-0 if pressed +byte keyboard_event_pressed(byte keycode) { + byte row_bits = keyboard_scan_values[keycode>>3]; + return row_bits & keyboard_matrix_col_bitmask[keycode&7]; +} + +// Get the next event from the keyboard event buffer. +// Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. +// The buffer is filled by keyboard_scan() +byte keyboard_event_get() { + if(keyboard_events_size==0) { + return $ff; + } else { + return keyboard_events[--keyboard_events_size]; + } +} + + Importing c64.kc +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode +Adding pre/post-modifier (byte) keyboard_events_size ← -- (byte) keyboard_events_size Importing bitmap-draw.kc PARSING src/test/java/dk/camelot64/kickc/test/kc/bitmap-draw.kc // Plot and line drawing routines for HIRES bitmaps @@ -1846,7 +1941,7 @@ endproc // print_set_screen() (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } proc (void()) keyboard_init() *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1869,7 +1964,7 @@ proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 goto keyboard_key_pressed::@return keyboard_key_pressed::@return: @@ -1883,6 +1978,122 @@ keyboard_get_keycode::@return: (byte) keyboard_get_keycode::return ← (byte) keyboard_get_keycode::return return (byte) keyboard_get_keycode::return endproc // keyboard_get_keycode() + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } +proc (void()) keyboard_event_scan() + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@1: + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@3: + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + goto keyboard_event_scan::@7 +keyboard_event_scan::@6: + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +keyboard_event_scan::@7: +keyboard_event_scan::@5: +keyboard_event_scan::@4: + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + goto keyboard_event_scan::@8 +keyboard_event_scan::@2: + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +keyboard_event_scan::@8: + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 +keyboard_event_scan::@9: + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 +keyboard_event_scan::@10: + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 +keyboard_event_scan::@11: + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 +keyboard_event_scan::@12: +keyboard_event_scan::@return: + return +endproc // keyboard_event_scan() +proc (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + goto keyboard_event_pressed::@return +keyboard_event_pressed::@return: + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return +endproc // keyboard_event_pressed() +proc (byte()) keyboard_event_get() + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + goto keyboard_event_get::@return + goto keyboard_event_get::@2 +keyboard_event_get::@1: + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + goto keyboard_event_get::@return +keyboard_event_get::@2: +keyboard_event_get::@return: + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return +endproc // keyboard_event_get() (byte[256]) bitmap_plot_xlo ← { fill( 256, 0) } (byte[256]) bitmap_plot_xhi ← { fill( 256, 0) } (byte[256]) bitmap_plot_ylo ← { fill( 256, 0) } @@ -2124,27 +2335,27 @@ main::@3: main::@return: return endproc // main() - (string~) $0 ← (string) "C64DTV Graphics Modes CCLHBME@" + (string) " OHIIMCC@" - (string~) $1 ← (string~) $0 + (string) " LUNCMMM@" - (string~) $2 ← (string~) $1 + (string) "----------------------------------------@" - (string~) $3 ← (string~) $2 + (string) "1. Standard Char (V) 0000000@" - (string~) $4 ← (string~) $3 + (string) "2. Extended Color Char (V) 0000001@" - (string~) $5 ← (string~) $4 + (string) "3. Multicolor Char (V) 0000010@" - (string~) $6 ← (string~) $5 + (string) "4. Standard Bitmap (V) 0000100@" - (string~) $7 ← (string~) $6 + (string) "5. Multicolor Bitmap (V) 0000110@" - (string~) $8 ← (string~) $7 + (string) "6. High Color Standard Char (H) 0001000@" - (string~) $9 ← (string~) $8 + (string) "7. High Extended Color Char (H) 0001001@" - (string~) $10 ← (string~) $9 + (string) "8. High Multicolor Char (H) 0001010@" - (string~) $11 ← (string~) $10 + (string) "9. High Multicolor Bitmap (H) 0001110@" - (string~) $12 ← (string~) $11 + (string) "a. Sixs Fred 2 (D) 0010111@" - (string~) $13 ← (string~) $12 + (string) "b. Two Plane Bitmap (D) 0011101@" - (string~) $14 ← (string~) $13 + (string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" - (string~) $15 ← (string~) $14 + (string) "d. 8bpp Pixel Cell (D) 0111011@" - (string~) $16 ← (string~) $15 + (string) "e. Chunky 8bpp Bitmap (D) 1111011@" - (string~) $17 ← (string~) $16 + (string) "----------------------------------------@" - (string~) $18 ← (string~) $17 + (string) " (V) vicII (H) vicII+hicol (D) c64dtv@" - (string~) $19 ← (string~) $18 + (string) "@" - (byte[]) MENU_TEXT ← (string~) $19 + (string~) $1 ← (string) "C64DTV Graphics Modes CCLHBME@" + (string) " OHIIMCC@" + (string~) $2 ← (string~) $1 + (string) " LUNCMMM@" + (string~) $3 ← (string~) $2 + (string) "----------------------------------------@" + (string~) $4 ← (string~) $3 + (string) "1. Standard Char (V) 0000000@" + (string~) $5 ← (string~) $4 + (string) "2. Extended Color Char (V) 0000001@" + (string~) $6 ← (string~) $5 + (string) "3. Multicolor Char (V) 0000010@" + (string~) $7 ← (string~) $6 + (string) "4. Standard Bitmap (V) 0000100@" + (string~) $8 ← (string~) $7 + (string) "5. Multicolor Bitmap (V) 0000110@" + (string~) $9 ← (string~) $8 + (string) "6. High Color Standard Char (H) 0001000@" + (string~) $10 ← (string~) $9 + (string) "7. High Extended Color Char (H) 0001001@" + (string~) $11 ← (string~) $10 + (string) "8. High Multicolor Char (H) 0001010@" + (string~) $12 ← (string~) $11 + (string) "9. High Multicolor Bitmap (H) 0001110@" + (string~) $13 ← (string~) $12 + (string) "a. Sixs Fred 2 (D) 0010111@" + (string~) $14 ← (string~) $13 + (string) "b. Two Plane Bitmap (D) 0011101@" + (string~) $15 ← (string~) $14 + (string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" + (string~) $16 ← (string~) $15 + (string) "d. 8bpp Pixel Cell (D) 0111011@" + (string~) $17 ← (string~) $16 + (string) "e. Chunky 8bpp Bitmap (D) 1111011@" + (string~) $18 ← (string~) $17 + (string) "----------------------------------------@" + (string~) $19 ← (string~) $18 + (string) " (V) vicII (H) vicII+hicol (D) c64dtv@" + (string~) $20 ← (string~) $19 + (string) "@" + (byte[]) MENU_TEXT ← (string~) $20 proc (void()) menu() (byte*) menu::SCREEN ← (word/dword/signed dword) 32768 (byte*) menu::CHARSET ← (word/dword/signed dword) 38912 @@ -3336,7 +3547,7 @@ endproc // mode_8bppchunkybmm() call main SYMBOLS -(string~) $0 +(byte~) $0 (string~) $1 (string~) $10 (string~) $11 @@ -3349,6 +3560,7 @@ SYMBOLS (string~) $18 (string~) $19 (string~) $2 +(string~) $20 (string~) $3 (string~) $4 (string~) $5 @@ -3456,6 +3668,11 @@ SYMBOLS (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O (byte) KEY_P @@ -3696,6 +3913,74 @@ SYMBOLS (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtv_control (byte[]) keyboard_char_keycodes +(byte()) keyboard_event_get() +(boolean~) keyboard_event_get::$0 +(boolean~) keyboard_event_get::$1 +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@2 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 +(byte~) keyboard_event_pressed::$1 +(byte~) keyboard_event_pressed::$2 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::row_bits +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 +(boolean~) keyboard_event_scan::$1 +(boolean~) keyboard_event_scan::$10 +(boolean~) keyboard_event_scan::$11 +(byte/word/dword~) keyboard_event_scan::$12 +(boolean~) keyboard_event_scan::$13 +(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +(boolean~) keyboard_event_scan::$15 +(byte~) keyboard_event_scan::$16 +(boolean~) keyboard_event_scan::$17 +(boolean~) keyboard_event_scan::$18 +(byte~) keyboard_event_scan::$19 +(boolean~) keyboard_event_scan::$2 +(byte~) keyboard_event_scan::$20 +(boolean~) keyboard_event_scan::$21 +(boolean~) keyboard_event_scan::$22 +(byte~) keyboard_event_scan::$23 +(byte~) keyboard_event_scan::$24 +(boolean~) keyboard_event_scan::$25 +(boolean~) keyboard_event_scan::$26 +(byte~) keyboard_event_scan::$27 +(byte~) keyboard_event_scan::$28 +(boolean~) keyboard_event_scan::$29 +(byte~) keyboard_event_scan::$3 +(boolean~) keyboard_event_scan::$30 +(byte~) keyboard_event_scan::$31 +(byte~) keyboard_event_scan::$4 +(boolean~) keyboard_event_scan::$5 +(boolean~) keyboard_event_scan::$6 +(boolean~) keyboard_event_scan::$7 +(boolean~) keyboard_event_scan::$8 +(byte~) keyboard_event_scan::$9 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row_scan +(byte[8]) keyboard_events +(byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) (label) keyboard_get_keycode::@return (byte) keyboard_get_keycode::ch @@ -3712,7 +3997,7 @@ SYMBOLS (byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::rowidx -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -3720,6 +4005,8 @@ SYMBOLS (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask +(byte) keyboard_modifiers +(byte[8]) keyboard_scan_values (void()) main() (void~) main::$0 (label) main::@1 @@ -5076,7 +5363,7 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } to:@16 keyboard_init: scope:[keyboard_init] from *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 @@ -5107,7 +5394,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1 @@ -5128,12 +5415,179 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k keyboard_get_keycode::@1: scope:[keyboard_get_keycode] from to:keyboard_get_keycode::@return @19: scope:[] from @18 + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } + to:@20 +keyboard_event_scan: scope:[keyboard_event_scan] from + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + to:keyboard_event_scan::@13 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19 + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 + to:keyboard_event_scan::@8 +keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4 + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + to:keyboard_event_scan::@14 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5 + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + to:keyboard_event_scan::@18 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + to:keyboard_event_scan::@15 +keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7 + to:keyboard_event_scan::@4 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + to:keyboard_event_scan::@16 +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6 + to:keyboard_event_scan::@5 +keyboard_event_scan::@17: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@6 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + to:keyboard_event_scan::@20 +keyboard_event_scan::@19: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@2 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + to:keyboard_event_scan::@21 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21 + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + to:keyboard_event_scan::@22 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 + to:keyboard_event_scan::@9 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + to:keyboard_event_scan::@23 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 + to:keyboard_event_scan::@10 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23 + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + to:keyboard_event_scan::@24 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 + to:keyboard_event_scan::@11 +keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24 + to:keyboard_event_scan::@return +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 + to:keyboard_event_scan::@12 +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12 + return + to:@return +@20: scope:[] from @19 + to:@21 +keyboard_event_pressed: scope:[keyboard_event_pressed] from + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed keyboard_event_pressed::@1 + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return + to:@return +keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from + to:keyboard_event_pressed::@return +@21: scope:[] from @20 + to:@22 +keyboard_event_get: scope:[keyboard_event_get] from + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + to:keyboard_event_get::@3 +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5 + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + to:keyboard_event_get::@return +keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3 + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return + to:@return +keyboard_event_get::@4: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +keyboard_event_get::@2: scope:[keyboard_event_get] from keyboard_event_get::@4 keyboard_event_get::@6 + to:keyboard_event_get::@return +keyboard_event_get::@5: scope:[keyboard_event_get] from + to:keyboard_event_get::@1 +keyboard_event_get::@6: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +@22: scope:[] from @21 (byte[256]) bitmap_plot_xlo ← { fill( 256, 0) } (byte[256]) bitmap_plot_xhi ← { fill( 256, 0) } (byte[256]) bitmap_plot_ylo ← { fill( 256, 0) } (byte[256]) bitmap_plot_yhi ← { fill( 256, 0) } (byte[256]) bitmap_plot_bit ← { fill( 256, 0) } - to:@20 + to:@23 bitmap_init: scope:[bitmap_init] from (byte) bitmap_init::bits ← (byte/word/signed word/dword/signed dword) 128 (byte) bitmap_init::x ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -5189,8 +5643,8 @@ bitmap_init::@8: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@8 return to:@return -@20: scope:[] from @19 - to:@21 +@23: scope:[] from @22 + to:@24 bitmap_clear: scope:[bitmap_clear] from (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_xhi + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[256]) bitmap_plot_xlo + (byte/signed byte/word/signed word/dword/signed dword) 0) } (byte*) bitmap_clear::bitmap ← (byte*~) bitmap_clear::$0 @@ -5216,8 +5670,8 @@ bitmap_clear::@4: scope:[bitmap_clear] from bitmap_clear::@3 bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@4 return to:@return -@21: scope:[] from @20 - to:@22 +@24: scope:[] from @23 + to:@25 bitmap_plot: scope:[bitmap_plot] from (word) bitmap_plot::plotter_x ← { *((byte[256]) bitmap_plot_xhi + (byte) bitmap_plot::x), *((byte[256]) bitmap_plot_xlo + (byte) bitmap_plot::x) } (word) bitmap_plot::plotter_y ← { *((byte[256]) bitmap_plot_yhi + (byte) bitmap_plot::y), *((byte[256]) bitmap_plot_ylo + (byte) bitmap_plot::y) } @@ -5229,8 +5683,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return to:@return -@22: scope:[] from @21 - to:@23 +@25: scope:[] from @24 + to:@26 bitmap_line: scope:[bitmap_line] from (boolean~) bitmap_line::$0 ← (byte) bitmap_line::x0 < (byte) bitmap_line::x1 (boolean~) bitmap_line::$1 ← ! (boolean~) bitmap_line::$0 @@ -5333,8 +5787,8 @@ bitmap_line::@28: scope:[bitmap_line] from bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@8 return to:@return -@23: scope:[] from @22 - to:@24 +@26: scope:[] from @25 + to:@27 bitmap_line_xdyi: scope:[bitmap_line_xdyi] from (byte~) bitmap_line_xdyi::$0 ← (byte) bitmap_line_xdyi::yd >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) bitmap_line_xdyi::e ← (byte~) bitmap_line_xdyi::$0 @@ -5363,8 +5817,8 @@ bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4 return to:@return -@24: scope:[] from @23 - to:@25 +@27: scope:[] from @26 + to:@28 bitmap_line_xdyd: scope:[bitmap_line_xdyd] from (byte~) bitmap_line_xdyd::$0 ← (byte) bitmap_line_xdyd::yd >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) bitmap_line_xdyd::e ← (byte~) bitmap_line_xdyd::$0 @@ -5393,8 +5847,8 @@ bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2 bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4 return to:@return -@25: scope:[] from @24 - to:@26 +@28: scope:[] from @27 + to:@29 bitmap_line_ydxi: scope:[bitmap_line_ydxi] from (byte~) bitmap_line_ydxi::$0 ← (byte) bitmap_line_ydxi::xd >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) bitmap_line_ydxi::e ← (byte~) bitmap_line_ydxi::$0 @@ -5423,8 +5877,8 @@ bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2 bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4 return to:@return -@26: scope:[] from @25 - to:@27 +@29: scope:[] from @28 + to:@30 bitmap_line_ydxd: scope:[bitmap_line_ydxd] from (byte~) bitmap_line_ydxd::$0 ← (byte) bitmap_line_ydxd::xd >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) bitmap_line_ydxd::e ← (byte~) bitmap_line_ydxd::$0 @@ -5454,8 +5908,8 @@ bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4 return to:@return -@27: scope:[] from @26 - to:@28 +@30: scope:[] from @29 + to:@31 main: scope:[main] from asm { sei } *((byte*) PROCPORT_DDR) ← (byte) PROCPORT_DDR_MEMORY_MASK @@ -5479,29 +5933,29 @@ main::@6: scope:[main] from main::@return: scope:[main] from main::@3 return to:@return -@28: scope:[] from @27 - (string~) $0 ← (string) "C64DTV Graphics Modes CCLHBME@" + (string) " OHIIMCC@" - (string~) $1 ← (string~) $0 + (string) " LUNCMMM@" - (string~) $2 ← (string~) $1 + (string) "----------------------------------------@" - (string~) $3 ← (string~) $2 + (string) "1. Standard Char (V) 0000000@" - (string~) $4 ← (string~) $3 + (string) "2. Extended Color Char (V) 0000001@" - (string~) $5 ← (string~) $4 + (string) "3. Multicolor Char (V) 0000010@" - (string~) $6 ← (string~) $5 + (string) "4. Standard Bitmap (V) 0000100@" - (string~) $7 ← (string~) $6 + (string) "5. Multicolor Bitmap (V) 0000110@" - (string~) $8 ← (string~) $7 + (string) "6. High Color Standard Char (H) 0001000@" - (string~) $9 ← (string~) $8 + (string) "7. High Extended Color Char (H) 0001001@" - (string~) $10 ← (string~) $9 + (string) "8. High Multicolor Char (H) 0001010@" - (string~) $11 ← (string~) $10 + (string) "9. High Multicolor Bitmap (H) 0001110@" - (string~) $12 ← (string~) $11 + (string) "a. Sixs Fred 2 (D) 0010111@" - (string~) $13 ← (string~) $12 + (string) "b. Two Plane Bitmap (D) 0011101@" - (string~) $14 ← (string~) $13 + (string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" - (string~) $15 ← (string~) $14 + (string) "d. 8bpp Pixel Cell (D) 0111011@" - (string~) $16 ← (string~) $15 + (string) "e. Chunky 8bpp Bitmap (D) 1111011@" - (string~) $17 ← (string~) $16 + (string) "----------------------------------------@" - (string~) $18 ← (string~) $17 + (string) " (V) vicII (H) vicII+hicol (D) c64dtv@" - (string~) $19 ← (string~) $18 + (string) "@" - (byte[]) MENU_TEXT ← (string~) $19 - to:@29 +@31: scope:[] from @30 + (string~) $1 ← (string) "C64DTV Graphics Modes CCLHBME@" + (string) " OHIIMCC@" + (string~) $2 ← (string~) $1 + (string) " LUNCMMM@" + (string~) $3 ← (string~) $2 + (string) "----------------------------------------@" + (string~) $4 ← (string~) $3 + (string) "1. Standard Char (V) 0000000@" + (string~) $5 ← (string~) $4 + (string) "2. Extended Color Char (V) 0000001@" + (string~) $6 ← (string~) $5 + (string) "3. Multicolor Char (V) 0000010@" + (string~) $7 ← (string~) $6 + (string) "4. Standard Bitmap (V) 0000100@" + (string~) $8 ← (string~) $7 + (string) "5. Multicolor Bitmap (V) 0000110@" + (string~) $9 ← (string~) $8 + (string) "6. High Color Standard Char (H) 0001000@" + (string~) $10 ← (string~) $9 + (string) "7. High Extended Color Char (H) 0001001@" + (string~) $11 ← (string~) $10 + (string) "8. High Multicolor Char (H) 0001010@" + (string~) $12 ← (string~) $11 + (string) "9. High Multicolor Bitmap (H) 0001110@" + (string~) $13 ← (string~) $12 + (string) "a. Sixs Fred 2 (D) 0010111@" + (string~) $14 ← (string~) $13 + (string) "b. Two Plane Bitmap (D) 0011101@" + (string~) $15 ← (string~) $14 + (string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" + (string~) $16 ← (string~) $15 + (string) "d. 8bpp Pixel Cell (D) 0111011@" + (string~) $17 ← (string~) $16 + (string) "e. Chunky 8bpp Bitmap (D) 1111011@" + (string~) $18 ← (string~) $17 + (string) "----------------------------------------@" + (string~) $19 ← (string~) $18 + (string) " (V) vicII (H) vicII+hicol (D) c64dtv@" + (string~) $20 ← (string~) $19 + (string) "@" + (byte[]) MENU_TEXT ← (string~) $20 + to:@32 menu: scope:[menu] from (byte*) menu::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) menu::CHARSET ← ((byte*)) (word/dword/signed dword) 38912 @@ -5710,9 +6164,9 @@ menu::@45: scope:[menu] from to:menu::@17 menu::@46: scope:[menu] from to:menu::@5 -@29: scope:[] from @28 +@32: scope:[] from @31 (byte) dtv_control ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@30 + to:@33 mode_ctrl: scope:[mode_ctrl] from to:mode_ctrl::@1 mode_ctrl::@1: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@15 @@ -5835,8 +6289,8 @@ mode_ctrl::@30: scope:[mode_ctrl] from mode_ctrl::@14 to:mode_ctrl::@15 mode_ctrl::@31: scope:[mode_ctrl] from to:mode_ctrl::@3 -@30: scope:[] from @29 - to:@31 +@33: scope:[] from @32 + to:@34 mode_stdchar: scope:[mode_stdchar] from (byte*) mode_stdchar::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) mode_stdchar::CHARSET ← ((byte*)) (word/dword/signed dword) 36864 @@ -5918,8 +6372,8 @@ mode_stdchar::@6: scope:[mode_stdchar] from mode_stdchar::@5 mode_stdchar::@return: scope:[mode_stdchar] from mode_stdchar::@6 return to:@return -@31: scope:[] from @30 - to:@32 +@34: scope:[] from @33 + to:@35 mode_ecmchar: scope:[mode_ecmchar] from (byte*) mode_ecmchar::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) mode_ecmchar::CHARSET ← ((byte*)) (word/dword/signed dword) 36864 @@ -6005,8 +6459,8 @@ mode_ecmchar::@6: scope:[mode_ecmchar] from mode_ecmchar::@5 mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@6 return to:@return -@32: scope:[] from @31 - to:@33 +@35: scope:[] from @34 + to:@36 mode_mcchar: scope:[mode_mcchar] from (byte*) mode_mcchar::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) mode_mcchar::CHARSET ← ((byte*)) (word/dword/signed dword) 36864 @@ -6091,8 +6545,8 @@ mode_mcchar::@6: scope:[mode_mcchar] from mode_mcchar::@5 mode_mcchar::@return: scope:[mode_mcchar] from mode_mcchar::@6 return to:@return -@33: scope:[] from @32 - to:@34 +@36: scope:[] from @35 + to:@37 mode_stdbitmap: scope:[mode_stdbitmap] from (byte*) mode_stdbitmap::SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 16384 (byte*) mode_stdbitmap::BITMAP ← ((byte*)) (word/signed word/dword/signed dword) 24576 @@ -6180,8 +6634,8 @@ mode_stdbitmap::@8: scope:[mode_stdbitmap] from mode_stdbitmap::@4 mode_stdbitmap::@return: scope:[mode_stdbitmap] from mode_stdbitmap::@8 return to:@return -@34: scope:[] from @33 - to:@35 +@37: scope:[] from @36 + to:@38 mode_hicolstdchar: scope:[mode_hicolstdchar] from (byte*) mode_hicolstdchar::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) mode_hicolstdchar::CHARSET ← ((byte*)) (word/dword/signed dword) 36864 @@ -6262,8 +6716,8 @@ mode_hicolstdchar::@6: scope:[mode_hicolstdchar] from mode_hicolstdchar::@5 mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@6 return to:@return -@35: scope:[] from @34 - to:@36 +@38: scope:[] from @37 + to:@39 mode_hicolecmchar: scope:[mode_hicolecmchar] from (byte*) mode_hicolecmchar::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) mode_hicolecmchar::CHARSET ← ((byte*)) (word/dword/signed dword) 36864 @@ -6348,8 +6802,8 @@ mode_hicolecmchar::@6: scope:[mode_hicolecmchar] from mode_hicolecmchar::@5 mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@6 return to:@return -@36: scope:[] from @35 - to:@37 +@39: scope:[] from @38 + to:@40 mode_hicolmcchar: scope:[mode_hicolmcchar] from (byte*) mode_hicolmcchar::SCREEN ← ((byte*)) (word/dword/signed dword) 32768 (byte*) mode_hicolmcchar::CHARSET ← ((byte*)) (word/dword/signed dword) 36864 @@ -6433,8 +6887,8 @@ mode_hicolmcchar::@6: scope:[mode_hicolmcchar] from mode_hicolmcchar::@5 mode_hicolmcchar::@return: scope:[mode_hicolmcchar] from mode_hicolmcchar::@6 return to:@return -@37: scope:[] from @36 - to:@38 +@40: scope:[] from @39 + to:@41 mode_twoplanebitmap: scope:[mode_twoplanebitmap] from (byte*) mode_twoplanebitmap::PLANEA ← ((byte*)) (word/signed word/dword/signed dword) 16384 (byte*) mode_twoplanebitmap::PLANEB ← ((byte*)) (word/signed word/dword/signed dword) 24576 @@ -6563,8 +7017,8 @@ mode_twoplanebitmap::@18: scope:[mode_twoplanebitmap] from mode_twoplanebitmap: mode_twoplanebitmap::@return: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@18 return to:@return -@38: scope:[] from @37 - to:@39 +@41: scope:[] from @40 + to:@42 mode_sixsfred: scope:[mode_sixsfred] from (byte*) mode_sixsfred::PLANEA ← ((byte*)) (word/signed word/dword/signed dword) 16384 (byte*) mode_sixsfred::PLANEB ← ((byte*)) (word/signed word/dword/signed dword) 24576 @@ -6680,8 +7134,8 @@ mode_sixsfred::@14: scope:[mode_sixsfred] from mode_sixsfred::@13 mode_sixsfred::@return: scope:[mode_sixsfred] from mode_sixsfred::@14 return to:@return -@39: scope:[] from @38 - to:@40 +@42: scope:[] from @41 + to:@43 mode_sixsfred2: scope:[mode_sixsfred2] from (byte*) mode_sixsfred2::PLANEA ← ((byte*)) (word/signed word/dword/signed dword) 16384 (byte*) mode_sixsfred2::PLANEB ← ((byte*)) (word/signed word/dword/signed dword) 24576 @@ -6797,8 +7251,8 @@ mode_sixsfred2::@14: scope:[mode_sixsfred2] from mode_sixsfred2::@13 mode_sixsfred2::@return: scope:[mode_sixsfred2] from mode_sixsfred2::@14 return to:@return -@40: scope:[] from @39 - to:@41 +@43: scope:[] from @42 + to:@44 mode_8bpppixelcell: scope:[mode_8bpppixelcell] from (byte*) mode_8bpppixelcell::PLANEA ← ((byte*)) (word/signed word/dword/signed dword) 15360 (byte*) mode_8bpppixelcell::PLANEB ← ((byte*)) (word/signed word/dword/signed dword) 16384 @@ -6915,8 +7369,8 @@ mode_8bpppixelcell::@14: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1 mode_8bpppixelcell::@return: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@14 return to:@return -@41: scope:[] from @40 - to:@42 +@44: scope:[] from @43 + to:@45 mode_8bppchunkybmm: scope:[mode_8bppchunkybmm] from (dword) mode_8bppchunkybmm::PLANEB ← (dword/signed dword) 131072 (byte~) mode_8bppchunkybmm::$0 ← (byte) DTV_HIGHCOLOR | (byte) DTV_LINEAR @@ -7000,10 +7454,10 @@ mode_8bppchunkybmm::@8: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@return: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@8 return to:@return -@42: scope:[] from @41 +@45: scope:[] from @44 call main to:@end -@end: scope:[] from @42 +@end: scope:[] from @45 Removing unused procedure print_str_ln Removing unused procedure print_str_at @@ -7012,8 +7466,11 @@ Removing unused procedure print_sbyte Removing unused procedure print_sdword Removing unused procedure keyboard_init Removing unused procedure keyboard_get_keycode +Removing unused procedure keyboard_event_scan +Removing unused procedure keyboard_event_get Removing unused procedure print_str Removing unused procedure print_dword +Removing unused procedure keyboard_event_pressed Removing unused procedure print_word Removing unused procedure print_byte Removing unused procedure print_char @@ -7073,6 +7530,13 @@ Eliminating unused variable (byte) KEY_CTRL and assignment [194] (byte) KEY_CTRL Eliminating unused variable (byte) KEY_COMMODORE and assignment [197] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 Eliminating unused variable (byte) KEY_RUNSTOP and assignment [199] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [200] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +Eliminating unused variable (byte[8]) keyboard_events and assignment [218] (byte[8]) keyboard_events ← { fill( 8, 0) } +Eliminating unused variable (byte) keyboard_events_size and assignment [219] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) keyboard_modifiers and assignment [220] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [223] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [224] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 +Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [226] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 +Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [227] (byte[8]) keyboard_scan_values ← { fill( 8, 0) } Eliminating unused variable - keeping the call (void~) bitmap_line::$9 Eliminating unused variable - keeping the call (void~) bitmap_line::$8 Eliminating unused variable - keeping the call (void~) bitmap_line::$14 @@ -7151,27 +7615,30 @@ Eliminating unused variable (byte) KEY_ARROW_UP and assignment [139] (byte) KEY_ Eliminating unused variable (byte) KEY_SLASH and assignment [140] (byte) KEY_SLASH ← (byte/signed byte/word/signed word/dword/signed dword) 55 Eliminating unused variable (byte) KEY_ARROW_LEFT and assignment [142] (byte) KEY_ARROW_LEFT ← (byte/signed byte/word/signed word/dword/signed dword) 57 Eliminating unused variable (byte) KEY_Q and assignment [145] (byte) KEY_Q ← (byte/signed byte/word/signed word/dword/signed dword) 62 -Creating constant string variable for inline (const string) $20 "C64DTV Graphics Modes CCLHBME@" -Creating constant string variable for inline (const string) $21 " OHIIMCC@" -Creating constant string variable for inline (const string) $22 " LUNCMMM@" -Creating constant string variable for inline (const string) $23 "----------------------------------------@" -Creating constant string variable for inline (const string) $24 "1. Standard Char (V) 0000000@" -Creating constant string variable for inline (const string) $25 "2. Extended Color Char (V) 0000001@" -Creating constant string variable for inline (const string) $26 "3. Multicolor Char (V) 0000010@" -Creating constant string variable for inline (const string) $27 "4. Standard Bitmap (V) 0000100@" -Creating constant string variable for inline (const string) $28 "5. Multicolor Bitmap (V) 0000110@" -Creating constant string variable for inline (const string) $29 "6. High Color Standard Char (H) 0001000@" -Creating constant string variable for inline (const string) $30 "7. High Extended Color Char (H) 0001001@" -Creating constant string variable for inline (const string) $31 "8. High Multicolor Char (H) 0001010@" -Creating constant string variable for inline (const string) $32 "9. High Multicolor Bitmap (H) 0001110@" -Creating constant string variable for inline (const string) $33 "a. Sixs Fred 2 (D) 0010111@" -Creating constant string variable for inline (const string) $34 "b. Two Plane Bitmap (D) 0011101@" -Creating constant string variable for inline (const string) $35 "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" -Creating constant string variable for inline (const string) $36 "d. 8bpp Pixel Cell (D) 0111011@" -Creating constant string variable for inline (const string) $37 "e. Chunky 8bpp Bitmap (D) 1111011@" -Creating constant string variable for inline (const string) $38 "----------------------------------------@" -Creating constant string variable for inline (const string) $39 " (V) vicII (H) vicII+hicol (D) c64dtv@" -Creating constant string variable for inline (const string) $40 "@" +Eliminating unused variable (byte~) $0 and assignment [165] (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT +Eliminating unused variable (byte) KEY_MODIFIER_LSHIFT and assignment [131] (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) KEY_MODIFIER_RSHIFT and assignment [132] (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 +Creating constant string variable for inline (const string) $21 "C64DTV Graphics Modes CCLHBME@" +Creating constant string variable for inline (const string) $22 " OHIIMCC@" +Creating constant string variable for inline (const string) $23 " LUNCMMM@" +Creating constant string variable for inline (const string) $24 "----------------------------------------@" +Creating constant string variable for inline (const string) $25 "1. Standard Char (V) 0000000@" +Creating constant string variable for inline (const string) $26 "2. Extended Color Char (V) 0000001@" +Creating constant string variable for inline (const string) $27 "3. Multicolor Char (V) 0000010@" +Creating constant string variable for inline (const string) $28 "4. Standard Bitmap (V) 0000100@" +Creating constant string variable for inline (const string) $29 "5. Multicolor Bitmap (V) 0000110@" +Creating constant string variable for inline (const string) $30 "6. High Color Standard Char (H) 0001000@" +Creating constant string variable for inline (const string) $31 "7. High Extended Color Char (H) 0001001@" +Creating constant string variable for inline (const string) $32 "8. High Multicolor Char (H) 0001010@" +Creating constant string variable for inline (const string) $33 "9. High Multicolor Bitmap (H) 0001110@" +Creating constant string variable for inline (const string) $34 "a. Sixs Fred 2 (D) 0010111@" +Creating constant string variable for inline (const string) $35 "b. Two Plane Bitmap (D) 0011101@" +Creating constant string variable for inline (const string) $36 "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" +Creating constant string variable for inline (const string) $37 "d. 8bpp Pixel Cell (D) 0111011@" +Creating constant string variable for inline (const string) $38 "e. Chunky 8bpp Bitmap (D) 1111011@" +Creating constant string variable for inline (const string) $39 "----------------------------------------@" +Creating constant string variable for inline (const string) $40 " (V) vicII (H) vicII+hicol (D) c64dtv@" +Creating constant string variable for inline (const string) $41 "@" Removing empty block print_str_lines::@6 Removing empty block print_str_lines::@3 Removing empty block print_str_lines::@7 @@ -7194,11 +7661,14 @@ Removing empty block keyboard_matrix_read::@1 Removing empty block @17 Removing empty block keyboard_key_pressed::@1 Removing empty block @18 -Removing empty block bitmap_init::@8 +Removing empty block @19 Removing empty block @20 -Removing empty block bitmap_clear::@4 Removing empty block @21 -Removing empty block @22 +Removing empty block bitmap_init::@8 +Removing empty block @23 +Removing empty block bitmap_clear::@4 +Removing empty block @24 +Removing empty block @25 Removing empty block bitmap_line::@4 Removing empty block bitmap_line::@18 Removing empty block bitmap_line::@5 @@ -7213,15 +7683,15 @@ Removing empty block bitmap_line::@12 Removing empty block bitmap_line::@26 Removing empty block bitmap_line::@14 Removing empty block bitmap_line::@28 -Removing empty block @23 -Removing empty block bitmap_line_xdyi::@4 -Removing empty block @24 -Removing empty block bitmap_line_xdyd::@4 -Removing empty block @25 -Removing empty block bitmap_line_ydxi::@4 Removing empty block @26 -Removing empty block bitmap_line_ydxd::@4 +Removing empty block bitmap_line_xdyi::@4 Removing empty block @27 +Removing empty block bitmap_line_xdyd::@4 +Removing empty block @28 +Removing empty block bitmap_line_ydxi::@4 +Removing empty block @29 +Removing empty block bitmap_line_ydxd::@4 +Removing empty block @30 Removing empty block main::@4 Removing empty block main::@3 Removing empty block main::@5 @@ -7251,19 +7721,19 @@ Removing empty block mode_ctrl::@20 Removing empty block mode_ctrl::@21 Removing empty block mode_ctrl::@22 Removing empty block mode_ctrl::@31 -Removing empty block @30 -Removing empty block @31 -Removing empty block @32 Removing empty block @33 Removing empty block @34 Removing empty block @35 Removing empty block @36 Removing empty block @37 -Removing empty block mode_twoplanebitmap::@14 Removing empty block @38 Removing empty block @39 Removing empty block @40 +Removing empty block mode_twoplanebitmap::@14 Removing empty block @41 +Removing empty block @42 +Removing empty block @43 +Removing empty block @44 PROCEDURE MODIFY VARIABLE ANALYSIS print_str_lines modifies print_char_cursor print_str_lines modifies print_line_cursor @@ -7537,8 +8007,8 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } - to:@19 + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + to:@22 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 ) *((byte*) CIA1_PORT_A#0) ← *((byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#1) @@ -7565,7 +8035,7 @@ keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_presse (byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 ) (byte) keyboard_matrix_read::return#4 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 ) (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#4 - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 @@ -7573,7 +8043,7 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p (byte) keyboard_key_pressed::return#1 ← (byte) keyboard_key_pressed::return#22 return to:@return -@19: scope:[] from @15 +@22: scope:[] from @15 (byte*) print_char_cursor#85 ← phi( @15/(byte*) print_char_cursor#99 ) (byte*) print_line_cursor#85 ← phi( @15/(byte*) print_line_cursor#99 ) (byte*) print_screen#66 ← phi( @15/(byte*) print_screen#80 ) @@ -7582,7 +8052,7 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p (byte[256]) bitmap_plot_ylo#0 ← { fill( 256, 0) } (byte[256]) bitmap_plot_yhi#0 ← { fill( 256, 0) } (byte[256]) bitmap_plot_bit#0 ← { fill( 256, 0) } - to:@28 + to:@31 bitmap_init: scope:[bitmap_init] from mode_stdbitmap::@7 (byte*) bitmap_init::bitmap#2 ← phi( mode_stdbitmap::@7/(byte*) bitmap_init::bitmap#0 ) (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) 128 @@ -8133,11 +8603,11 @@ bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@5 bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 return to:@return -main: scope:[main] from @42 - (byte) dtv_control#130 ← phi( @42/(byte) dtv_control#129 ) - (byte*) print_char_cursor#55 ← phi( @42/(byte*) print_char_cursor#51 ) - (byte*) print_line_cursor#52 ← phi( @42/(byte*) print_line_cursor#49 ) - (byte*) print_screen#34 ← phi( @42/(byte*) print_screen#33 ) +main: scope:[main] from @45 + (byte) dtv_control#130 ← phi( @45/(byte) dtv_control#129 ) + (byte*) print_char_cursor#55 ← phi( @45/(byte*) print_char_cursor#51 ) + (byte*) print_line_cursor#52 ← phi( @45/(byte*) print_line_cursor#49 ) + (byte*) print_screen#34 ← phi( @45/(byte*) print_screen#33 ) asm { sei } *((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 @@ -8178,12 +8648,11 @@ main::@return: scope:[main] from main::@1 (byte) dtv_control#1 ← (byte) dtv_control#56 return to:@return -@28: scope:[] from @19 - (byte*) print_char_cursor#84 ← phi( @19/(byte*) print_char_cursor#85 ) - (byte*) print_line_cursor#83 ← phi( @19/(byte*) print_line_cursor#85 ) - (byte*) print_screen#65 ← phi( @19/(byte*) print_screen#66 ) - (string~) $0 ← (const string) $20 + (const string) $21 - (string~) $1 ← (string~) $0 + (const string) $22 +@31: scope:[] from @22 + (byte*) print_char_cursor#84 ← phi( @22/(byte*) print_char_cursor#85 ) + (byte*) print_line_cursor#83 ← phi( @22/(byte*) print_line_cursor#85 ) + (byte*) print_screen#65 ← phi( @22/(byte*) print_screen#66 ) + (string~) $1 ← (const string) $21 + (const string) $22 (string~) $2 ← (string~) $1 + (const string) $23 (string~) $3 ← (string~) $2 + (const string) $24 (string~) $4 ← (string~) $3 + (const string) $25 @@ -8202,8 +8671,9 @@ main::@return: scope:[main] from main::@1 (string~) $17 ← (string~) $16 + (const string) $38 (string~) $18 ← (string~) $17 + (const string) $39 (string~) $19 ← (string~) $18 + (const string) $40 - (byte[]) MENU_TEXT#0 ← (string~) $19 - to:@29 + (string~) $20 ← (string~) $19 + (const string) $41 + (byte[]) MENU_TEXT#0 ← (string~) $20 + to:@32 menu: scope:[menu] from main::@2 (byte) dtv_control#255 ← phi( main::@2/(byte) dtv_control#98 ) (byte*) print_char_cursor#100 ← phi( main::@2/(byte*) print_char_cursor#35 ) @@ -8745,12 +9215,12 @@ menu::@73: scope:[menu] from menu::@44 (byte) dtv_control#69 ← phi( menu::@44/(byte) dtv_control#53 ) (byte) dtv_control#14 ← (byte) dtv_control#69 to:menu::@return -@29: scope:[] from @28 - (byte*) print_char_cursor#70 ← phi( @28/(byte*) print_char_cursor#84 ) - (byte*) print_line_cursor#67 ← phi( @28/(byte*) print_line_cursor#83 ) - (byte*) print_screen#50 ← phi( @28/(byte*) print_screen#65 ) +@32: scope:[] from @31 + (byte*) print_char_cursor#70 ← phi( @31/(byte*) print_char_cursor#84 ) + (byte*) print_line_cursor#67 ← phi( @31/(byte*) print_line_cursor#83 ) + (byte*) print_screen#50 ← phi( @31/(byte*) print_screen#65 ) (byte) dtv_control#15 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@42 + to:@45 mode_ctrl: scope:[mode_ctrl] from mode_8bppchunkybmm::@11 mode_8bpppixelcell::@14 mode_ecmchar::@6 mode_hicolecmchar::@6 mode_hicolmcchar::@6 mode_hicolstdchar::@6 mode_mcchar::@6 mode_sixsfred2::@14 mode_sixsfred::@14 mode_stdbitmap::@8 mode_stdchar::@6 mode_twoplanebitmap::@18 (byte) dtv_control#145 ← phi( mode_8bppchunkybmm::@11/(byte) dtv_control#128 mode_8bpppixelcell::@14/(byte) dtv_control#127 mode_ecmchar::@6/(byte) dtv_control#118 mode_hicolecmchar::@6/(byte) dtv_control#122 mode_hicolmcchar::@6/(byte) dtv_control#123 mode_hicolstdchar::@6/(byte) dtv_control#121 mode_mcchar::@6/(byte) dtv_control#119 mode_sixsfred2::@14/(byte) dtv_control#126 mode_sixsfred::@14/(byte) dtv_control#125 mode_stdbitmap::@8/(byte) dtv_control#120 mode_stdchar::@6/(byte) dtv_control#117 mode_twoplanebitmap::@18/(byte) dtv_control#124 ) to:mode_ctrl::@1 @@ -10527,27 +10997,26 @@ mode_8bppchunkybmm::@return: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm (byte) dtv_control#53 ← (byte) dtv_control#96 return to:@return -@42: scope:[] from @29 - (byte) dtv_control#129 ← phi( @29/(byte) dtv_control#15 ) - (byte*) print_char_cursor#51 ← phi( @29/(byte*) print_char_cursor#70 ) - (byte*) print_line_cursor#49 ← phi( @29/(byte*) print_line_cursor#67 ) - (byte*) print_screen#33 ← phi( @29/(byte*) print_screen#50 ) +@45: scope:[] from @32 + (byte) dtv_control#129 ← phi( @32/(byte) dtv_control#15 ) + (byte*) print_char_cursor#51 ← phi( @32/(byte*) print_char_cursor#70 ) + (byte*) print_line_cursor#49 ← phi( @32/(byte*) print_line_cursor#67 ) + (byte*) print_screen#33 ← phi( @32/(byte*) print_screen#50 ) call main param-assignment - to:@43 -@43: scope:[] from @42 - (byte) dtv_control#97 ← phi( @42/(byte) dtv_control#1 ) - (byte*) print_char_cursor#30 ← phi( @42/(byte*) print_char_cursor#11 ) - (byte*) print_line_cursor#29 ← phi( @42/(byte*) print_line_cursor#10 ) - (byte*) print_screen#16 ← phi( @42/(byte*) print_screen#4 ) + to:@46 +@46: scope:[] from @45 + (byte) dtv_control#97 ← phi( @45/(byte) dtv_control#1 ) + (byte*) print_char_cursor#30 ← phi( @45/(byte*) print_char_cursor#11 ) + (byte*) print_line_cursor#29 ← phi( @45/(byte*) print_line_cursor#10 ) + (byte*) print_screen#16 ← phi( @45/(byte*) print_screen#4 ) (byte*) print_screen#7 ← (byte*) print_screen#16 (byte*) print_line_cursor#15 ← (byte*) print_line_cursor#29 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#30 (byte) dtv_control#54 ← (byte) dtv_control#97 to:@end -@end: scope:[] from @43 +@end: scope:[] from @46 SYMBOL TABLE SSA -(string~) $0 (string~) $1 (string~) $10 (string~) $11 @@ -10560,29 +11029,30 @@ SYMBOL TABLE SSA (string~) $18 (string~) $19 (string~) $2 -(const string) $20 = (string) "C64DTV Graphics Modes CCLHBME@" -(const string) $21 = (string) " OHIIMCC@" -(const string) $22 = (string) " LUNCMMM@" -(const string) $23 = (string) "----------------------------------------@" -(const string) $24 = (string) "1. Standard Char (V) 0000000@" -(const string) $25 = (string) "2. Extended Color Char (V) 0000001@" -(const string) $26 = (string) "3. Multicolor Char (V) 0000010@" -(const string) $27 = (string) "4. Standard Bitmap (V) 0000100@" -(const string) $28 = (string) "5. Multicolor Bitmap (V) 0000110@" -(const string) $29 = (string) "6. High Color Standard Char (H) 0001000@" +(string~) $20 +(const string) $21 = (string) "C64DTV Graphics Modes CCLHBME@" +(const string) $22 = (string) " OHIIMCC@" +(const string) $23 = (string) " LUNCMMM@" +(const string) $24 = (string) "----------------------------------------@" +(const string) $25 = (string) "1. Standard Char (V) 0000000@" +(const string) $26 = (string) "2. Extended Color Char (V) 0000001@" +(const string) $27 = (string) "3. Multicolor Char (V) 0000010@" +(const string) $28 = (string) "4. Standard Bitmap (V) 0000100@" +(const string) $29 = (string) "5. Multicolor Bitmap (V) 0000110@" (string~) $3 -(const string) $30 = (string) "7. High Extended Color Char (H) 0001001@" -(const string) $31 = (string) "8. High Multicolor Char (H) 0001010@" -(const string) $32 = (string) "9. High Multicolor Bitmap (H) 0001110@" -(const string) $33 = (string) "a. Sixs Fred 2 (D) 0010111@" -(const string) $34 = (string) "b. Two Plane Bitmap (D) 0011101@" -(const string) $35 = (string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" -(const string) $36 = (string) "d. 8bpp Pixel Cell (D) 0111011@" -(const string) $37 = (string) "e. Chunky 8bpp Bitmap (D) 1111011@" -(const string) $38 = (string) "----------------------------------------@" -(const string) $39 = (string) " (V) vicII (H) vicII+hicol (D) c64dtv@" +(const string) $30 = (string) "6. High Color Standard Char (H) 0001000@" +(const string) $31 = (string) "7. High Extended Color Char (H) 0001001@" +(const string) $32 = (string) "8. High Multicolor Char (H) 0001010@" +(const string) $33 = (string) "9. High Multicolor Bitmap (H) 0001110@" +(const string) $34 = (string) "a. Sixs Fred 2 (D) 0010111@" +(const string) $35 = (string) "b. Two Plane Bitmap (D) 0011101@" +(const string) $36 = (string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@" +(const string) $37 = (string) "d. 8bpp Pixel Cell (D) 0111011@" +(const string) $38 = (string) "e. Chunky 8bpp Bitmap (D) 1111011@" +(const string) $39 = (string) "----------------------------------------@" (string~) $4 -(const string) $40 = (string) "@" +(const string) $40 = (string) " (V) vicII (H) vicII+hicol (D) c64dtv@" +(const string) $41 = (string) "@" (string~) $5 (string~) $6 (string~) $7 @@ -10590,11 +11060,11 @@ SYMBOL TABLE SSA (string~) $9 (label) @1 (label) @15 -(label) @19 -(label) @28 -(label) @29 -(label) @42 -(label) @43 +(label) @22 +(label) @31 +(label) @32 +(label) @45 +(label) @46 (label) @begin (label) @end (byte*) BGCOL @@ -11626,8 +12096,8 @@ SYMBOL TABLE SSA (byte) keyboard_key_pressed::return#9 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 -(byte[]) keyboard_matrix_col_bitmask -(byte[]) keyboard_matrix_col_bitmask#0 +(byte[8]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask#0 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -13632,7 +14102,7 @@ Alias (byte*) print_screen#12 = (byte*) print_screen#3 Alias (byte*) print_line_cursor#23 = (byte*) print_line_cursor#9 Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#24 Alias (byte) dtv_control#0 = (byte) dtv_control#55 -Alias (byte[]) MENU_TEXT#0 = (string~) $19 +Alias (byte[]) MENU_TEXT#0 = (string~) $20 Alias (byte*) print_screen#51 = (byte*) print_screen#67 Alias (byte*) print_line_cursor#70 = (byte*) print_line_cursor#86 Alias (byte*) print_char_cursor#71 = (byte*) print_char_cursor#86 @@ -14759,7 +15229,7 @@ Constant (const byte) KEY_1#0 = 56 Constant (const byte) KEY_2#0 = 59 Constant (const byte) KEY_SPACE#0 = 60 Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } Constant (const byte[256]) bitmap_plot_xlo#0 = { fill( 256, 0) } Constant (const byte[256]) bitmap_plot_xhi#0 = { fill( 256, 0) } Constant (const byte[256]) bitmap_plot_ylo#0 = { fill( 256, 0) } @@ -14773,7 +15243,7 @@ Constant (const byte) bitmap_init::y#0 = 0 Constant (const word/signed word/dword/signed dword) bitmap_init::$13 = 40*8 Constant (const byte) bitmap_clear::y#0 = 0 Constant (const byte) bitmap_clear::x#0 = 0 -Constant (const string) $0 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@" +Constant (const string) $1 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@" Constant (const byte*) menu::SCREEN#0 = ((byte*))32768 Constant (const byte*) menu::CHARSET#0 = ((byte*))38912 Constant (const byte) menu::i#0 = 0 @@ -14879,7 +15349,7 @@ Constant (const word) mode_8bppchunkybmm::x#0 = 0 Constant (const byte*) mode_8bppchunkybmm::gfxb#2 = ((byte*))16384 Constant (const byte/signed byte/word/signed word/dword/signed dword) mode_8bppchunkybmm::$27 = 16384/16384 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $1 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@" +Constant (const string) $2 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@" Constant (const dword) menu::$0 = ((dword))menu::CHARSET#0 Constant (const dword) menu::$3 = DTV_COLOR_BANK_DEFAULT#0/1024 Constant (const dword) menu::$6 = DTV_COLOR_BANK_DEFAULT#0/1024 @@ -15011,7 +15481,7 @@ Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))mode_8bppchu Succesful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_screen#1 = print_set_screen::screen#0 Constant (const byte) bitmap_init::$1 = >bitmap_init::bitmap#0 -Constant (const string) $2 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@" +Constant (const string) $3 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@" Constant (const dword) menu::$1 = menu::$0/65536 Constant (const word) menu::$4 = ((word))menu::$3 Constant (const word) menu::$7 = ((word))menu::$6 @@ -15088,7 +15558,7 @@ Constant (const byte) mode_8bppchunkybmm::gfxbCpuBank#0 = ((byte))mode_8bppchunk Succesful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_screen#1 Constant (const byte*) print_cls::$0 = print_screen#1+1000 -Constant (const string) $3 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@" +Constant (const string) $4 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@" Constant (const byte) menu::$2 = ((byte))menu::$1 Constant (const byte) menu::$5 = menu::$7 @@ -15148,7 +15618,7 @@ Constant (const byte/word/dword) mode_8bppchunkybmm::$8 = mode_8bppchunkybmm::$7 Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#0 = mode_8bppchunkybmm::gfxbCpuBank#0 Constant (const byte) mode_8bppchunkybmm::gfxbCpuBank#1 = ++mode_8bppchunkybmm::gfxbCpuBank#0 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $4 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@" +Constant (const string) $5 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@" Constant (const byte/word/dword) menu::$12 = 3^menu::$11 Constant (const word/dword) menu::$21 = menu::$17|menu::$20 Constant (const byte/word/dword) mode_stdchar::$12 = 3^mode_stdchar::$11 @@ -15169,7 +15639,7 @@ Constant (const byte/word/dword) mode_twoplanebitmap::$5 = mode_twoplanebitmap:: Constant (const byte/word/dword) mode_sixsfred::$5 = mode_sixsfred::$4|3 Constant (const byte/word/dword) mode_sixsfred2::$3 = mode_sixsfred2::$2|3 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $5 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@" +Constant (const string) $6 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@" Constant (const byte) menu::$22 = ((byte))menu::$21 Constant (const byte) mode_stdchar::$22 = ((byte))mode_stdchar::$21 Constant (const byte) mode_ecmchar::$23 = ((byte))mode_ecmchar::$22 @@ -15179,31 +15649,31 @@ Constant (const byte) mode_hicolstdchar::$22 = ((byte))mode_hicolstdchar::$21 Constant (const byte) mode_hicolecmchar::$23 = ((byte))mode_hicolecmchar::$22 Constant (const byte) mode_hicolmcchar::$23 = ((byte))mode_hicolmcchar::$22 Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $6 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@" +Constant (const string) $7 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $7 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@" +Constant (const string) $8 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $8 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@" +Constant (const string) $9 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $9 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@" +Constant (const string) $10 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $10 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@" +Constant (const string) $11 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $11 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@" +Constant (const string) $12 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $12 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@" +Constant (const string) $13 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $13 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@" +Constant (const string) $14 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $14 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@" +Constant (const string) $15 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $15 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@" +Constant (const string) $16 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $16 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@" +Constant (const string) $17 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $17 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@"+"----------------------------------------@" +Constant (const string) $18 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@"+"----------------------------------------@" Succesful SSA optimization Pass2ConstantIdentification -Constant (const string) $18 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@"+"----------------------------------------@"+" (V) vicII (H) vicII+hicol (D) c64dtv@" +Constant (const string) $19 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@"+"----------------------------------------@"+" (V) vicII (H) vicII+hicol (D) c64dtv@" Succesful SSA optimization Pass2ConstantIdentification Constant (const string) MENU_TEXT#0 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@"+"----------------------------------------@"+" (V) vicII (H) vicII+hicol (D) c64dtv@"+"@" Succesful SSA optimization Pass2ConstantIdentification @@ -15255,7 +15725,6 @@ Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mod Eliminating unused variable - keeping the phi block (byte*) print_screen#13 Eliminating unused variable - keeping the phi block (byte*) print_line_cursor#10 Eliminating unused variable - keeping the phi block (byte*) print_char_cursor#11 -Eliminating unused constant (const string) $20 Eliminating unused constant (const string) $21 Eliminating unused constant (const string) $22 Eliminating unused constant (const string) $23 @@ -15276,7 +15745,7 @@ Eliminating unused constant (const string) $37 Eliminating unused constant (const string) $38 Eliminating unused constant (const string) $39 Eliminating unused constant (const string) $40 -Eliminating unused constant (const string) $0 +Eliminating unused constant (const string) $41 Eliminating unused constant (const string) $1 Eliminating unused constant (const string) $2 Eliminating unused constant (const string) $3 @@ -15295,6 +15764,7 @@ Eliminating unused constant (const string) $15 Eliminating unused constant (const string) $16 Eliminating unused constant (const string) $17 Eliminating unused constant (const string) $18 +Eliminating unused constant (const string) $19 Succesful SSA optimization PassNEliminateUnusedVars Eliminating unused constant (const byte*) print_screen#0 Succesful SSA optimization PassNEliminateUnusedVars @@ -15307,11 +15777,11 @@ Culled Empty Block (label) print_str_lines::@11 Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) @15 -Culled Empty Block (label) @19 +Culled Empty Block (label) @22 Not culling empty block because it shares successor with its predecessor. (label) bitmap_init::@5 Culled Empty Block (label) bitmap_init::@6 Culled Empty Block (label) main::@7 -Culled Empty Block (label) @28 +Culled Empty Block (label) @31 Culled Empty Block (label) menu::@18 Culled Empty Block (label) menu::@49 Culled Empty Block (label) menu::@52 @@ -15327,7 +15797,7 @@ Culled Empty Block (label) menu::@70 Culled Empty Block (label) menu::@72 Culled Empty Block (label) menu::@17 Culled Empty Block (label) menu::@73 -Culled Empty Block (label) @29 +Culled Empty Block (label) @32 Culled Empty Block (label) mode_ctrl::@2 Culled Empty Block (label) mode_ctrl::@5 Not culling empty block because it shares successor with its predecessor. (label) mode_ctrl::@29 @@ -15354,7 +15824,7 @@ Not culling empty block because it shares successor with its predecessor. (label Culled Empty Block (label) mode_8bpppixelcell::@15 Culled Empty Block (label) mode_8bppchunkybmm::@9 Culled Empty Block (label) mode_8bppchunkybmm::@12 -Culled Empty Block (label) @43 +Culled Empty Block (label) @46 Succesful SSA optimization Pass2CullEmptyBlocks Not culling empty block because it shares successor with its predecessor. (label) bitmap_init::@5 Not culling empty block because it shares successor with its predecessor. (label) mode_ctrl::@29 @@ -16669,7 +17139,7 @@ Constant inlined bitmap_init::$1 = >(const byte*) mode_stdbitmap::BITMAP#0 Constant inlined dtv_control#39 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 Constant inlined dtv_control#36 = (const byte) DTV_HIGHCOLOR#0 Succesful SSA optimization Pass2ConstantInlining -Block Sequence Planned @begin @42 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@19 menu::@47 menu::@48 menu::@3 menu::@return menu::@4 menu::@50 menu::@22 menu::@6 menu::@51 menu::@24 menu::@7 menu::@53 menu::@26 menu::@8 menu::@55 menu::@28 menu::@9 menu::@57 menu::@30 menu::@10 menu::@59 menu::@32 menu::@11 menu::@61 menu::@34 menu::@12 menu::@63 menu::@36 menu::@13 menu::@65 menu::@38 menu::@14 menu::@67 menu::@40 menu::@15 menu::@69 menu::@42 menu::@16 menu::@71 menu::@44 mode_8bppchunkybmm mode_8bppchunkybmm::@1 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@return mode_ctrl mode_ctrl::@1 mode_ctrl::@return mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@32 mode_ctrl::@7 mode_ctrl::@33 mode_ctrl::@23 mode_ctrl::@8 mode_ctrl::@34 mode_ctrl::@24 mode_ctrl::@9 mode_ctrl::@35 mode_ctrl::@25 mode_ctrl::@10 mode_ctrl::@36 mode_ctrl::@26 mode_ctrl::@11 mode_ctrl::@37 mode_ctrl::@27 mode_ctrl::@12 mode_ctrl::@38 mode_ctrl::@28 mode_ctrl::@13 mode_ctrl::@39 mode_ctrl::@29 mode_ctrl::@14 mode_ctrl::@30 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return dtvSetCpuBankSegment1 dtvSetCpuBankSegment1::@return mode_8bpppixelcell mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@9 mode_8bpppixelcell::@10 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@6 mode_8bpppixelcell::@11 mode_8bpppixelcell::@7 mode_8bpppixelcell::@12 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@return mode_sixsfred mode_sixsfred::@1 mode_sixsfred::@8 mode_sixsfred::@2 mode_sixsfred::@3 mode_sixsfred::@9 mode_sixsfred::@4 mode_sixsfred::@5 mode_sixsfred::@11 mode_sixsfred::@6 mode_sixsfred::@7 mode_sixsfred::@13 mode_sixsfred::@14 mode_sixsfred::@return mode_twoplanebitmap mode_twoplanebitmap::@1 mode_twoplanebitmap::@10 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@11 mode_twoplanebitmap::@4 mode_twoplanebitmap::@5 mode_twoplanebitmap::@13 mode_twoplanebitmap::@7 mode_twoplanebitmap::@15 mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 mode_twoplanebitmap::@17 mode_twoplanebitmap::@18 mode_twoplanebitmap::@return mode_twoplanebitmap::@6 mode_sixsfred2 mode_sixsfred2::@1 mode_sixsfred2::@8 mode_sixsfred2::@2 mode_sixsfred2::@3 mode_sixsfred2::@9 mode_sixsfred2::@4 mode_sixsfred2::@5 mode_sixsfred2::@11 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@13 mode_sixsfred2::@14 mode_sixsfred2::@return mode_hicolmcchar mode_hicolmcchar::@1 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@3 mode_hicolmcchar::@5 mode_hicolmcchar::@6 mode_hicolmcchar::@return mode_hicolecmchar mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 mode_hicolecmchar::@5 mode_hicolecmchar::@6 mode_hicolecmchar::@return mode_hicolstdchar mode_hicolstdchar::@1 mode_hicolstdchar::@4 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@5 mode_hicolstdchar::@6 mode_hicolstdchar::@return mode_stdbitmap mode_stdbitmap::@1 mode_stdbitmap::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@4 mode_stdbitmap::@11 mode_stdbitmap::@8 mode_stdbitmap::@return bitmap_line bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@return bitmap_line::@3 bitmap_line::@2 bitmap_line::@20 bitmap_line::@6 bitmap_line::@1 bitmap_line::@23 bitmap_line::@24 bitmap_line::@10 bitmap_line::@9 bitmap_line::@27 bitmap_line::@13 bitmap_line_ydxi bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 bitmap_line_ydxi::@3 bitmap_line_ydxi::@2 bitmap_line_ydxi::@return bitmap_plot bitmap_plot::@return bitmap_line_xdyi bitmap_line_xdyi::@1 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@2 bitmap_line_xdyi::@return bitmap_line_ydxd bitmap_line_ydxd::@1 bitmap_line_ydxd::@5 bitmap_line_ydxd::@3 bitmap_line_ydxd::@2 bitmap_line_ydxd::@return bitmap_line_xdyd bitmap_line_xdyd::@1 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@2 bitmap_line_xdyd::@return bitmap_clear bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@3 bitmap_clear::@return bitmap_init bitmap_init::@1 bitmap_init::@5 bitmap_init::@2 bitmap_init::@3 bitmap_init::@7 bitmap_init::@4 bitmap_init::@return mode_mcchar mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@5 mode_mcchar::@6 mode_mcchar::@return mode_ecmchar mode_ecmchar::@1 mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@3 mode_ecmchar::@5 mode_ecmchar::@6 mode_ecmchar::@return mode_stdchar mode_stdchar::@1 mode_stdchar::@4 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@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 @45 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@19 menu::@47 menu::@48 menu::@3 menu::@return menu::@4 menu::@50 menu::@22 menu::@6 menu::@51 menu::@24 menu::@7 menu::@53 menu::@26 menu::@8 menu::@55 menu::@28 menu::@9 menu::@57 menu::@30 menu::@10 menu::@59 menu::@32 menu::@11 menu::@61 menu::@34 menu::@12 menu::@63 menu::@36 menu::@13 menu::@65 menu::@38 menu::@14 menu::@67 menu::@40 menu::@15 menu::@69 menu::@42 menu::@16 menu::@71 menu::@44 mode_8bppchunkybmm mode_8bppchunkybmm::@1 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@return mode_ctrl mode_ctrl::@1 mode_ctrl::@return mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@32 mode_ctrl::@7 mode_ctrl::@33 mode_ctrl::@23 mode_ctrl::@8 mode_ctrl::@34 mode_ctrl::@24 mode_ctrl::@9 mode_ctrl::@35 mode_ctrl::@25 mode_ctrl::@10 mode_ctrl::@36 mode_ctrl::@26 mode_ctrl::@11 mode_ctrl::@37 mode_ctrl::@27 mode_ctrl::@12 mode_ctrl::@38 mode_ctrl::@28 mode_ctrl::@13 mode_ctrl::@39 mode_ctrl::@29 mode_ctrl::@14 mode_ctrl::@30 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return dtvSetCpuBankSegment1 dtvSetCpuBankSegment1::@return mode_8bpppixelcell mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@9 mode_8bpppixelcell::@10 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@6 mode_8bpppixelcell::@11 mode_8bpppixelcell::@7 mode_8bpppixelcell::@12 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@return mode_sixsfred mode_sixsfred::@1 mode_sixsfred::@8 mode_sixsfred::@2 mode_sixsfred::@3 mode_sixsfred::@9 mode_sixsfred::@4 mode_sixsfred::@5 mode_sixsfred::@11 mode_sixsfred::@6 mode_sixsfred::@7 mode_sixsfred::@13 mode_sixsfred::@14 mode_sixsfred::@return mode_twoplanebitmap mode_twoplanebitmap::@1 mode_twoplanebitmap::@10 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@11 mode_twoplanebitmap::@4 mode_twoplanebitmap::@5 mode_twoplanebitmap::@13 mode_twoplanebitmap::@7 mode_twoplanebitmap::@15 mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 mode_twoplanebitmap::@17 mode_twoplanebitmap::@18 mode_twoplanebitmap::@return mode_twoplanebitmap::@6 mode_sixsfred2 mode_sixsfred2::@1 mode_sixsfred2::@8 mode_sixsfred2::@2 mode_sixsfred2::@3 mode_sixsfred2::@9 mode_sixsfred2::@4 mode_sixsfred2::@5 mode_sixsfred2::@11 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@13 mode_sixsfred2::@14 mode_sixsfred2::@return mode_hicolmcchar mode_hicolmcchar::@1 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@3 mode_hicolmcchar::@5 mode_hicolmcchar::@6 mode_hicolmcchar::@return mode_hicolecmchar mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 mode_hicolecmchar::@5 mode_hicolecmchar::@6 mode_hicolecmchar::@return mode_hicolstdchar mode_hicolstdchar::@1 mode_hicolstdchar::@4 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@5 mode_hicolstdchar::@6 mode_hicolstdchar::@return mode_stdbitmap mode_stdbitmap::@1 mode_stdbitmap::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@4 mode_stdbitmap::@11 mode_stdbitmap::@8 mode_stdbitmap::@return bitmap_line bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@return bitmap_line::@3 bitmap_line::@2 bitmap_line::@20 bitmap_line::@6 bitmap_line::@1 bitmap_line::@23 bitmap_line::@24 bitmap_line::@10 bitmap_line::@9 bitmap_line::@27 bitmap_line::@13 bitmap_line_ydxi bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 bitmap_line_ydxi::@3 bitmap_line_ydxi::@2 bitmap_line_ydxi::@return bitmap_plot bitmap_plot::@return bitmap_line_xdyi bitmap_line_xdyi::@1 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@2 bitmap_line_xdyi::@return bitmap_line_ydxd bitmap_line_ydxd::@1 bitmap_line_ydxd::@5 bitmap_line_ydxd::@3 bitmap_line_ydxd::@2 bitmap_line_ydxd::@return bitmap_line_xdyd bitmap_line_xdyd::@1 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@2 bitmap_line_xdyd::@return bitmap_clear bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@3 bitmap_clear::@return bitmap_init bitmap_init::@1 bitmap_init::@5 bitmap_init::@2 bitmap_init::@3 bitmap_init::@7 bitmap_init::@4 bitmap_init::@return mode_mcchar mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@5 mode_mcchar::@6 mode_mcchar::@return mode_ecmchar mode_ecmchar::@1 mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@3 mode_ecmchar::@5 mode_ecmchar::@6 mode_ecmchar::@return mode_stdchar mode_stdchar::@1 mode_stdchar::@4 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@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::@74(between menu::@1 and menu::@1) Added new block during phi lifting menu::@75(between menu::@2 and menu::@2) Added new block during phi lifting menu::@76(between menu::@3 and menu::@return) @@ -16752,9 +17222,9 @@ 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 @42 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@19 menu::@47 menu::@48 menu::@3 menu::@76 menu::@return menu::@4 menu::@50 menu::@22 menu::@6 menu::@51 menu::@24 menu::@7 menu::@53 menu::@26 menu::@8 menu::@55 menu::@28 menu::@9 menu::@57 menu::@30 menu::@10 menu::@59 menu::@32 menu::@11 menu::@61 menu::@34 menu::@12 menu::@63 menu::@36 menu::@13 menu::@65 menu::@38 menu::@14 menu::@67 menu::@40 menu::@15 menu::@69 menu::@42 menu::@16 menu::@71 menu::@44 menu::@75 menu::@74 mode_8bppchunkybmm mode_8bppchunkybmm::@1 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@return mode_8bppchunkybmm::@14 mode_8bppchunkybmm::@15 mode_8bppchunkybmm::@16 mode_8bppchunkybmm::@13 mode_ctrl mode_ctrl::@1 mode_ctrl::@return mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@32 mode_ctrl::@7 mode_ctrl::@33 mode_ctrl::@23 mode_ctrl::@8 mode_ctrl::@34 mode_ctrl::@24 mode_ctrl::@9 mode_ctrl::@35 mode_ctrl::@25 mode_ctrl::@10 mode_ctrl::@36 mode_ctrl::@26 mode_ctrl::@11 mode_ctrl::@37 mode_ctrl::@27 mode_ctrl::@12 mode_ctrl::@38 mode_ctrl::@28 mode_ctrl::@13 mode_ctrl::@39 mode_ctrl::@29 mode_ctrl::@14 mode_ctrl::@30 mode_ctrl::@46 mode_ctrl::@45 mode_ctrl::@44 mode_ctrl::@43 mode_ctrl::@42 mode_ctrl::@41 mode_ctrl::@40 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return dtvSetCpuBankSegment1 dtvSetCpuBankSegment1::@return mode_8bpppixelcell mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@9 mode_8bpppixelcell::@10 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@6 mode_8bpppixelcell::@11 mode_8bpppixelcell::@7 mode_8bpppixelcell::@12 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@return mode_8bpppixelcell::@19 mode_8bpppixelcell::@20 mode_8bpppixelcell::@21 mode_8bpppixelcell::@17 mode_8bpppixelcell::@18 mode_8bpppixelcell::@16 mode_sixsfred mode_sixsfred::@1 mode_sixsfred::@8 mode_sixsfred::@2 mode_sixsfred::@3 mode_sixsfred::@9 mode_sixsfred::@4 mode_sixsfred::@5 mode_sixsfred::@11 mode_sixsfred::@6 mode_sixsfred::@7 mode_sixsfred::@13 mode_sixsfred::@14 mode_sixsfred::@return mode_sixsfred::@21 mode_sixsfred::@22 mode_sixsfred::@19 mode_sixsfred::@20 mode_sixsfred::@17 mode_sixsfred::@18 mode_sixsfred::@16 mode_twoplanebitmap mode_twoplanebitmap::@1 mode_twoplanebitmap::@10 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@11 mode_twoplanebitmap::@4 mode_twoplanebitmap::@5 mode_twoplanebitmap::@13 mode_twoplanebitmap::@7 mode_twoplanebitmap::@15 mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 mode_twoplanebitmap::@17 mode_twoplanebitmap::@18 mode_twoplanebitmap::@return mode_twoplanebitmap::@25 mode_twoplanebitmap::@26 mode_twoplanebitmap::@23 mode_twoplanebitmap::@24 mode_twoplanebitmap::@6 mode_twoplanebitmap::@21 mode_twoplanebitmap::@22 mode_twoplanebitmap::@20 mode_sixsfred2 mode_sixsfred2::@1 mode_sixsfred2::@8 mode_sixsfred2::@2 mode_sixsfred2::@3 mode_sixsfred2::@9 mode_sixsfred2::@4 mode_sixsfred2::@5 mode_sixsfred2::@11 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@13 mode_sixsfred2::@14 mode_sixsfred2::@return mode_sixsfred2::@21 mode_sixsfred2::@22 mode_sixsfred2::@19 mode_sixsfred2::@20 mode_sixsfred2::@17 mode_sixsfred2::@18 mode_sixsfred2::@16 mode_hicolmcchar mode_hicolmcchar::@1 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@3 mode_hicolmcchar::@5 mode_hicolmcchar::@6 mode_hicolmcchar::@return mode_hicolmcchar::@9 mode_hicolmcchar::@10 mode_hicolmcchar::@8 mode_hicolecmchar mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 mode_hicolecmchar::@5 mode_hicolecmchar::@6 mode_hicolecmchar::@return mode_hicolecmchar::@9 mode_hicolecmchar::@10 mode_hicolecmchar::@8 mode_hicolstdchar mode_hicolstdchar::@1 mode_hicolstdchar::@4 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@5 mode_hicolstdchar::@6 mode_hicolstdchar::@return mode_hicolstdchar::@9 mode_hicolstdchar::@10 mode_hicolstdchar::@8 mode_stdbitmap mode_stdbitmap::@1 mode_stdbitmap::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@4 mode_stdbitmap::@11 mode_stdbitmap::@8 mode_stdbitmap::@return mode_stdbitmap::@16 mode_stdbitmap::@14 mode_stdbitmap::@15 mode_stdbitmap::@13 bitmap_line bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@return bitmap_line::@3 bitmap_line::@2 bitmap_line::@20 bitmap_line::@6 bitmap_line::@1 bitmap_line::@23 bitmap_line::@24 bitmap_line::@10 bitmap_line::@9 bitmap_line::@27 bitmap_line::@13 bitmap_line_ydxi bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 bitmap_line_ydxi::@3 bitmap_line_ydxi::@2 bitmap_line_ydxi::@return bitmap_line_ydxi::@6 bitmap_line_ydxi::@7 bitmap_plot bitmap_plot::@return bitmap_line_xdyi bitmap_line_xdyi::@1 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@2 bitmap_line_xdyi::@return bitmap_line_xdyi::@6 bitmap_line_xdyi::@7 bitmap_line_ydxd bitmap_line_ydxd::@1 bitmap_line_ydxd::@5 bitmap_line_ydxd::@3 bitmap_line_ydxd::@2 bitmap_line_ydxd::@return bitmap_line_ydxd::@6 bitmap_line_ydxd::@7 bitmap_line_xdyd bitmap_line_xdyd::@1 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@2 bitmap_line_xdyd::@return bitmap_line_xdyd::@6 bitmap_line_xdyd::@7 bitmap_clear bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@3 bitmap_clear::@return bitmap_clear::@5 bitmap_clear::@6 bitmap_init bitmap_init::@1 bitmap_init::@5 bitmap_init::@2 bitmap_init::@3 bitmap_init::@7 bitmap_init::@4 bitmap_init::@return bitmap_init::@11 bitmap_init::@12 bitmap_init::@9 bitmap_init::@10 mode_mcchar mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@5 mode_mcchar::@6 mode_mcchar::@return mode_mcchar::@9 mode_mcchar::@10 mode_mcchar::@8 mode_ecmchar mode_ecmchar::@1 mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@3 mode_ecmchar::@5 mode_ecmchar::@6 mode_ecmchar::@return mode_ecmchar::@9 mode_ecmchar::@10 mode_ecmchar::@8 mode_stdchar mode_stdchar::@1 mode_stdchar::@4 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@return mode_stdchar::@9 mode_stdchar::@10 mode_stdchar::@8 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 @45 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@19 menu::@47 menu::@48 menu::@3 menu::@76 menu::@return menu::@4 menu::@50 menu::@22 menu::@6 menu::@51 menu::@24 menu::@7 menu::@53 menu::@26 menu::@8 menu::@55 menu::@28 menu::@9 menu::@57 menu::@30 menu::@10 menu::@59 menu::@32 menu::@11 menu::@61 menu::@34 menu::@12 menu::@63 menu::@36 menu::@13 menu::@65 menu::@38 menu::@14 menu::@67 menu::@40 menu::@15 menu::@69 menu::@42 menu::@16 menu::@71 menu::@44 menu::@75 menu::@74 mode_8bppchunkybmm mode_8bppchunkybmm::@1 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@return mode_8bppchunkybmm::@14 mode_8bppchunkybmm::@15 mode_8bppchunkybmm::@16 mode_8bppchunkybmm::@13 mode_ctrl mode_ctrl::@1 mode_ctrl::@return mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@32 mode_ctrl::@7 mode_ctrl::@33 mode_ctrl::@23 mode_ctrl::@8 mode_ctrl::@34 mode_ctrl::@24 mode_ctrl::@9 mode_ctrl::@35 mode_ctrl::@25 mode_ctrl::@10 mode_ctrl::@36 mode_ctrl::@26 mode_ctrl::@11 mode_ctrl::@37 mode_ctrl::@27 mode_ctrl::@12 mode_ctrl::@38 mode_ctrl::@28 mode_ctrl::@13 mode_ctrl::@39 mode_ctrl::@29 mode_ctrl::@14 mode_ctrl::@30 mode_ctrl::@46 mode_ctrl::@45 mode_ctrl::@44 mode_ctrl::@43 mode_ctrl::@42 mode_ctrl::@41 mode_ctrl::@40 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return dtvSetCpuBankSegment1 dtvSetCpuBankSegment1::@return mode_8bpppixelcell mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@9 mode_8bpppixelcell::@10 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@6 mode_8bpppixelcell::@11 mode_8bpppixelcell::@7 mode_8bpppixelcell::@12 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@return mode_8bpppixelcell::@19 mode_8bpppixelcell::@20 mode_8bpppixelcell::@21 mode_8bpppixelcell::@17 mode_8bpppixelcell::@18 mode_8bpppixelcell::@16 mode_sixsfred mode_sixsfred::@1 mode_sixsfred::@8 mode_sixsfred::@2 mode_sixsfred::@3 mode_sixsfred::@9 mode_sixsfred::@4 mode_sixsfred::@5 mode_sixsfred::@11 mode_sixsfred::@6 mode_sixsfred::@7 mode_sixsfred::@13 mode_sixsfred::@14 mode_sixsfred::@return mode_sixsfred::@21 mode_sixsfred::@22 mode_sixsfred::@19 mode_sixsfred::@20 mode_sixsfred::@17 mode_sixsfred::@18 mode_sixsfred::@16 mode_twoplanebitmap mode_twoplanebitmap::@1 mode_twoplanebitmap::@10 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@11 mode_twoplanebitmap::@4 mode_twoplanebitmap::@5 mode_twoplanebitmap::@13 mode_twoplanebitmap::@7 mode_twoplanebitmap::@15 mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 mode_twoplanebitmap::@17 mode_twoplanebitmap::@18 mode_twoplanebitmap::@return mode_twoplanebitmap::@25 mode_twoplanebitmap::@26 mode_twoplanebitmap::@23 mode_twoplanebitmap::@24 mode_twoplanebitmap::@6 mode_twoplanebitmap::@21 mode_twoplanebitmap::@22 mode_twoplanebitmap::@20 mode_sixsfred2 mode_sixsfred2::@1 mode_sixsfred2::@8 mode_sixsfred2::@2 mode_sixsfred2::@3 mode_sixsfred2::@9 mode_sixsfred2::@4 mode_sixsfred2::@5 mode_sixsfred2::@11 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@13 mode_sixsfred2::@14 mode_sixsfred2::@return mode_sixsfred2::@21 mode_sixsfred2::@22 mode_sixsfred2::@19 mode_sixsfred2::@20 mode_sixsfred2::@17 mode_sixsfred2::@18 mode_sixsfred2::@16 mode_hicolmcchar mode_hicolmcchar::@1 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@3 mode_hicolmcchar::@5 mode_hicolmcchar::@6 mode_hicolmcchar::@return mode_hicolmcchar::@9 mode_hicolmcchar::@10 mode_hicolmcchar::@8 mode_hicolecmchar mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 mode_hicolecmchar::@5 mode_hicolecmchar::@6 mode_hicolecmchar::@return mode_hicolecmchar::@9 mode_hicolecmchar::@10 mode_hicolecmchar::@8 mode_hicolstdchar mode_hicolstdchar::@1 mode_hicolstdchar::@4 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@5 mode_hicolstdchar::@6 mode_hicolstdchar::@return mode_hicolstdchar::@9 mode_hicolstdchar::@10 mode_hicolstdchar::@8 mode_stdbitmap mode_stdbitmap::@1 mode_stdbitmap::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@4 mode_stdbitmap::@11 mode_stdbitmap::@8 mode_stdbitmap::@return mode_stdbitmap::@16 mode_stdbitmap::@14 mode_stdbitmap::@15 mode_stdbitmap::@13 bitmap_line bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@return bitmap_line::@3 bitmap_line::@2 bitmap_line::@20 bitmap_line::@6 bitmap_line::@1 bitmap_line::@23 bitmap_line::@24 bitmap_line::@10 bitmap_line::@9 bitmap_line::@27 bitmap_line::@13 bitmap_line_ydxi bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 bitmap_line_ydxi::@3 bitmap_line_ydxi::@2 bitmap_line_ydxi::@return bitmap_line_ydxi::@6 bitmap_line_ydxi::@7 bitmap_plot bitmap_plot::@return bitmap_line_xdyi bitmap_line_xdyi::@1 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@2 bitmap_line_xdyi::@return bitmap_line_xdyi::@6 bitmap_line_xdyi::@7 bitmap_line_ydxd bitmap_line_ydxd::@1 bitmap_line_ydxd::@5 bitmap_line_ydxd::@3 bitmap_line_ydxd::@2 bitmap_line_ydxd::@return bitmap_line_ydxd::@6 bitmap_line_ydxd::@7 bitmap_line_xdyd bitmap_line_xdyd::@1 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@2 bitmap_line_xdyd::@return bitmap_line_xdyd::@6 bitmap_line_xdyd::@7 bitmap_clear bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@3 bitmap_clear::@return bitmap_clear::@5 bitmap_clear::@6 bitmap_init bitmap_init::@1 bitmap_init::@5 bitmap_init::@2 bitmap_init::@3 bitmap_init::@7 bitmap_init::@4 bitmap_init::@return bitmap_init::@11 bitmap_init::@12 bitmap_init::@9 bitmap_init::@10 mode_mcchar mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@5 mode_mcchar::@6 mode_mcchar::@return mode_mcchar::@9 mode_mcchar::@10 mode_mcchar::@8 mode_ecmchar mode_ecmchar::@1 mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@3 mode_ecmchar::@5 mode_ecmchar::@6 mode_ecmchar::@return mode_ecmchar::@9 mode_ecmchar::@10 mode_ecmchar::@8 mode_stdchar mode_stdchar::@1 mode_stdchar::@4 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@return mode_stdchar::@9 mode_stdchar::@10 mode_stdchar::@8 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 @42 +Adding NOP phi() at start of @45 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@2 Adding NOP phi() at start of menu::@47 @@ -17270,9 +17740,9 @@ 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 @42 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@19 menu::@47 menu::@48 menu::@3 menu::@return menu::@4 menu::@50 menu::@22 menu::@6 menu::@51 menu::@24 menu::@7 menu::@53 menu::@26 menu::@8 menu::@55 menu::@28 menu::@9 menu::@57 menu::@30 menu::@10 menu::@59 menu::@32 menu::@11 menu::@61 menu::@34 menu::@12 menu::@63 menu::@36 menu::@13 menu::@65 menu::@38 menu::@14 menu::@67 menu::@40 menu::@15 menu::@69 menu::@42 menu::@16 menu::@71 menu::@44 mode_8bppchunkybmm mode_8bppchunkybmm::@1 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@return mode_ctrl mode_ctrl::@1 mode_ctrl::@return mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@32 mode_ctrl::@7 mode_ctrl::@33 mode_ctrl::@23 mode_ctrl::@8 mode_ctrl::@34 mode_ctrl::@24 mode_ctrl::@9 mode_ctrl::@35 mode_ctrl::@25 mode_ctrl::@10 mode_ctrl::@36 mode_ctrl::@26 mode_ctrl::@11 mode_ctrl::@37 mode_ctrl::@27 mode_ctrl::@12 mode_ctrl::@38 mode_ctrl::@28 mode_ctrl::@13 mode_ctrl::@39 mode_ctrl::@14 mode_ctrl::@30 mode_ctrl::@46 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return dtvSetCpuBankSegment1 dtvSetCpuBankSegment1::@return mode_8bpppixelcell mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@9 mode_8bpppixelcell::@10 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@6 mode_8bpppixelcell::@11 mode_8bpppixelcell::@7 mode_8bpppixelcell::@12 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@return mode_sixsfred mode_sixsfred::@1 mode_sixsfred::@8 mode_sixsfred::@2 mode_sixsfred::@3 mode_sixsfred::@9 mode_sixsfred::@4 mode_sixsfred::@5 mode_sixsfred::@11 mode_sixsfred::@6 mode_sixsfred::@7 mode_sixsfred::@13 mode_sixsfred::@14 mode_sixsfred::@return mode_twoplanebitmap mode_twoplanebitmap::@1 mode_twoplanebitmap::@10 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@11 mode_twoplanebitmap::@4 mode_twoplanebitmap::@5 mode_twoplanebitmap::@13 mode_twoplanebitmap::@7 mode_twoplanebitmap::@15 mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 mode_twoplanebitmap::@17 mode_twoplanebitmap::@18 mode_twoplanebitmap::@return mode_twoplanebitmap::@6 mode_sixsfred2 mode_sixsfred2::@1 mode_sixsfred2::@8 mode_sixsfred2::@2 mode_sixsfred2::@3 mode_sixsfred2::@9 mode_sixsfred2::@4 mode_sixsfred2::@5 mode_sixsfred2::@11 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@13 mode_sixsfred2::@14 mode_sixsfred2::@return mode_hicolmcchar mode_hicolmcchar::@1 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@3 mode_hicolmcchar::@5 mode_hicolmcchar::@6 mode_hicolmcchar::@return mode_hicolecmchar mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 mode_hicolecmchar::@5 mode_hicolecmchar::@6 mode_hicolecmchar::@return mode_hicolstdchar mode_hicolstdchar::@1 mode_hicolstdchar::@4 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@5 mode_hicolstdchar::@6 mode_hicolstdchar::@return mode_stdbitmap mode_stdbitmap::@1 mode_stdbitmap::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@4 mode_stdbitmap::@11 mode_stdbitmap::@8 mode_stdbitmap::@return bitmap_line bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@return bitmap_line::@3 bitmap_line::@2 bitmap_line::@20 bitmap_line::@6 bitmap_line::@1 bitmap_line::@23 bitmap_line::@24 bitmap_line::@10 bitmap_line::@9 bitmap_line::@27 bitmap_line::@13 bitmap_line_ydxi bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 bitmap_line_ydxi::@3 bitmap_line_ydxi::@2 bitmap_line_ydxi::@return bitmap_plot bitmap_plot::@return bitmap_line_xdyi bitmap_line_xdyi::@1 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@2 bitmap_line_xdyi::@return bitmap_line_ydxd bitmap_line_ydxd::@1 bitmap_line_ydxd::@5 bitmap_line_ydxd::@3 bitmap_line_ydxd::@2 bitmap_line_ydxd::@return bitmap_line_xdyd bitmap_line_xdyd::@1 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@2 bitmap_line_xdyd::@return bitmap_clear bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@3 bitmap_clear::@return bitmap_init bitmap_init::@1 bitmap_init::@2 bitmap_init::@3 bitmap_init::@7 bitmap_init::@4 bitmap_init::@return bitmap_init::@10 mode_mcchar mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@5 mode_mcchar::@6 mode_mcchar::@return mode_ecmchar mode_ecmchar::@1 mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@3 mode_ecmchar::@5 mode_ecmchar::@6 mode_ecmchar::@return mode_stdchar mode_stdchar::@1 mode_stdchar::@4 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@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 @45 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@2 menu::@19 menu::@47 menu::@48 menu::@3 menu::@return menu::@4 menu::@50 menu::@22 menu::@6 menu::@51 menu::@24 menu::@7 menu::@53 menu::@26 menu::@8 menu::@55 menu::@28 menu::@9 menu::@57 menu::@30 menu::@10 menu::@59 menu::@32 menu::@11 menu::@61 menu::@34 menu::@12 menu::@63 menu::@36 menu::@13 menu::@65 menu::@38 menu::@14 menu::@67 menu::@40 menu::@15 menu::@69 menu::@42 menu::@16 menu::@71 menu::@44 mode_8bppchunkybmm mode_8bppchunkybmm::@1 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@return mode_ctrl mode_ctrl::@1 mode_ctrl::@return mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@32 mode_ctrl::@7 mode_ctrl::@33 mode_ctrl::@23 mode_ctrl::@8 mode_ctrl::@34 mode_ctrl::@24 mode_ctrl::@9 mode_ctrl::@35 mode_ctrl::@25 mode_ctrl::@10 mode_ctrl::@36 mode_ctrl::@26 mode_ctrl::@11 mode_ctrl::@37 mode_ctrl::@27 mode_ctrl::@12 mode_ctrl::@38 mode_ctrl::@28 mode_ctrl::@13 mode_ctrl::@39 mode_ctrl::@14 mode_ctrl::@30 mode_ctrl::@46 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return dtvSetCpuBankSegment1 dtvSetCpuBankSegment1::@return mode_8bpppixelcell mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@9 mode_8bpppixelcell::@10 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@6 mode_8bpppixelcell::@11 mode_8bpppixelcell::@7 mode_8bpppixelcell::@12 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@return mode_sixsfred mode_sixsfred::@1 mode_sixsfred::@8 mode_sixsfred::@2 mode_sixsfred::@3 mode_sixsfred::@9 mode_sixsfred::@4 mode_sixsfred::@5 mode_sixsfred::@11 mode_sixsfred::@6 mode_sixsfred::@7 mode_sixsfred::@13 mode_sixsfred::@14 mode_sixsfred::@return mode_twoplanebitmap mode_twoplanebitmap::@1 mode_twoplanebitmap::@10 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@11 mode_twoplanebitmap::@4 mode_twoplanebitmap::@5 mode_twoplanebitmap::@13 mode_twoplanebitmap::@7 mode_twoplanebitmap::@15 mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 mode_twoplanebitmap::@17 mode_twoplanebitmap::@18 mode_twoplanebitmap::@return mode_twoplanebitmap::@6 mode_sixsfred2 mode_sixsfred2::@1 mode_sixsfred2::@8 mode_sixsfred2::@2 mode_sixsfred2::@3 mode_sixsfred2::@9 mode_sixsfred2::@4 mode_sixsfred2::@5 mode_sixsfred2::@11 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@13 mode_sixsfred2::@14 mode_sixsfred2::@return mode_hicolmcchar mode_hicolmcchar::@1 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@3 mode_hicolmcchar::@5 mode_hicolmcchar::@6 mode_hicolmcchar::@return mode_hicolecmchar mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 mode_hicolecmchar::@5 mode_hicolecmchar::@6 mode_hicolecmchar::@return mode_hicolstdchar mode_hicolstdchar::@1 mode_hicolstdchar::@4 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@5 mode_hicolstdchar::@6 mode_hicolstdchar::@return mode_stdbitmap mode_stdbitmap::@1 mode_stdbitmap::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@4 mode_stdbitmap::@11 mode_stdbitmap::@8 mode_stdbitmap::@return bitmap_line bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@return bitmap_line::@3 bitmap_line::@2 bitmap_line::@20 bitmap_line::@6 bitmap_line::@1 bitmap_line::@23 bitmap_line::@24 bitmap_line::@10 bitmap_line::@9 bitmap_line::@27 bitmap_line::@13 bitmap_line_ydxi bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 bitmap_line_ydxi::@3 bitmap_line_ydxi::@2 bitmap_line_ydxi::@return bitmap_plot bitmap_plot::@return bitmap_line_xdyi bitmap_line_xdyi::@1 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@2 bitmap_line_xdyi::@return bitmap_line_ydxd bitmap_line_ydxd::@1 bitmap_line_ydxd::@5 bitmap_line_ydxd::@3 bitmap_line_ydxd::@2 bitmap_line_ydxd::@return bitmap_line_xdyd bitmap_line_xdyd::@1 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@2 bitmap_line_xdyd::@return bitmap_clear bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@3 bitmap_clear::@return bitmap_init bitmap_init::@1 bitmap_init::@2 bitmap_init::@3 bitmap_init::@7 bitmap_init::@4 bitmap_init::@return bitmap_init::@10 mode_mcchar mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@5 mode_mcchar::@6 mode_mcchar::@return mode_ecmchar mode_ecmchar::@1 mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@3 mode_ecmchar::@5 mode_ecmchar::@6 mode_ecmchar::@return mode_stdchar mode_stdchar::@1 mode_stdchar::@4 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@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 @42 +Adding NOP phi() at start of @45 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@2 Adding NOP phi() at start of menu::@47 @@ -17390,14 +17860,14 @@ Propagating live ranges... FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@42 -@42: scope:[] from @begin + to:@45 +@45: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @42 +@end: scope:[] from @45 [3] phi() [ ] ( ) -main: scope:[main] from @42 +main: scope:[main] from @45 asm { sei } [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) @@ -17803,7 +18273,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@10 menu::@11 men to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [223] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [224] (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:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) + [224] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [225] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) @@ -18963,294 +19433,294 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen DOMINATORS @begin dominated by @begin -@42 dominated by @begin @42 -@end dominated by @end @begin @42 -main dominated by @begin @42 main -main::@1 dominated by @begin @42 main::@1 main -main::@return dominated by @begin @42 main::@1 main::@return main -main::@2 dominated by @begin @42 main::@1 main::@2 main -menu dominated by @begin @42 main::@1 main::@2 menu main -menu::@1 dominated by @begin @42 menu::@1 main::@1 main::@2 menu main -menu::@2 dominated by @begin @42 menu::@1 menu::@2 main::@1 main::@2 menu main -menu::@19 dominated by @begin @42 menu::@1 menu::@2 main::@1 main::@2 menu main menu::@19 -menu::@47 dominated by @begin @42 menu::@1 menu::@2 main::@1 main::@2 menu::@47 menu main menu::@19 -menu::@48 dominated by @begin @42 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 -menu::@3 dominated by @begin @42 menu::@3 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 -menu::@return dominated by @begin menu::@return @42 menu::@3 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 -menu::@4 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 -menu::@50 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@19 -menu::@22 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -menu::@6 dominated by @begin @42 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@19 -menu::@51 dominated by @begin @42 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 -menu::@24 dominated by @begin @42 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -menu::@7 dominated by @begin @42 menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 -menu::@53 dominated by @begin @42 menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 -menu::@26 dominated by @begin @42 menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -menu::@8 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 -menu::@55 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@19 -menu::@28 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 -menu::@9 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@19 -menu::@57 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 main menu::@19 -menu::@30 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 -menu::@10 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 main menu::@19 menu::@10 -menu::@59 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@10 -menu::@32 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 -menu::@11 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@11 menu::@10 -menu::@61 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@11 menu::@10 -menu::@34 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@34 menu::@19 menu::@11 menu::@10 -menu::@12 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@12 menu::@11 menu::@10 -menu::@63 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@12 menu::@11 menu::@10 -menu::@36 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -menu::@13 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -menu::@65 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -menu::@38 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -menu::@14 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -menu::@67 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -menu::@40 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@40 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -menu::@15 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -menu::@69 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -menu::@42 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -menu::@16 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -menu::@71 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -menu::@44 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm dominated by mode_8bppchunkybmm @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@1 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@5 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@2 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@3 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@6 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@10 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@4 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@7 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@8 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@11 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bppchunkybmm::@return dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 mode_8bppchunkybmm::@return menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_ctrl dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@19 -mode_ctrl::@1 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main mode_ctrl::@1 menu::@19 -mode_ctrl::@return dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@return main mode_ctrl::@1 menu::@19 -mode_ctrl::@4 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main mode_ctrl::@1 mode_ctrl::@4 menu::@19 -mode_ctrl::@6 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 menu::@19 -mode_ctrl::@32 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 menu::@19 -mode_ctrl::@7 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@7 menu::@19 -mode_ctrl::@33 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@7 menu::@19 -mode_ctrl::@23 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 main mode_ctrl::@23 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@7 menu::@19 -mode_ctrl::@8 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 menu::@19 -mode_ctrl::@34 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 menu::@19 -mode_ctrl::@24 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 main mode_ctrl::@24 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 menu::@19 -mode_ctrl::@9 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@35 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@25 dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@25 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@10 dominated by mode_ctrl::@10 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@36 dominated by mode_ctrl::@10 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@26 dominated by mode_ctrl::@10 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@26 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@11 dominated by mode_ctrl::@10 mode_ctrl::@11 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@37 dominated by mode_ctrl::@10 mode_ctrl::@11 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@27 dominated by mode_ctrl::@10 mode_ctrl::@11 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@27 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@12 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@38 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@28 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@28 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@13 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@39 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@14 dominated by mode_ctrl::@14 mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@30 dominated by mode_ctrl::@14 mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@30 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 -mode_ctrl::@46 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 mode_ctrl::@46 menu::@19 -keyboard_key_pressed dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main menu::@19 -keyboard_key_pressed::@2 dominated by keyboard_key_pressed::@2 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main menu::@19 -keyboard_key_pressed::@return dominated by keyboard_key_pressed::@return keyboard_key_pressed::@2 @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main menu::@19 -keyboard_matrix_read dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main keyboard_matrix_read menu::@19 -keyboard_matrix_read::@return dominated by @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main keyboard_matrix_read keyboard_matrix_read::@return menu::@19 -dtvSetCpuBankSegment1 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 dtvSetCpuBankSegment1 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -dtvSetCpuBankSegment1::@return dominated by mode_8bppchunkybmm dtvSetCpuBankSegment1::@return mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 dtvSetCpuBankSegment1 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 -mode_8bpppixelcell dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@1 dominated by mode_8bpppixelcell::@1 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@2 dominated by mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@3 dominated by mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@9 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@10 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@4 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@5 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@6 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@11 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@11 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@7 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@12 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@13 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@13 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@14 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_8bpppixelcell::@return dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 mode_8bpppixelcell::@return menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 -mode_sixsfred dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@1 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 menu menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@8 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 menu mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@2 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@2 menu mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@3 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@9 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@4 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@4 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@5 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@11 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@6 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@7 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@13 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 mode_sixsfred::@13 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@14 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 mode_sixsfred::@14 mode_sixsfred::@13 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_sixsfred::@return dominated by mode_sixsfred::@return @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 mode_sixsfred::@14 mode_sixsfred::@13 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 -mode_twoplanebitmap dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@1 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@10 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@2 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@3 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@11 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@4 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@5 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@13 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@13 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@7 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@15 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@8 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@9 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@17 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@17 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@18 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@18 mode_twoplanebitmap::@17 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@return dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 mode_twoplanebitmap::@return main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@18 mode_twoplanebitmap::@17 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_twoplanebitmap::@6 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@6 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 -mode_sixsfred2 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@1 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@8 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@2 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@3 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@9 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@4 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@5 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@11 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@6 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@7 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@13 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 mode_sixsfred2::@13 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@14 dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 mode_sixsfred2::@13 mode_sixsfred2::@14 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 -mode_sixsfred2::@return dominated by @begin @42 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 mode_sixsfred2::@13 mode_sixsfred2::@14 menu::@36 mode_sixsfred2::@return menu::@19 menu::@12 menu::@11 menu::@10 -mode_hicolmcchar dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 menu::@19 menu::@11 menu::@10 -mode_hicolmcchar::@1 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 -mode_hicolmcchar::@4 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 -mode_hicolmcchar::@2 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 -mode_hicolmcchar::@3 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 -mode_hicolmcchar::@5 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 mode_hicolmcchar::@5 menu::@19 menu::@11 menu::@10 -mode_hicolmcchar::@6 dominated by @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 mode_hicolmcchar::@6 mode_hicolmcchar::@5 menu::@19 menu::@11 menu::@10 -mode_hicolmcchar::@return dominated by mode_hicolmcchar::@return @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 mode_hicolmcchar::@6 mode_hicolmcchar::@5 menu::@19 menu::@11 menu::@10 -mode_hicolecmchar dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 -mode_hicolecmchar::@1 dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 -mode_hicolecmchar::@4 dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 -mode_hicolecmchar::@2 dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 -mode_hicolecmchar::@3 dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 -mode_hicolecmchar::@5 dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@5 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 -mode_hicolecmchar::@6 dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@5 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 mode_hicolecmchar::@6 menu::@59 main menu::@32 menu::@19 menu::@10 -mode_hicolecmchar::@return dominated by @begin mode_hicolecmchar @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@5 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 mode_hicolecmchar::@6 menu::@59 main mode_hicolecmchar::@return menu::@32 menu::@19 menu::@10 -mode_hicolstdchar dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 -mode_hicolstdchar::@1 dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@1 -mode_hicolstdchar::@4 dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@4 mode_hicolstdchar::@1 -mode_hicolstdchar::@2 dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@4 mode_hicolstdchar::@1 -mode_hicolstdchar::@3 dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@1 -mode_hicolstdchar::@5 dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@5 mode_hicolstdchar::@1 -mode_hicolstdchar::@6 dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main mode_hicolstdchar::@6 menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@5 mode_hicolstdchar::@1 -mode_hicolstdchar::@return dominated by @begin @42 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 mode_hicolstdchar::@return menu menu::@57 menu::@55 menu::@30 main mode_hicolstdchar::@6 menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@5 mode_hicolstdchar::@1 -mode_stdbitmap dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 -mode_stdbitmap::@1 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 mode_stdbitmap::@1 -mode_stdbitmap::@5 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@1 -mode_stdbitmap::@2 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@1 -mode_stdbitmap::@3 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@1 -mode_stdbitmap::@6 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@1 -mode_stdbitmap::@7 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -mode_stdbitmap::@9 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -mode_stdbitmap::@4 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -mode_stdbitmap::@11 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@11 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -mode_stdbitmap::@8 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@11 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@8 mode_stdbitmap::@9 mode_stdbitmap::@1 -mode_stdbitmap::@return dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@11 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@return mode_stdbitmap::@7 mode_stdbitmap::@8 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@15 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@16 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@16 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@17 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@17 bitmap_line::@16 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@return dominated by bitmap_line::@return bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@3 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@3 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@16 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@2 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@2 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@20 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@2 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 bitmap_line::@20 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@6 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@2 bitmap_line::@6 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@1 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@23 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@23 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@24 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@24 bitmap_line::@23 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@10 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_line::@10 main::@1 main::@2 bitmap_line::@23 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@9 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@1 bitmap_line::@9 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@27 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@1 bitmap_line::@9 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_line::@27 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line::@13 dominated by bitmap_line mode_stdbitmap @begin @42 bitmap_line::@1 bitmap_line::@9 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_line::@13 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxi dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxi::@1 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxi::@5 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxi::@3 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@3 bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxi::@2 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 bitmap_line_ydxi::@2 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxi::@return dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line_ydxi::@return menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 bitmap_line_ydxi::@2 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_plot dominated by bitmap_line mode_stdbitmap @begin bitmap_plot @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_plot::@return dominated by bitmap_line mode_stdbitmap @begin bitmap_plot bitmap_plot::@return @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyi dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyi::@1 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@1 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyi::@5 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@1 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyi::@3 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@1 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyi::@2 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@1 bitmap_line_xdyi::@2 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyi::@return dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 bitmap_line_xdyi::@return main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@1 bitmap_line_xdyi::@2 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxd dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxd::@1 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxd::@5 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxd::@3 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@3 bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxd::@2 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@2 bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_ydxd::@return dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line_ydxd::@return menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@2 bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyd dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyd::@1 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyd::@5 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyd::@3 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyd::@2 dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@2 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_line_xdyd::@return dominated by bitmap_line mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_line_xdyd::@return menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@2 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_clear dominated by bitmap_clear mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_clear::@1 dominated by bitmap_clear mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_clear::@1 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_clear::@2 dominated by bitmap_clear mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_clear::@1 bitmap_clear::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_clear::@3 dominated by bitmap_clear mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_clear::@3 main::@1 main::@2 bitmap_clear::@1 bitmap_clear::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_clear::@return dominated by bitmap_clear mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_clear::@3 main::@1 main::@2 bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@return menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 -bitmap_init dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -bitmap_init::@1 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -bitmap_init::@2 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -bitmap_init::@3 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -bitmap_init::@7 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 bitmap_init::@7 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -bitmap_init::@4 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 bitmap_init::@4 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -bitmap_init::@return dominated by bitmap_init::@return mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 bitmap_init::@4 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -bitmap_init::@10 dominated by mode_stdbitmap @begin @42 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 bitmap_init::@10 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 -mode_mcchar dominated by @begin @42 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_mcchar::@1 dominated by @begin @42 mode_mcchar::@1 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_mcchar::@4 dominated by @begin @42 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_mcchar::@2 dominated by @begin @42 mode_mcchar::@2 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_mcchar::@3 dominated by @begin @42 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_mcchar::@5 dominated by @begin @42 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@5 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_mcchar::@6 dominated by @begin @42 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@6 mode_mcchar::@4 mode_mcchar::@5 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_mcchar::@return dominated by mode_mcchar::@return @begin @42 mode_mcchar::@2 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@6 mode_mcchar::@4 mode_mcchar::@5 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 -mode_ecmchar dominated by @begin @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_ecmchar::@1 dominated by @begin mode_ecmchar::@1 @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_ecmchar::@4 dominated by @begin mode_ecmchar::@4 mode_ecmchar::@1 @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_ecmchar::@2 dominated by @begin mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@1 @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_ecmchar::@3 dominated by @begin mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_ecmchar::@5 dominated by @begin mode_ecmchar::@5 mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_ecmchar::@6 dominated by @begin mode_ecmchar::@6 mode_ecmchar::@5 mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_ecmchar::@return dominated by mode_ecmchar::@return @begin mode_ecmchar::@6 mode_ecmchar::@5 mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @42 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 -mode_stdchar dominated by mode_stdchar @begin @42 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -mode_stdchar::@1 dominated by mode_stdchar @begin @42 mode_stdchar::@1 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -mode_stdchar::@4 dominated by mode_stdchar @begin @42 mode_stdchar::@1 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -mode_stdchar::@2 dominated by mode_stdchar @begin @42 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -mode_stdchar::@3 dominated by mode_stdchar @begin @42 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -mode_stdchar::@5 dominated by mode_stdchar @begin @42 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@5 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -mode_stdchar::@6 dominated by mode_stdchar @begin @42 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 -mode_stdchar::@return dominated by mode_stdchar @begin @42 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 mode_stdchar::@return menu::@19 -print_str_lines dominated by @begin @42 menu::@1 menu::@2 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_str_lines::@1 dominated by @begin @42 menu::@1 menu::@2 print_str_lines::@1 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_str_lines::@return dominated by @begin print_str_lines::@return @42 menu::@1 menu::@2 print_str_lines::@1 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_str_lines::@4 dominated by @begin @42 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_str_lines::@8 dominated by @begin @42 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@8 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_str_lines::@5 dominated by @begin @42 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_str_lines::@9 dominated by @begin @42 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_ln dominated by print_ln @begin @42 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_ln::@1 dominated by print_ln print_ln::@1 @begin @42 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_ln::@return dominated by print_ln::@return print_ln print_ln::@1 @begin @42 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 -print_cls dominated by print_cls @begin @42 menu::@1 menu::@2 main::@1 main::@2 menu::@47 menu main menu::@19 -print_cls::@1 dominated by print_cls @begin @42 menu::@1 menu::@2 print_cls::@1 main::@1 main::@2 menu::@47 menu main menu::@19 -print_cls::@return dominated by print_cls @begin @42 menu::@1 menu::@2 print_cls::@1 main::@1 main::@2 menu::@47 menu main print_cls::@return menu::@19 -print_set_screen dominated by @begin @42 menu::@1 menu::@2 main::@1 main::@2 print_set_screen menu main menu::@19 -print_set_screen::@return dominated by @begin @42 menu::@1 menu::@2 main::@1 main::@2 print_set_screen menu main menu::@19 print_set_screen::@return +@45 dominated by @begin @45 +@end dominated by @end @begin @45 +main dominated by @begin @45 main +main::@1 dominated by @begin @45 main::@1 main +main::@return dominated by @begin @45 main::@1 main::@return main +main::@2 dominated by @begin @45 main::@1 main::@2 main +menu dominated by @begin @45 main::@1 main::@2 menu main +menu::@1 dominated by @begin @45 menu::@1 main::@1 main::@2 menu main +menu::@2 dominated by @begin @45 menu::@1 menu::@2 main::@1 main::@2 menu main +menu::@19 dominated by @begin @45 menu::@1 menu::@2 main::@1 main::@2 menu main menu::@19 +menu::@47 dominated by @begin @45 menu::@1 menu::@2 main::@1 main::@2 menu::@47 menu main menu::@19 +menu::@48 dominated by @begin @45 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 +menu::@3 dominated by @begin @45 menu::@3 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 +menu::@return dominated by @begin menu::@return @45 menu::@3 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 +menu::@4 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu main menu::@19 +menu::@50 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@19 +menu::@22 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +menu::@6 dominated by @begin @45 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@19 +menu::@51 dominated by @begin @45 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 +menu::@24 dominated by @begin @45 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +menu::@7 dominated by @begin @45 menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 +menu::@53 dominated by @begin @45 menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 +menu::@26 dominated by @begin @45 menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +menu::@8 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@19 +menu::@55 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@19 +menu::@28 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 +menu::@9 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@19 +menu::@57 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 main menu::@19 +menu::@30 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 +menu::@10 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 main menu::@19 menu::@10 +menu::@59 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@10 +menu::@32 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 +menu::@11 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@11 menu::@10 +menu::@61 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@11 menu::@10 +menu::@34 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@34 menu::@19 menu::@11 menu::@10 +menu::@12 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@12 menu::@11 menu::@10 +menu::@63 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@12 menu::@11 menu::@10 +menu::@36 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +menu::@13 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +menu::@65 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +menu::@38 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +menu::@14 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +menu::@67 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +menu::@40 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@40 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +menu::@15 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +menu::@69 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +menu::@42 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +menu::@16 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +menu::@71 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +menu::@44 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm dominated by mode_8bppchunkybmm @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@1 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@5 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@2 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@3 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@6 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@10 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@4 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@7 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@8 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@11 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bppchunkybmm::@return dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@11 mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 mode_8bppchunkybmm::@return menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_ctrl dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@19 +mode_ctrl::@1 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main mode_ctrl::@1 menu::@19 +mode_ctrl::@return dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@return main mode_ctrl::@1 menu::@19 +mode_ctrl::@4 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main mode_ctrl::@1 mode_ctrl::@4 menu::@19 +mode_ctrl::@6 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 menu::@19 +mode_ctrl::@32 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 menu::@19 +mode_ctrl::@7 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@7 menu::@19 +mode_ctrl::@33 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@7 menu::@19 +mode_ctrl::@23 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 main mode_ctrl::@23 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@7 menu::@19 +mode_ctrl::@8 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 menu::@19 +mode_ctrl::@34 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 menu::@19 +mode_ctrl::@24 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 main mode_ctrl::@24 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 menu::@19 +mode_ctrl::@9 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@35 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@25 dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@25 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@10 dominated by mode_ctrl::@10 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@36 dominated by mode_ctrl::@10 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@26 dominated by mode_ctrl::@10 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@26 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@11 dominated by mode_ctrl::@10 mode_ctrl::@11 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@37 dominated by mode_ctrl::@10 mode_ctrl::@11 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@27 dominated by mode_ctrl::@10 mode_ctrl::@11 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@27 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@12 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@38 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@28 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@28 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@13 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@39 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@14 dominated by mode_ctrl::@14 mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@30 dominated by mode_ctrl::@14 mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@30 mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 menu::@19 +mode_ctrl::@46 dominated by mode_ctrl::@10 mode_ctrl::@11 mode_ctrl::@12 mode_ctrl::@13 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 mode_ctrl main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu mode_ctrl::@36 mode_ctrl::@37 mode_ctrl::@38 mode_ctrl::@39 mode_ctrl::@32 mode_ctrl::@33 mode_ctrl::@34 mode_ctrl::@35 main mode_ctrl::@1 mode_ctrl::@4 mode_ctrl::@6 mode_ctrl::@8 mode_ctrl::@7 mode_ctrl::@9 mode_ctrl::@46 menu::@19 +keyboard_key_pressed dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main menu::@19 +keyboard_key_pressed::@2 dominated by keyboard_key_pressed::@2 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main menu::@19 +keyboard_key_pressed::@return dominated by keyboard_key_pressed::@return keyboard_key_pressed::@2 @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main menu::@19 +keyboard_matrix_read dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main keyboard_matrix_read menu::@19 +keyboard_matrix_read::@return dominated by @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@48 menu::@47 menu keyboard_key_pressed main keyboard_matrix_read keyboard_matrix_read::@return menu::@19 +dtvSetCpuBankSegment1 dominated by mode_8bppchunkybmm mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 dtvSetCpuBankSegment1 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +dtvSetCpuBankSegment1::@return dominated by mode_8bppchunkybmm dtvSetCpuBankSegment1::@return mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 menu::@71 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@44 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 dtvSetCpuBankSegment1 main menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@16 menu::@15 menu::@14 +mode_8bpppixelcell dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@1 dominated by mode_8bpppixelcell::@1 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@2 dominated by mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@3 dominated by mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@9 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@10 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@4 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@5 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@6 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@11 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@11 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@7 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@12 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@13 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@13 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@14 dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_8bpppixelcell::@return dominated by mode_8bpppixelcell::@9 mode_8bpppixelcell::@6 mode_8bpppixelcell::@7 mode_8bpppixelcell::@1 mode_8bpppixelcell::@4 mode_8bpppixelcell::@5 mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 mode_8bpppixelcell::@13 mode_8bpppixelcell::@14 mode_8bpppixelcell::@12 mode_8bpppixelcell::@10 @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 mode_8bpppixelcell::@return menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@69 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@42 mode_8bpppixelcell menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@15 menu::@14 +mode_sixsfred dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@1 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 menu menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@8 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 menu mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@2 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@2 menu mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@3 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@9 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@4 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@4 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@5 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@11 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@6 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@7 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@13 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 mode_sixsfred::@13 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@14 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 mode_sixsfred::@14 mode_sixsfred::@13 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_sixsfred::@return dominated by mode_sixsfred::@return @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@67 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred::@1 mode_sixsfred::@3 mode_sixsfred::@2 menu mode_sixsfred::@5 mode_sixsfred::@4 mode_sixsfred::@7 mode_sixsfred::@6 mode_sixsfred::@9 mode_sixsfred::@8 menu::@57 menu::@55 menu::@59 main mode_sixsfred::@11 mode_sixsfred::@14 mode_sixsfred::@13 menu::@40 mode_sixsfred menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 menu::@14 +mode_twoplanebitmap dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@1 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@10 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@2 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@3 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@11 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@4 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@5 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@13 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@13 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@7 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@15 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@8 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@9 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@17 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@17 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@18 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@18 mode_twoplanebitmap::@17 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@return dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 mode_twoplanebitmap::@return main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@18 mode_twoplanebitmap::@17 mode_twoplanebitmap::@15 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@9 mode_twoplanebitmap::@5 mode_twoplanebitmap::@7 mode_twoplanebitmap::@8 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_twoplanebitmap::@6 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@65 menu::@53 menu::@51 menu::@50 mode_twoplanebitmap::@11 mode_twoplanebitmap::@10 menu::@48 menu::@47 menu::@63 menu::@61 menu menu::@57 menu::@55 menu::@59 mode_twoplanebitmap::@1 mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 mode_twoplanebitmap::@4 main mode_twoplanebitmap mode_twoplanebitmap::@5 mode_twoplanebitmap::@6 menu::@38 menu::@19 menu::@13 menu::@12 menu::@11 menu::@10 +mode_sixsfred2 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@1 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@8 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@2 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@3 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@9 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 menu::@2 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@4 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@5 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@11 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@6 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@7 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@13 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 mode_sixsfred2::@13 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@14 dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 mode_sixsfred2::@13 mode_sixsfred2::@14 menu::@36 menu::@19 menu::@12 menu::@11 menu::@10 +mode_sixsfred2::@return dominated by @begin @45 menu::@7 menu::@8 menu::@6 mode_sixsfred2::@1 menu::@3 mode_sixsfred2::@2 menu::@4 mode_sixsfred2::@3 menu::@1 mode_sixsfred2::@4 menu::@2 mode_sixsfred2::@5 menu::@9 mode_sixsfred2::@6 mode_sixsfred2::@7 mode_sixsfred2::@8 mode_sixsfred2::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@63 menu::@61 mode_sixsfred2 menu menu::@57 menu::@55 menu::@59 main mode_sixsfred2::@11 mode_sixsfred2::@13 mode_sixsfred2::@14 menu::@36 mode_sixsfred2::@return menu::@19 menu::@12 menu::@11 menu::@10 +mode_hicolmcchar dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 menu::@19 menu::@11 menu::@10 +mode_hicolmcchar::@1 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 +mode_hicolmcchar::@4 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 +mode_hicolmcchar::@2 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@2 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 +mode_hicolmcchar::@3 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 menu::@19 menu::@11 menu::@10 +mode_hicolmcchar::@5 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 mode_hicolmcchar::@5 menu::@19 menu::@11 menu::@10 +mode_hicolmcchar::@6 dominated by @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 mode_hicolmcchar::@6 mode_hicolmcchar::@5 menu::@19 menu::@11 menu::@10 +mode_hicolmcchar::@return dominated by mode_hicolmcchar::@return @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu::@61 menu menu::@57 menu::@55 menu::@59 main mode_hicolmcchar menu::@34 mode_hicolmcchar::@4 mode_hicolmcchar::@3 mode_hicolmcchar::@2 mode_hicolmcchar::@1 mode_hicolmcchar::@6 mode_hicolmcchar::@5 menu::@19 menu::@11 menu::@10 +mode_hicolecmchar dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 +mode_hicolecmchar::@1 dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 +mode_hicolecmchar::@4 dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 +mode_hicolecmchar::@2 dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 +mode_hicolecmchar::@3 dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 +mode_hicolecmchar::@5 dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@5 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 menu::@59 main menu::@32 menu::@19 menu::@10 +mode_hicolecmchar::@6 dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@5 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 mode_hicolecmchar::@6 menu::@59 main menu::@32 menu::@19 menu::@10 +mode_hicolecmchar::@return dominated by @begin mode_hicolecmchar @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu mode_hicolecmchar::@1 mode_hicolecmchar::@4 mode_hicolecmchar::@5 mode_hicolecmchar::@2 mode_hicolecmchar::@3 menu::@57 menu::@55 mode_hicolecmchar::@6 menu::@59 main mode_hicolecmchar::@return menu::@32 menu::@19 menu::@10 +mode_hicolstdchar dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 +mode_hicolstdchar::@1 dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@1 +mode_hicolstdchar::@4 dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@4 mode_hicolstdchar::@1 +mode_hicolstdchar::@2 dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@4 mode_hicolstdchar::@1 +mode_hicolstdchar::@3 dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@1 +mode_hicolstdchar::@5 dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@5 mode_hicolstdchar::@1 +mode_hicolstdchar::@6 dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@57 menu::@55 menu::@30 main mode_hicolstdchar::@6 menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@5 mode_hicolstdchar::@1 +mode_hicolstdchar::@return dominated by @begin @45 mode_hicolstdchar menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 menu::@9 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 mode_hicolstdchar::@return menu menu::@57 menu::@55 menu::@30 main mode_hicolstdchar::@6 menu::@19 mode_hicolstdchar::@2 mode_hicolstdchar::@3 mode_hicolstdchar::@4 mode_hicolstdchar::@5 mode_hicolstdchar::@1 +mode_stdbitmap dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 +mode_stdbitmap::@1 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 mode_stdbitmap::@1 +mode_stdbitmap::@5 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@1 +mode_stdbitmap::@2 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@1 +mode_stdbitmap::@3 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@1 +mode_stdbitmap::@6 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@1 +mode_stdbitmap::@7 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +mode_stdbitmap::@9 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +mode_stdbitmap::@4 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +mode_stdbitmap::@11 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@11 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +mode_stdbitmap::@8 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@11 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@8 mode_stdbitmap::@9 mode_stdbitmap::@1 +mode_stdbitmap::@return dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@11 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@return mode_stdbitmap::@7 mode_stdbitmap::@8 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@15 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@16 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@16 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@17 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@17 bitmap_line::@16 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@return dominated by bitmap_line::@return bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@3 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@3 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@16 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@2 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@2 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@20 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@2 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 bitmap_line::@20 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@6 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@2 bitmap_line::@6 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@15 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@1 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@23 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@23 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@24 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line::@24 bitmap_line::@23 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@10 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@1 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_line::@10 main::@1 main::@2 bitmap_line::@23 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@9 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@1 bitmap_line::@9 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@27 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@1 bitmap_line::@9 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_line::@27 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line::@13 dominated by bitmap_line mode_stdbitmap @begin @45 bitmap_line::@1 bitmap_line::@9 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_line::@13 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxi dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxi::@1 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxi::@5 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxi::@3 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@3 bitmap_line_ydxi::@1 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxi::@2 dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 bitmap_line_ydxi::@2 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxi::@return dominated by bitmap_line_ydxi bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line_ydxi::@return menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxi::@1 bitmap_line_ydxi::@2 bitmap_line_ydxi::@5 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_plot dominated by bitmap_line mode_stdbitmap @begin bitmap_plot @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_plot::@return dominated by bitmap_line mode_stdbitmap @begin bitmap_plot bitmap_plot::@return @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyi dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyi::@1 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@1 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyi::@5 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@1 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyi::@3 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@3 bitmap_line_xdyi::@1 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyi::@2 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@1 bitmap_line_xdyi::@2 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyi::@return dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 bitmap_line_xdyi menu::@2 bitmap_line_xdyi::@return main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 bitmap_line_xdyi::@5 bitmap_line_xdyi::@1 bitmap_line_xdyi::@2 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxd dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxd::@1 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxd::@5 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxd::@3 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@3 bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxd::@2 dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@2 bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_ydxd::@return dominated by bitmap_line_ydxd bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_line_ydxd::@return menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main bitmap_line_ydxd::@2 bitmap_line_ydxd::@5 menu::@28 bitmap_line_ydxd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyd dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyd::@1 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyd::@5 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyd::@3 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@3 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyd::@2 dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@2 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_line_xdyd::@return dominated by bitmap_line mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 bitmap_line_xdyd menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_line_xdyd::@return menu::@48 menu::@47 menu menu::@55 main menu::@28 bitmap_line_xdyd::@5 bitmap_line_xdyd::@2 bitmap_line_xdyd::@1 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@4 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_clear dominated by bitmap_clear mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_clear::@1 dominated by bitmap_clear mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_clear::@1 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_clear::@2 dominated by bitmap_clear mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 bitmap_clear::@1 bitmap_clear::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_clear::@3 dominated by bitmap_clear mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_clear::@3 main::@1 main::@2 bitmap_clear::@1 bitmap_clear::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_clear::@return dominated by bitmap_clear mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 bitmap_clear::@3 main::@1 main::@2 bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::@return menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@9 mode_stdbitmap::@1 +bitmap_init dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +bitmap_init::@1 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +bitmap_init::@2 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +bitmap_init::@3 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +bitmap_init::@7 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 bitmap_init::@7 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +bitmap_init::@4 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 bitmap_init::@4 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +bitmap_init::@return dominated by bitmap_init::@return mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@2 bitmap_init::@3 bitmap_init::@1 bitmap_init::@4 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +bitmap_init::@10 dominated by mode_stdbitmap @begin @45 menu::@7 menu::@8 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 bitmap_init::@1 menu::@48 menu::@47 menu bitmap_init menu::@55 main menu::@28 bitmap_init::@10 mode_stdbitmap::@2 mode_stdbitmap::@3 menu::@19 mode_stdbitmap::@5 mode_stdbitmap::@6 mode_stdbitmap::@7 mode_stdbitmap::@1 +mode_mcchar dominated by @begin @45 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_mcchar::@1 dominated by @begin @45 mode_mcchar::@1 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_mcchar::@4 dominated by @begin @45 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_mcchar::@2 dominated by @begin mode_mcchar::@2 @45 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_mcchar::@3 dominated by @begin mode_mcchar::@2 @45 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_mcchar::@5 dominated by @begin mode_mcchar::@2 @45 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@4 mode_mcchar::@5 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_mcchar::@6 dominated by @begin mode_mcchar::@2 @45 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@6 mode_mcchar::@4 mode_mcchar::@5 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_mcchar::@return dominated by mode_mcchar::@return @begin mode_mcchar::@2 @45 mode_mcchar::@3 mode_mcchar::@1 mode_mcchar::@6 mode_mcchar::@4 mode_mcchar::@5 mode_mcchar menu::@7 menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@53 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@26 menu::@19 +mode_ecmchar dominated by @begin @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_ecmchar::@1 dominated by @begin mode_ecmchar::@1 @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_ecmchar::@4 dominated by @begin mode_ecmchar::@4 mode_ecmchar::@1 @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_ecmchar::@2 dominated by @begin mode_ecmchar::@4 mode_ecmchar::@2 mode_ecmchar::@1 @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_ecmchar::@3 dominated by @begin mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_ecmchar::@5 dominated by @begin mode_ecmchar::@5 mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_ecmchar::@6 dominated by @begin mode_ecmchar::@6 mode_ecmchar::@5 mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_ecmchar::@return dominated by mode_ecmchar::@return @begin mode_ecmchar::@6 mode_ecmchar::@5 mode_ecmchar::@4 mode_ecmchar::@3 mode_ecmchar::@2 mode_ecmchar::@1 @45 mode_ecmchar menu::@6 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@51 menu::@50 menu::@48 menu::@47 menu main menu::@24 menu::@19 +mode_stdchar dominated by mode_stdchar @begin @45 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +mode_stdchar::@1 dominated by mode_stdchar @begin @45 mode_stdchar::@1 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +mode_stdchar::@4 dominated by mode_stdchar @begin @45 mode_stdchar::@1 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +mode_stdchar::@2 dominated by mode_stdchar @begin @45 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +mode_stdchar::@3 dominated by mode_stdchar @begin @45 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +mode_stdchar::@5 dominated by mode_stdchar @begin @45 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@5 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +mode_stdchar::@6 dominated by mode_stdchar @begin @45 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 menu::@19 +mode_stdchar::@return dominated by mode_stdchar @begin @45 mode_stdchar::@1 mode_stdchar::@2 mode_stdchar::@5 mode_stdchar::@6 mode_stdchar::@3 mode_stdchar::@4 menu::@3 menu::@4 menu::@1 menu::@2 main::@1 main::@2 menu::@50 menu::@48 menu::@47 menu main menu::@22 mode_stdchar::@return menu::@19 +print_str_lines dominated by @begin @45 menu::@1 menu::@2 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_str_lines::@1 dominated by @begin @45 menu::@1 menu::@2 print_str_lines::@1 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_str_lines::@return dominated by @begin print_str_lines::@return @45 menu::@1 menu::@2 print_str_lines::@1 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_str_lines::@4 dominated by @begin @45 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_str_lines::@8 dominated by @begin @45 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@8 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_str_lines::@5 dominated by @begin @45 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_str_lines::@9 dominated by @begin @45 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_ln dominated by print_ln @begin @45 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_ln::@1 dominated by print_ln print_ln::@1 @begin @45 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_ln::@return dominated by print_ln::@return print_ln print_ln::@1 @begin @45 print_str_lines::@9 menu::@1 menu::@2 print_str_lines::@1 print_str_lines::@4 print_str_lines::@5 main::@1 main::@2 print_str_lines menu::@48 menu::@47 menu main menu::@19 +print_cls dominated by print_cls @begin @45 menu::@1 menu::@2 main::@1 main::@2 menu::@47 menu main menu::@19 +print_cls::@1 dominated by print_cls @begin @45 menu::@1 menu::@2 print_cls::@1 main::@1 main::@2 menu::@47 menu main menu::@19 +print_cls::@return dominated by print_cls @begin @45 menu::@1 menu::@2 print_cls::@1 main::@1 main::@2 menu::@47 menu main print_cls::@return menu::@19 +print_set_screen dominated by @begin @45 menu::@1 menu::@2 main::@1 main::@2 print_set_screen menu main menu::@19 +print_set_screen::@return dominated by @begin @45 menu::@1 menu::@2 main::@1 main::@2 print_set_screen menu main menu::@19 print_set_screen::@return NATURAL LOOPS Found back edge: Loop head: main::@1 tails: main::@2 blocks: null @@ -20002,7 +20472,7 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_key_pressed::return#30 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 4.0 -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte) keyboard_matrix_read::return (byte) keyboard_matrix_read::return#0 1.3333333333333333 @@ -21332,15 +21802,15 @@ INITIAL ASM .label print_line_cursor = $9d //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @42 [phi:@begin->@42] -b42_from_bbegin: - jmp b42 -//SEG4 @42 -b42: +//SEG3 [1] phi from @begin to @45 [phi:@begin->@45] +b45_from_bbegin: + jmp b45 +//SEG4 @45 +b45: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @42 to @end [phi:@42->@end] -bend_from_b42: +//SEG6 [3] phi from @45 to @end [phi:@45->@end] +bend_from_b45: jmp bend //SEG7 @end bend: @@ -22513,7 +22983,7 @@ keyboard_key_pressed: { //SEG410 [223] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta _2 - //SEG411 [224] (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:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG411 [224] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _2 ldy colidx and keyboard_matrix_col_bitmask,y @@ -26357,7 +26827,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ k Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ mode_ctrl::ctrl#14 mode_ctrl::ctrl#22 mode_ctrl::ctrl#6 mode_ctrl::ctrl#13 mode_ctrl::ctrl#5 mode_ctrl::ctrl#12 mode_ctrl::ctrl#4 mode_ctrl::ctrl#11 mode_ctrl::ctrl#3 mode_ctrl::ctrl#10 mode_ctrl::ctrl#2 mode_ctrl::ctrl#17 mode_ctrl::ctrl#1 mode_ctrl::ctrl#0 ] Statement [219] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#20 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 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:204 [ keyboard_key_pressed::colidx#0 ] -Statement [224] (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:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [224] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [226] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:12::keyboard_key_pressed:41::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:48::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:55::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:62::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:69::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:76::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:83::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:90::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:97::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:104::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:111::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:118::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [227] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:48::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:55::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:62::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:69::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:76::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:83::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:90::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:97::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:104::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:111::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:118::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement asm { .byte$32,$dd lda$ff .byte$32,$00 } always clobbers reg byte a @@ -26820,7 +27290,7 @@ Statement [199] (byte) mode_ctrl::ctrl#5 ← (byte) mode_ctrl::ctrl#12 | (const Statement [205] (byte) mode_ctrl::ctrl#6 ← (byte) mode_ctrl::ctrl#13 | (const byte) DTV_COLORRAM_OFF#0 [ dtv_control#114 mode_ctrl::ctrl#6 ] ( main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835 [ dtv_control#114 mode_ctrl::ctrl#6 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869 [ dtv_control#114 mode_ctrl::ctrl#6 ] ) always clobbers reg byte a Statement [218] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#20 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::key#20 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [219] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#20 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a -Statement [224] (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:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [224] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [226] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:12::keyboard_key_pressed:41::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:48::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:55::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:62::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:69::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:76::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:83::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:90::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:97::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:104::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:111::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::keyboard_key_pressed:118::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [227] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:48::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:55::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:62::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:69::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:76::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:83::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:90::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:97::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:104::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:111::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::keyboard_key_pressed:118::keyboard_matrix_read:221 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166::keyboard_matrix_read:221 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207::keyboard_matrix_read:221 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement asm { .byte$32,$dd lda$ff .byte$32,$00 } always clobbers reg byte a @@ -27907,15 +28377,15 @@ ASSEMBLER BEFORE OPTIMIZATION .label print_line_cursor = $d //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @42 [phi:@begin->@42] -b42_from_bbegin: - jmp b42 -//SEG4 @42 -b42: +//SEG3 [1] phi from @begin to @45 [phi:@begin->@45] +b45_from_bbegin: + jmp b45 +//SEG4 @45 +b45: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @42 to @end [phi:@42->@end] -bend_from_b42: +//SEG6 [3] phi from @45 to @end [phi:@45->@end] +bend_from_b45: jmp bend //SEG7 @end bend: @@ -28957,7 +29427,7 @@ keyboard_key_pressed: { b2: //SEG410 [223] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 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 - //SEG411 [224] (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:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 + //SEG411 [224] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 ldy colidx and keyboard_matrix_col_bitmask,y jmp breturn @@ -32405,7 +32875,7 @@ print_set_screen: { MENU_TEXT: .text "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 0000001@"+"3. Multicolor Char (V) 0000010@"+"4. Standard Bitmap (V) 0000100@"+"5. Multicolor Bitmap (V) 0000110@"+"6. High Color Standard Char (H) 0001000@"+"7. High Extended Color Char (H) 0001001@"+"8. High Multicolor Char (H) 0001010@"+"9. High Multicolor Bitmap (H) 0001110@"+"a. Sixs Fred 2 (D) 0010111@"+"b. Two Plane Bitmap (D) 0011101@"+"c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+"d. 8bpp Pixel Cell (D) 0111011@"+"e. Chunky 8bpp Bitmap (D) 1111011@"+"----------------------------------------@"+" (V) vicII (H) vicII+hicol (D) c64dtv@"+"@" ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b42 +Removing instruction jmp b45 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp breturn @@ -32804,8 +33274,8 @@ Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction bbegin: -Removing instruction b42_from_bbegin: -Removing instruction bend_from_b42: +Removing instruction b45_from_bbegin: +Removing instruction bend_from_b45: Removing instruction b2_from_b1: Removing instruction b1_from_b1: Removing instruction b2_from_b2: @@ -33024,7 +33494,7 @@ Removing instruction b1_from_print_ln: Removing instruction b1_from_b1: Removing instruction b1_from_b1: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b42: +Removing instruction b45: Removing instruction bend: Removing instruction b1_from_main: Removing instruction breturn: @@ -33328,7 +33798,7 @@ Succesful ASM optimization Pass5UnreachableCodeElimination Fixing long branch [231] beq b4 to bne FINAL SYMBOL TABLE -(label) @42 +(label) @45 (label) @begin (label) @end (byte*) BGCOL @@ -33789,8 +34259,8 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::return#30 reg byte a 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -34759,11 +35229,11 @@ Score: 2302224 .label dtv_control = 2 .label print_line_cursor = $d //SEG2 @begin -//SEG3 [1] phi from @begin to @42 [phi:@begin->@42] -//SEG4 @42 +//SEG3 [1] phi from @begin to @45 [phi:@begin->@45] +//SEG4 @45 //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @42 to @end [phi:@42->@end] +//SEG6 [3] phi from @45 to @end [phi:@45->@end] //SEG7 @end //SEG8 main main: { @@ -35547,7 +36017,7 @@ keyboard_key_pressed: { //SEG409 keyboard_key_pressed::@2 //SEG410 [223] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 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 - //SEG411 [224] (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:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 + //SEG411 [224] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:12::keyboard_key_pressed:41 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:48 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:55 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:62 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:69 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:76 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:83 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:90 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:97 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:104 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:111 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::keyboard_key_pressed:118 [ dtv_control#1 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:166 [ dtv_control#114 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:171 [ dtv_control#114 mode_ctrl::ctrl#0 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:177 [ dtv_control#114 mode_ctrl::ctrl#17 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:183 [ dtv_control#114 mode_ctrl::ctrl#10 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:189 [ dtv_control#114 mode_ctrl::ctrl#11 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:195 [ dtv_control#114 mode_ctrl::ctrl#12 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:201 [ dtv_control#114 mode_ctrl::ctrl#13 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bppchunkybmm:123::mode_ctrl:158::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_8bpppixelcell:116::mode_ctrl:286::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred:109::mode_ctrl:339::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_twoplanebitmap:102::mode_ctrl:397::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_sixsfred2:95::mode_ctrl:454::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolmcchar:88::mode_ctrl:488::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolecmchar:81::mode_ctrl:523::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_hicolstdchar:74::mode_ctrl:555::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdbitmap:67::mode_ctrl:596::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_mcchar:60::mode_ctrl:798::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_ecmchar:53::mode_ctrl:835::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] main:2::menu:12::mode_stdchar:46::mode_ctrl:869::keyboard_key_pressed:207 [ dtv_control#114 mode_ctrl::ctrl#22 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 ldy colidx and keyboard_matrix_col_bitmask,y //SEG412 keyboard_key_pressed::@return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.sym b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.sym index 8b9e59734..10e26acf4 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.sym @@ -1,4 +1,4 @@ -(label) @42 +(label) @45 (label) @begin (label) @end (byte*) BGCOL @@ -459,8 +459,8 @@ (byte) keyboard_key_pressed::return#30 reg byte a 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.cfg b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.cfg index 0e91d27a6..ebcfc181c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@12 -@12: scope:[] from @begin + to:@15 +@15: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @12 +@end: scope:[] from @15 [3] phi() [ ] ( ) -main: scope:[main] from @12 +main: scope:[main] from @15 [4] phi() [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@1 @@ -235,7 +235,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@21 main::@3 main to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [121] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) + [122] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [123] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log index 7dd878005..c5e0182a5 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log @@ -364,7 +364,7 @@ const byte[] keyboard_char_keycodes = { byte[8] keyboard_matrix_row_bitmask = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; // Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7) -byte[] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; +byte[8] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; // Initialize keyboard reading by setting CIA#$ Data Direction Registers void keyboard_init() { @@ -384,7 +384,7 @@ byte keyboard_matrix_read(byte rowid) { return row_pressed_bits; } -// Determines whether a specific key is currently pressed +// Determines whether a specific key is currently pressed by accessing the matrix directly // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed @@ -401,7 +401,102 @@ byte keyboard_key_pressed(byte key) { byte keyboard_get_keycode(byte ch) { return keyboard_char_keycodes[ch]; } + +// Keyboard event buffer. Contains keycodes for key presses/releases. Presses are represented by the keycode. Releases by keycode | $40. The buffer is filled by keyboard_scan() +byte[8] keyboard_events; +// Keyboard event buffer size. The number of events currently in the event buffer +byte keyboard_events_size = 0; +// Current keyboard modifiers (left shift, right shift, ctrl, commodore) +byte keyboard_modifiers = 0; +// Left shift is pressed +const byte KEY_MODIFIER_LSHIFT = 1; +// Right shift is pressed +const byte KEY_MODIFIER_RSHIFT = 2; +// CTRL is pressed +const byte KEY_MODIFIER_CTRL = 4; +// Commodore is pressed +const byte KEY_MODIFIER_COMMODORE = 8; +// Any shift is pressed +const byte KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT; +// The values scanned values for each row. Set by keyboard_scan() and used by keyboard_get_event() +byte[8] keyboard_scan_values; + +// Scans the entire matrix to determine which keys have been pressed/depressed. +// Generates keyboard events into the event buffer. Events can be read using keyboard_event_get(). +// Handles debounce and only generates events when the status of a key changes. +// Also stores current status of modifiers in keyboard_modifiers. +void keyboard_event_scan() { + byte keycode = 0; + for(byte row : 0..7) { + byte row_scan = keyboard_matrix_read(row); + if(row_scan!=keyboard_scan_values[row]) { + // Something has changed on the keyboard row - check each column + for(byte col : 0..7){ + // XOR of row scan with the last seen row scan AND'ed with the col bitmask will be non-0 if the key status is changed + if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) { + // Key(row, col) status has changed. We have an event. + // Only process event if there is still room in the buffer + if(keyboard_events_size!=8) { + // AND of row scan and bit mask determines if key is pressed or released + byte event_type = row_scan&keyboard_matrix_col_bitmask[col]; + if(event_type==0) { + // Key released + keyboard_events[keyboard_events_size++] = keycode|$40; + } else { + // Key pressed + keyboard_events[keyboard_events_size++] = keycode; + } + } + } + keycode++; + } + // Store the current keyboard status for the row to debounce + keyboard_scan_values[row] = row_scan; + } else { + // Update current keycode + keycode = keycode + 8; + } + } + // Update the keyboard modifiers + keyboard_modifiers = 0; + if(keyboard_event_pressed(KEY_LSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_LSHIFT; + } + if(keyboard_event_pressed(KEY_RSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_RSHIFT; + } + if(keyboard_event_pressed(KEY_CTRL)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_CTRL; + } + if(keyboard_event_pressed(KEY_COMMODORE)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_COMMODORE; + } +} + +// Determine if a specific key is currently pressed based on the last keyboard_event_scan() +// Returns 0 is not pressed and non-0 if pressed +byte keyboard_event_pressed(byte keycode) { + byte row_bits = keyboard_scan_values[keycode>>3]; + return row_bits & keyboard_matrix_col_bitmask[keycode&7]; +} + +// Get the next event from the keyboard event buffer. +// Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. +// The buffer is filled by keyboard_scan() +byte keyboard_event_get() { + if(keyboard_events_size==0) { + return $ff; + } else { + return keyboard_events[--keyboard_events_size]; + } +} + + Importing c64.kc +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode +Adding pre/post-modifier (byte) keyboard_events_size ← -- (byte) keyboard_events_size Adding pre/post-modifier (byte*) main::sc ← ++ (byte*) main::sc Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at Adding pre/post-modifier (byte*) print_str_at::str ← ++ (byte*) print_str_at::str @@ -674,7 +769,7 @@ endproc // mul16s() (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } proc (void()) keyboard_init() *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -697,7 +792,7 @@ proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 goto keyboard_key_pressed::@return keyboard_key_pressed::@return: @@ -711,6 +806,122 @@ keyboard_get_keycode::@return: (byte) keyboard_get_keycode::return ← (byte) keyboard_get_keycode::return return (byte) keyboard_get_keycode::return endproc // keyboard_get_keycode() + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } +proc (void()) keyboard_event_scan() + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@1: + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@3: + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + goto keyboard_event_scan::@7 +keyboard_event_scan::@6: + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +keyboard_event_scan::@7: +keyboard_event_scan::@5: +keyboard_event_scan::@4: + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + goto keyboard_event_scan::@8 +keyboard_event_scan::@2: + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +keyboard_event_scan::@8: + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 +keyboard_event_scan::@9: + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 +keyboard_event_scan::@10: + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 +keyboard_event_scan::@11: + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 +keyboard_event_scan::@12: +keyboard_event_scan::@return: + return +endproc // keyboard_event_scan() +proc (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + goto keyboard_event_pressed::@return +keyboard_event_pressed::@return: + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return +endproc // keyboard_event_pressed() +proc (byte()) keyboard_event_get() + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + goto keyboard_event_get::@return + goto keyboard_event_get::@2 +keyboard_event_get::@1: + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + goto keyboard_event_get::@return +keyboard_event_get::@2: +keyboard_event_get::@return: + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return +endproc // keyboard_event_get() (byte*) SCREEN ← (word/signed word/dword/signed dword) 1024 proc (void()) main() (byte*) main::sc ← (byte*) SCREEN @@ -860,6 +1071,7 @@ endproc // plot_chargen() call main SYMBOLS +(byte~) $0 (byte*) BGCOL (byte*) BGCOL1 (byte*) BGCOL2 @@ -929,6 +1141,11 @@ SYMBOLS (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O (byte) KEY_P @@ -991,6 +1208,74 @@ SYMBOLS (byte) WHITE (byte) YELLOW (byte[]) keyboard_char_keycodes +(byte()) keyboard_event_get() +(boolean~) keyboard_event_get::$0 +(boolean~) keyboard_event_get::$1 +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@2 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 +(byte~) keyboard_event_pressed::$1 +(byte~) keyboard_event_pressed::$2 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::row_bits +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 +(boolean~) keyboard_event_scan::$1 +(boolean~) keyboard_event_scan::$10 +(boolean~) keyboard_event_scan::$11 +(byte/word/dword~) keyboard_event_scan::$12 +(boolean~) keyboard_event_scan::$13 +(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +(boolean~) keyboard_event_scan::$15 +(byte~) keyboard_event_scan::$16 +(boolean~) keyboard_event_scan::$17 +(boolean~) keyboard_event_scan::$18 +(byte~) keyboard_event_scan::$19 +(boolean~) keyboard_event_scan::$2 +(byte~) keyboard_event_scan::$20 +(boolean~) keyboard_event_scan::$21 +(boolean~) keyboard_event_scan::$22 +(byte~) keyboard_event_scan::$23 +(byte~) keyboard_event_scan::$24 +(boolean~) keyboard_event_scan::$25 +(boolean~) keyboard_event_scan::$26 +(byte~) keyboard_event_scan::$27 +(byte~) keyboard_event_scan::$28 +(boolean~) keyboard_event_scan::$29 +(byte~) keyboard_event_scan::$3 +(boolean~) keyboard_event_scan::$30 +(byte~) keyboard_event_scan::$31 +(byte~) keyboard_event_scan::$4 +(boolean~) keyboard_event_scan::$5 +(boolean~) keyboard_event_scan::$6 +(boolean~) keyboard_event_scan::$7 +(boolean~) keyboard_event_scan::$8 +(byte~) keyboard_event_scan::$9 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row_scan +(byte[8]) keyboard_events +(byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) (label) keyboard_get_keycode::@return (byte) keyboard_get_keycode::ch @@ -1007,7 +1292,7 @@ SYMBOLS (byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::rowidx -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -1015,6 +1300,8 @@ SYMBOLS (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask +(byte) keyboard_modifiers +(byte[8]) keyboard_scan_values (void()) main() (byte*~) main::$0 (boolean~) main::$1 @@ -1588,7 +1875,7 @@ mul16s::@5: scope:[mul16s] from (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } to:@6 keyboard_init: scope:[keyboard_init] from *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 @@ -1619,7 +1906,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1 @@ -1640,8 +1927,175 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k keyboard_get_keycode::@1: scope:[keyboard_get_keycode] from to:keyboard_get_keycode::@return @9: scope:[] from @8 - (byte*) SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } to:@10 +keyboard_event_scan: scope:[keyboard_event_scan] from + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + to:keyboard_event_scan::@13 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19 + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 + to:keyboard_event_scan::@8 +keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4 + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + to:keyboard_event_scan::@14 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5 + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + to:keyboard_event_scan::@18 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + to:keyboard_event_scan::@15 +keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7 + to:keyboard_event_scan::@4 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + to:keyboard_event_scan::@16 +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6 + to:keyboard_event_scan::@5 +keyboard_event_scan::@17: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@6 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + to:keyboard_event_scan::@20 +keyboard_event_scan::@19: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@2 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + to:keyboard_event_scan::@21 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21 + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + to:keyboard_event_scan::@22 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 + to:keyboard_event_scan::@9 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + to:keyboard_event_scan::@23 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 + to:keyboard_event_scan::@10 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23 + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + to:keyboard_event_scan::@24 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 + to:keyboard_event_scan::@11 +keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24 + to:keyboard_event_scan::@return +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 + to:keyboard_event_scan::@12 +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12 + return + to:@return +@10: scope:[] from @9 + to:@11 +keyboard_event_pressed: scope:[keyboard_event_pressed] from + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed keyboard_event_pressed::@1 + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return + to:@return +keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from + to:keyboard_event_pressed::@return +@11: scope:[] from @10 + to:@12 +keyboard_event_get: scope:[keyboard_event_get] from + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + to:keyboard_event_get::@3 +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5 + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + to:keyboard_event_get::@return +keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3 + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return + to:@return +keyboard_event_get::@4: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +keyboard_event_get::@2: scope:[keyboard_event_get] from keyboard_event_get::@4 keyboard_event_get::@6 + to:keyboard_event_get::@return +keyboard_event_get::@5: scope:[keyboard_event_get] from + to:keyboard_event_get::@1 +keyboard_event_get::@6: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +@12: scope:[] from @11 + (byte*) SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024 + to:@13 main: scope:[main] from (byte*) main::sc ← (byte*) SCREEN to:main::@1 @@ -1762,8 +2216,8 @@ main::@24: scope:[main] from main::@23 main::@return: scope:[main] from main::@24 return to:@return -@10: scope:[] from @9 - to:@11 +@13: scope:[] from @12 + to:@14 print_str_at: scope:[print_str_at] from to:print_str_at::@1 print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2 @@ -1786,8 +2240,8 @@ print_str_at::@6: scope:[print_str_at] from print_str_at::@return: scope:[print_str_at] from print_str_at::@3 return to:@return -@11: scope:[] from @10 - to:@12 +@14: scope:[] from @13 + to:@15 plot_chargen: scope:[plot_chargen] from asm { sei } (word~) plot_chargen::$0 ← ((word)) (byte) plot_chargen::ch @@ -1848,16 +2302,19 @@ plot_chargen::@8: scope:[plot_chargen] from plot_chargen::@7 plot_chargen::@return: scope:[plot_chargen] from plot_chargen::@8 return to:@return -@12: scope:[] from @11 +@15: scope:[] from @14 call main to:@end -@end: scope:[] from @12 +@end: scope:[] from @15 Removing unused procedure mul8s Removing unused procedure mul8su Removing unused procedure mul16s Removing unused procedure keyboard_init +Removing unused procedure keyboard_event_scan +Removing unused procedure keyboard_event_get Removing unused procedure mul16u +Removing unused procedure keyboard_event_pressed Eliminating unused variable (byte*) PROCPORT_DDR and assignment [0] (byte*) PROCPORT_DDR ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 Eliminating unused variable (byte) PROCPORT_DDR_MEMORY_MASK and assignment [1] (byte) PROCPORT_DDR_MEMORY_MASK ← (byte/signed byte/word/signed word/dword/signed dword) 7 Eliminating unused variable (byte) PROCPORT_RAM_ALL and assignment [3] (byte) PROCPORT_RAM_ALL ← (byte/signed byte/word/signed word/dword/signed dword) 48 @@ -1928,12 +2385,22 @@ Eliminating unused variable (byte) KEY_RSHIFT and assignment [134] (byte) KEY_RS Eliminating unused variable (byte) KEY_CTRL and assignment [140] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58 Eliminating unused variable (byte) KEY_COMMODORE and assignment [143] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 Eliminating unused variable (byte) KEY_RUNSTOP and assignment [145] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 +Eliminating unused variable (byte[8]) keyboard_events and assignment [167] (byte[8]) keyboard_events ← { fill( 8, 0) } +Eliminating unused variable (byte) keyboard_events_size and assignment [168] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) keyboard_modifiers and assignment [169] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [172] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [173] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 +Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [175] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 +Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [176] (byte[8]) keyboard_scan_values ← { fill( 8, 0) } Eliminating unused variable - keeping the call (void~) main::$3 Eliminating unused variable - keeping the call (void~) main::$6 Eliminating unused variable - keeping the call (void~) main::$9 Eliminating unused variable - keeping the call (void~) main::$12 Eliminating unused variable - keeping the call (void~) main::$13 Eliminating unused variable - keeping the call (void~) main::$36 +Eliminating unused variable (byte~) $0 and assignment [99] (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT +Eliminating unused variable (byte) KEY_MODIFIER_LSHIFT and assignment [97] (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) KEY_MODIFIER_RSHIFT and assignment [98] (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 Creating constant string variable for inline (const string) main::str "f1@" Creating constant string variable for inline (const string) main::str1 "f3@" Creating constant string variable for inline (const string) main::str2 "f5@" @@ -1952,14 +2419,17 @@ Removing empty block @7 Removing empty block keyboard_key_pressed::@1 Removing empty block @8 Removing empty block keyboard_get_keycode::@1 +Removing empty block @9 +Removing empty block @10 +Removing empty block @11 Removing empty block main::@20 Removing empty block main::@24 -Removing empty block @10 +Removing empty block @13 Removing empty block print_str_at::@4 Removing empty block print_str_at::@3 Removing empty block print_str_at::@5 Removing empty block print_str_at::@6 -Removing empty block @11 +Removing empty block @14 PROCEDURE MODIFY VARIABLE ANALYSIS Completing Phi functions... @@ -2094,8 +2564,8 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } - to:@9 + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + to:@12 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 ) *((byte*) CIA1_PORT_A#0) ← *((byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#1) @@ -2122,7 +2592,7 @@ keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_presse (byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 ) (byte) keyboard_matrix_read::return#4 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 ) (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#4 - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 @@ -2139,11 +2609,11 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k (byte) keyboard_get_keycode::return#1 ← (byte) keyboard_get_keycode::return#3 return to:@return -@9: scope:[] from @5 +@12: scope:[] from @5 (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - to:@12 -main: scope:[main] from @12 - (byte*) SCREEN#1 ← phi( @12/(byte*) SCREEN#8 ) + to:@15 +main: scope:[main] from @15 + (byte*) SCREEN#1 ← phi( @15/(byte*) SCREEN#8 ) (byte*) main::sc#0 ← (byte*) SCREEN#1 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -2527,19 +2997,19 @@ plot_chargen::@8: scope:[plot_chargen] from plot_chargen::@7 plot_chargen::@return: scope:[plot_chargen] from plot_chargen::@8 return to:@return -@12: scope:[] from @9 - (byte*) SCREEN#8 ← phi( @9/(byte*) SCREEN#0 ) +@15: scope:[] from @12 + (byte*) SCREEN#8 ← phi( @12/(byte*) SCREEN#0 ) call main param-assignment - to:@13 -@13: scope:[] from @12 + to:@16 +@16: scope:[] from @15 to:@end -@end: scope:[] from @13 +@end: scope:[] from @16 SYMBOL TABLE SSA (label) @12 -(label) @13 +(label) @15 +(label) @16 (label) @5 -(label) @9 (label) @begin (label) @end (byte*) CHARGEN @@ -2751,8 +3221,8 @@ SYMBOL TABLE SSA (byte) keyboard_key_pressed::return#9 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 -(byte[]) keyboard_matrix_col_bitmask -(byte[]) keyboard_matrix_col_bitmask#0 +(byte[8]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask#0 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -3068,7 +3538,7 @@ SYMBOL TABLE SSA (byte*) print_str_at::str#7 OPTIMIZING CONTROL FLOW GRAPH -Culled Empty Block (label) @13 +Culled Empty Block (label) @16 Succesful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (boolean~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) mul8u::$2 ← (byte~) mul8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) main::$17 ← (byte~) main::$15 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$16 ← (byte~) main::$15 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3402,7 +3872,7 @@ Constant (const byte) KEY_2#0 = 59 Constant (const byte) KEY_SPACE#0 = 60 Constant (const byte) KEY_Q#0 = 62 Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } Constant (const byte*) SCREEN#0 = ((byte*))1024 Constant (const string) print_str_at::str#0 = main::str Constant (const string) print_str_at::str#1 = main::str1 @@ -3455,7 +3925,7 @@ Eliminating unused constant (const byte) main::shift#0 Succesful SSA optimization PassNEliminateUnusedVars Culled Empty Block (label) mul8u::@3 Culled Empty Block (label) @5 -Culled Empty Block (label) @9 +Culled Empty Block (label) @12 Culled Empty Block (label) main::@28 Culled Empty Block (label) main::@14 Not culling empty block because it shares successor with its predecessor. (label) main::@15 @@ -3713,7 +4183,7 @@ Constant inlined main::$7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed Constant inlined main::pressed#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined plot_chargen::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2ConstantInlining -Block Sequence Planned @begin @12 @end main main::@1 main::@13 main::@25 main::@26 main::@27 main::@2 main::@29 main::@3 main::@30 main::@15 main::@4 main::@31 main::@16 main::@5 main::@32 main::@17 main::@6 main::@33 main::@18 main::@7 main::@34 main::@19 main::@9 main::@10 main::@35 main::@21 main::@36 main::@11 main::@22 main::@12 main::@23 main::@return plot_chargen plot_chargen::@5 plot_chargen::@1 plot_chargen::@9 plot_chargen::@2 plot_chargen::@3 plot_chargen::@6 plot_chargen::@4 plot_chargen::@7 plot_chargen::@8 plot_chargen::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return print_str_at print_str_at::@1 print_str_at::@return print_str_at::@2 +Block Sequence Planned @begin @15 @end main main::@1 main::@13 main::@25 main::@26 main::@27 main::@2 main::@29 main::@3 main::@30 main::@15 main::@4 main::@31 main::@16 main::@5 main::@32 main::@17 main::@6 main::@33 main::@18 main::@7 main::@34 main::@19 main::@9 main::@10 main::@35 main::@21 main::@36 main::@11 main::@22 main::@12 main::@23 main::@return plot_chargen plot_chargen::@5 plot_chargen::@1 plot_chargen::@9 plot_chargen::@2 plot_chargen::@3 plot_chargen::@6 plot_chargen::@4 plot_chargen::@7 plot_chargen::@8 plot_chargen::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return print_str_at print_str_at::@1 print_str_at::@return print_str_at::@2 Added new block during phi lifting main::@38(between main::@1 and main::@1) Added new block during phi lifting main::@39(between main::@29 and main::@2) Added new block during phi lifting main::@40(between main::@23 and main::@3) @@ -3726,9 +4196,9 @@ Added new block during phi lifting plot_chargen::@10(between plot_chargen and pl Added new block during phi lifting plot_chargen::@11(between plot_chargen::@7 and plot_chargen::@2) Added new block during phi lifting plot_chargen::@12(between plot_chargen::@4 and plot_chargen::@3) Added new block during phi lifting mul8u::@10(between mul8u::@2 and mul8u::@4) -Block Sequence Planned @begin @12 @end main main::@1 main::@13 main::@25 main::@26 main::@27 main::@2 main::@29 main::@3 main::@30 main::@15 main::@4 main::@31 main::@16 main::@5 main::@32 main::@17 main::@6 main::@33 main::@18 main::@7 main::@34 main::@19 main::@9 main::@10 main::@35 main::@21 main::@36 main::@11 main::@22 main::@12 main::@23 main::@return main::@40 main::@45 main::@44 main::@43 main::@42 main::@41 main::@39 main::@38 plot_chargen plot_chargen::@5 plot_chargen::@1 plot_chargen::@9 plot_chargen::@2 plot_chargen::@3 plot_chargen::@6 plot_chargen::@4 plot_chargen::@7 plot_chargen::@8 plot_chargen::@return plot_chargen::@11 plot_chargen::@12 plot_chargen::@10 mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return print_str_at print_str_at::@1 print_str_at::@return print_str_at::@2 +Block Sequence Planned @begin @15 @end main main::@1 main::@13 main::@25 main::@26 main::@27 main::@2 main::@29 main::@3 main::@30 main::@15 main::@4 main::@31 main::@16 main::@5 main::@32 main::@17 main::@6 main::@33 main::@18 main::@7 main::@34 main::@19 main::@9 main::@10 main::@35 main::@21 main::@36 main::@11 main::@22 main::@12 main::@23 main::@return main::@40 main::@45 main::@44 main::@43 main::@42 main::@41 main::@39 main::@38 plot_chargen plot_chargen::@5 plot_chargen::@1 plot_chargen::@9 plot_chargen::@2 plot_chargen::@3 plot_chargen::@6 plot_chargen::@4 plot_chargen::@7 plot_chargen::@8 plot_chargen::@return plot_chargen::@11 plot_chargen::@12 plot_chargen::@10 mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return print_str_at print_str_at::@1 print_str_at::@return print_str_at::@2 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @12 +Adding NOP phi() at start of @15 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@13 @@ -3819,9 +4289,9 @@ Culled Empty Block (label) plot_chargen::@11 Culled Empty Block (label) plot_chargen::@12 Culled Empty Block (label) plot_chargen::@10 Culled Empty Block (label) mul8u::@10 -Block Sequence Planned @begin @12 @end main main::@1 main::@13 main::@25 main::@26 main::@27 main::@2 main::@29 main::@3 main::@30 main::@4 main::@31 main::@5 main::@32 main::@6 main::@33 main::@7 main::@34 main::@19 main::@9 main::@10 main::@35 main::@21 main::@36 main::@11 main::@22 main::@12 main::@23 main::@return main::@44 main::@43 main::@42 main::@41 plot_chargen plot_chargen::@5 plot_chargen::@1 plot_chargen::@9 plot_chargen::@2 plot_chargen::@3 plot_chargen::@6 plot_chargen::@4 plot_chargen::@7 plot_chargen::@8 plot_chargen::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return print_str_at print_str_at::@1 print_str_at::@return print_str_at::@2 +Block Sequence Planned @begin @15 @end main main::@1 main::@13 main::@25 main::@26 main::@27 main::@2 main::@29 main::@3 main::@30 main::@4 main::@31 main::@5 main::@32 main::@6 main::@33 main::@7 main::@34 main::@19 main::@9 main::@10 main::@35 main::@21 main::@36 main::@11 main::@22 main::@12 main::@23 main::@return main::@44 main::@43 main::@42 main::@41 plot_chargen plot_chargen::@5 plot_chargen::@1 plot_chargen::@9 plot_chargen::@2 plot_chargen::@3 plot_chargen::@6 plot_chargen::@4 plot_chargen::@7 plot_chargen::@8 plot_chargen::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return print_str_at print_str_at::@1 print_str_at::@return print_str_at::@2 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @12 +Adding NOP phi() at start of @15 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@13 @@ -3854,14 +4324,14 @@ Propagating live ranges... FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@12 -@12: scope:[] from @begin + to:@15 +@15: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @12 +@end: scope:[] from @15 [3] phi() [ ] ( ) -main: scope:[main] from @12 +main: scope:[main] from @15 [4] phi() [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@1 @@ -4089,7 +4559,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@21 main::@3 main to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [121] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) + [122] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [123] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) @@ -4127,69 +4597,69 @@ print_str_at::@2: scope:[print_str_at] from print_str_at::@1 DOMINATORS @begin dominated by @begin -@12 dominated by @begin @12 -@end dominated by @end @begin @12 -main dominated by main @begin @12 -main::@1 dominated by main main::@1 @begin @12 -main::@13 dominated by main main::@1 @begin @12 main::@13 -main::@25 dominated by main main::@1 @begin main::@25 @12 main::@13 -main::@26 dominated by main main::@1 @begin main::@26 main::@25 @12 main::@13 -main::@27 dominated by main main::@1 @begin main::@27 main::@26 main::@25 @12 main::@13 -main::@2 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 main::@13 -main::@29 dominated by main main::@1 main::@2 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@3 dominated by main main::@1 main::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@30 dominated by main main::@1 main::@2 main::@3 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@4 dominated by main main::@1 main::@2 main::@3 main::@4 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@31 dominated by main main::@1 main::@2 main::@3 main::@4 main::@31 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@5 dominated by main main::@1 main::@2 main::@5 main::@3 main::@4 main::@31 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@32 dominated by main main::@1 main::@2 main::@5 main::@3 main::@4 main::@31 main::@30 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@6 dominated by main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@33 dominated by main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@7 dominated by main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@34 dominated by main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@19 dominated by main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@19 main::@13 -main::@9 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@10 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@10 main::@13 -main::@35 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@10 main::@13 -main::@21 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@21 main::@27 main::@29 main::@26 main::@25 @12 main::@10 main::@13 -main::@36 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@36 main::@21 main::@27 main::@29 main::@26 main::@25 @12 main::@10 main::@13 -main::@11 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@11 main::@10 main::@13 -main::@22 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@22 main::@27 main::@29 main::@26 main::@25 @12 main::@11 main::@10 main::@13 -main::@12 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@11 main::@10 main::@13 main::@12 -main::@23 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@23 main::@26 main::@25 @12 main::@11 main::@10 main::@13 main::@12 -main::@return dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@return main::@27 main::@29 main::@23 main::@26 main::@25 @12 main::@11 main::@10 main::@13 main::@12 -main::@44 dominated by main::@44 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@43 dominated by main::@43 main main::@1 main::@2 main::@5 main::@3 main::@4 main::@31 main::@30 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@42 dominated by main::@42 main main::@1 main::@2 main::@3 main::@4 main::@31 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -main::@41 dominated by main::@41 main main::@1 main::@2 main::@3 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 -plot_chargen dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 main::@13 plot_chargen -plot_chargen::@5 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@5 main::@13 plot_chargen -plot_chargen::@1 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 main::@13 plot_chargen plot_chargen::@1 -plot_chargen::@9 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 main::@13 plot_chargen plot_chargen::@1 -plot_chargen::@2 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 main::@13 plot_chargen plot_chargen::@2 plot_chargen::@1 -plot_chargen::@3 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 -plot_chargen::@6 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 plot_chargen::@6 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 -plot_chargen::@4 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 -plot_chargen::@7 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 plot_chargen::@7 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 -plot_chargen::@8 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 plot_chargen::@8 plot_chargen::@7 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 -plot_chargen::@return dominated by main main::@1 main::@2 plot_chargen::@return @begin main::@27 main::@26 main::@25 @12 plot_chargen::@9 plot_chargen::@8 plot_chargen::@7 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 -mul8u dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @12 main::@13 plot_chargen plot_chargen::@1 -mul8u::@1 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @12 main::@13 plot_chargen plot_chargen::@1 mul8u::@1 -mul8u::@return dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @12 main::@13 mul8u::@return plot_chargen plot_chargen::@1 mul8u::@1 -mul8u::@2 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @12 main::@13 plot_chargen plot_chargen::@1 mul8u::@2 mul8u::@1 -mul8u::@7 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @12 main::@13 mul8u::@7 plot_chargen plot_chargen::@1 mul8u::@2 mul8u::@1 -mul8u::@4 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @12 main::@13 plot_chargen plot_chargen::@1 mul8u::@2 mul8u::@1 mul8u::@4 -keyboard_key_pressed dominated by main main::@1 main::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 keyboard_key_pressed -keyboard_key_pressed::@2 dominated by main main::@1 main::@2 keyboard_key_pressed::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 @12 main::@13 keyboard_key_pressed -keyboard_key_pressed::@return dominated by main main::@1 main::@2 keyboard_key_pressed::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 keyboard_key_pressed::@return @12 main::@13 keyboard_key_pressed -keyboard_matrix_read dominated by main main::@1 main::@2 main::@3 @begin keyboard_matrix_read main::@27 main::@29 main::@26 main::@25 @12 main::@13 keyboard_key_pressed -keyboard_matrix_read::@return dominated by main main::@1 main::@2 main::@3 @begin keyboard_matrix_read main::@27 main::@29 main::@26 main::@25 @12 main::@13 keyboard_matrix_read::@return keyboard_key_pressed -keyboard_get_keycode dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 keyboard_get_keycode main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @12 main::@10 main::@13 -keyboard_get_keycode::@return dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 keyboard_get_keycode main::@31 main::@30 main::@33 @begin main::@32 main::@34 keyboard_get_keycode::@return main::@27 main::@29 main::@26 main::@25 @12 main::@10 main::@13 -print_str_at dominated by main main::@1 @begin print_str_at @12 main::@13 -print_str_at::@1 dominated by main main::@1 @begin print_str_at @12 print_str_at::@1 main::@13 -print_str_at::@return dominated by main main::@1 @begin print_str_at @12 print_str_at::@1 main::@13 print_str_at::@return -print_str_at::@2 dominated by main main::@1 @begin print_str_at @12 print_str_at::@1 print_str_at::@2 main::@13 +@15 dominated by @begin @15 +@end dominated by @end @begin @15 +main dominated by main @begin @15 +main::@1 dominated by main main::@1 @begin @15 +main::@13 dominated by main main::@1 @begin @15 main::@13 +main::@25 dominated by main main::@1 @begin main::@25 @15 main::@13 +main::@26 dominated by main main::@1 @begin main::@26 main::@25 @15 main::@13 +main::@27 dominated by main main::@1 @begin main::@27 main::@26 main::@25 @15 main::@13 +main::@2 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @15 main::@13 +main::@29 dominated by main main::@1 main::@2 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@3 dominated by main main::@1 main::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@30 dominated by main main::@1 main::@2 main::@3 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@4 dominated by main main::@1 main::@2 main::@3 main::@4 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@31 dominated by main main::@1 main::@2 main::@3 main::@4 main::@31 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@5 dominated by main main::@1 main::@2 main::@5 main::@3 main::@4 main::@31 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@32 dominated by main main::@1 main::@2 main::@5 main::@3 main::@4 main::@31 main::@30 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@6 dominated by main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@33 dominated by main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@7 dominated by main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@34 dominated by main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@19 dominated by main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @15 main::@19 main::@13 +main::@9 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@10 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 main::@10 @15 main::@13 +main::@35 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@26 main::@25 main::@10 @15 main::@13 +main::@21 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@21 main::@27 main::@29 main::@26 main::@25 main::@10 @15 main::@13 +main::@36 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@36 main::@21 main::@27 main::@29 main::@26 main::@25 main::@10 @15 main::@13 +main::@11 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@26 main::@25 main::@11 main::@10 @15 main::@13 +main::@22 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@22 main::@27 main::@29 main::@26 main::@25 main::@11 main::@10 @15 main::@13 +main::@12 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@26 main::@25 main::@11 main::@10 @15 main::@13 main::@12 +main::@23 dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@27 main::@29 main::@23 main::@26 main::@25 main::@11 main::@10 @15 main::@13 main::@12 +main::@return dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@35 main::@34 main::@return main::@27 main::@29 main::@23 main::@26 main::@25 main::@11 main::@10 @15 main::@13 main::@12 +main::@44 dominated by main::@44 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 main::@30 main::@33 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@43 dominated by main::@43 main main::@1 main::@2 main::@5 main::@3 main::@4 main::@31 main::@30 @begin main::@32 main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@42 dominated by main::@42 main main::@1 main::@2 main::@3 main::@4 main::@31 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +main::@41 dominated by main::@41 main main::@1 main::@2 main::@3 main::@30 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 +plot_chargen dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @15 main::@13 plot_chargen +plot_chargen::@5 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @15 plot_chargen::@5 main::@13 plot_chargen +plot_chargen::@1 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 @15 main::@13 plot_chargen plot_chargen::@1 +plot_chargen::@9 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 plot_chargen::@9 @15 main::@13 plot_chargen plot_chargen::@1 +plot_chargen::@2 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 plot_chargen::@9 @15 main::@13 plot_chargen plot_chargen::@2 plot_chargen::@1 +plot_chargen::@3 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 plot_chargen::@9 @15 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 +plot_chargen::@6 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 plot_chargen::@9 @15 plot_chargen::@6 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 +plot_chargen::@4 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 plot_chargen::@9 @15 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 +plot_chargen::@7 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 plot_chargen::@9 @15 plot_chargen::@7 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 +plot_chargen::@8 dominated by main main::@1 main::@2 @begin main::@27 main::@26 main::@25 plot_chargen::@9 plot_chargen::@8 @15 plot_chargen::@7 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 +plot_chargen::@return dominated by main main::@1 main::@2 plot_chargen::@return @begin main::@27 main::@26 main::@25 plot_chargen::@9 plot_chargen::@8 @15 plot_chargen::@7 plot_chargen::@4 main::@13 plot_chargen plot_chargen::@3 plot_chargen::@2 plot_chargen::@1 +mul8u dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @15 main::@13 plot_chargen plot_chargen::@1 +mul8u::@1 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @15 main::@13 plot_chargen plot_chargen::@1 mul8u::@1 +mul8u::@return dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @15 main::@13 mul8u::@return plot_chargen plot_chargen::@1 mul8u::@1 +mul8u::@2 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @15 main::@13 plot_chargen plot_chargen::@1 mul8u::@2 mul8u::@1 +mul8u::@7 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @15 main::@13 mul8u::@7 plot_chargen plot_chargen::@1 mul8u::@2 mul8u::@1 +mul8u::@4 dominated by main main::@1 main::@2 @begin mul8u main::@27 main::@26 main::@25 @15 main::@13 plot_chargen plot_chargen::@1 mul8u::@2 mul8u::@1 mul8u::@4 +keyboard_key_pressed dominated by main main::@1 main::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 keyboard_key_pressed +keyboard_key_pressed::@2 dominated by main main::@1 main::@2 keyboard_key_pressed::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 @15 main::@13 keyboard_key_pressed +keyboard_key_pressed::@return dominated by main main::@1 main::@2 keyboard_key_pressed::@2 main::@3 @begin main::@27 main::@29 main::@26 main::@25 keyboard_key_pressed::@return @15 main::@13 keyboard_key_pressed +keyboard_matrix_read dominated by main main::@1 main::@2 main::@3 @begin keyboard_matrix_read main::@27 main::@29 main::@26 main::@25 @15 main::@13 keyboard_key_pressed +keyboard_matrix_read::@return dominated by main main::@1 main::@2 main::@3 @begin keyboard_matrix_read main::@27 main::@29 main::@26 main::@25 @15 main::@13 keyboard_matrix_read::@return keyboard_key_pressed +keyboard_get_keycode dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 keyboard_get_keycode main::@31 main::@30 main::@33 @begin main::@32 main::@34 main::@27 main::@29 main::@26 main::@25 main::@10 @15 main::@13 +keyboard_get_keycode::@return dominated by main::@9 main::@7 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 keyboard_get_keycode main::@31 main::@30 main::@33 @begin main::@32 main::@34 keyboard_get_keycode::@return main::@27 main::@29 main::@26 main::@25 main::@10 @15 main::@13 +print_str_at dominated by main main::@1 @begin print_str_at @15 main::@13 +print_str_at::@1 dominated by main main::@1 @begin print_str_at @15 print_str_at::@1 main::@13 +print_str_at::@return dominated by main main::@1 @begin print_str_at @15 print_str_at::@1 main::@13 print_str_at::@return +print_str_at::@2 dominated by main main::@1 @begin print_str_at @15 print_str_at::@1 print_str_at::@2 main::@13 NATURAL LOOPS Found back edge: Loop head: main::@1 tails: main::@1 blocks: null @@ -4329,7 +4799,7 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_key_pressed::return#2 22.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 4.0 -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte) keyboard_matrix_read::return (byte) keyboard_matrix_read::return#0 1.3333333333333333 @@ -4647,17 +5117,17 @@ INITIAL ASM .label SCREEN = $400 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @12 [phi:@begin->@12] -b12_from_bbegin: - jmp b12 -//SEG4 @12 -b12: +//SEG3 [1] phi from @begin to @15 [phi:@begin->@15] +b15_from_bbegin: + jmp b15 +//SEG4 @15 +b15: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @12 to main [phi:@12->main] -main_from_b12: +//SEG6 [4] phi from @15 to main [phi:@15->main] +main_from_b15: jsr main -//SEG7 [3] phi from @12 to @end [phi:@12->@end] -bend_from_b12: +//SEG7 [3] phi from @15 to @end [phi:@15->@end] +bend_from_b15: jmp bend //SEG8 @end bend: @@ -5429,7 +5899,7 @@ keyboard_key_pressed: { //SEG261 [121] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta _2 - //SEG262 [122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG262 [122] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _2 ldy colidx and keyboard_matrix_col_bitmask,y @@ -5558,7 +6028,7 @@ Statement [116] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pr Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ keyboard_key_pressed::key#6 keyboard_key_pressed::key#5 ] Statement [117] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#6 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 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:54 [ keyboard_key_pressed::colidx#0 ] -Statement [122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [122] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [124] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:119 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:119 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:119 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:119 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:119 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:119 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [125] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:119 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:119 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:119 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:119 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:119 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:119 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [131] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y @@ -5582,7 +6052,7 @@ Statement [109] (byte~) mul8u::$1 ← (byte) mul8u::a#2 & (byte/signed byte/word Statement [111] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( main:2::plot_chargen:19::mul8u:83 [ main::i#2 plot_chargen::chargen#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::plot_chargen:64::mul8u:83 [ main::cur_pos#12 main::shift#10 main::ch#2 plot_chargen::chargen#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ) always clobbers reg byte a Statement [116] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [117] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#6 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a -Statement [122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [122] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [124] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:119 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:119 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:119 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:119 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:119 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:119 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [125] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:119 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:119 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:119 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:119 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:119 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:119 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [131] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y @@ -5782,17 +6252,17 @@ ASSEMBLER BEFORE OPTIMIZATION .label SCREEN = $400 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @12 [phi:@begin->@12] -b12_from_bbegin: - jmp b12 -//SEG4 @12 -b12: +//SEG3 [1] phi from @begin to @15 [phi:@begin->@15] +b15_from_bbegin: + jmp b15 +//SEG4 @15 +b15: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @12 to main [phi:@12->main] -main_from_b12: +//SEG6 [4] phi from @15 to main [phi:@15->main] +main_from_b15: jsr main -//SEG7 [3] phi from @12 to @end [phi:@12->@end] -bend_from_b12: +//SEG7 [3] phi from @15 to @end [phi:@15->@end] +bend_from_b15: jmp bend //SEG8 @end bend: @@ -6489,7 +6959,7 @@ keyboard_key_pressed: { b2: //SEG261 [121] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 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 - //SEG262 [122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy + //SEG262 [122] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy and keyboard_matrix_col_bitmask,y jmp breturn //SEG263 keyboard_key_pressed::@return @@ -6567,7 +7037,7 @@ print_str_at: { keyboard_char_keycodes: .byte KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b12 +Removing instruction jmp b15 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp b13 @@ -6640,9 +7110,9 @@ Replacing label b2_from_b7 with b2 Replacing label b4_from_b2 with b4 Replacing label b1_from_b2 with b1 Removing instruction bbegin: -Removing instruction b12_from_bbegin: -Removing instruction main_from_b12: -Removing instruction bend_from_b12: +Removing instruction b15_from_bbegin: +Removing instruction main_from_b15: +Removing instruction bend_from_b15: Removing instruction b1_from_b1: Removing instruction b13_from_b1: Removing instruction print_str_at_from_b13: @@ -6682,7 +7152,7 @@ Removing instruction b4_from_b7: Removing instruction b1_from_print_str_at: Removing instruction b1_from_b2: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b12: +Removing instruction b15: Removing instruction bend: Removing instruction b1_from_main: Removing instruction b13: @@ -6761,7 +7231,7 @@ Removing unreachable instruction jmp b4 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -(label) @12 +(label) @15 (label) @begin (label) @end (byte*) CHARGEN @@ -6912,8 +7382,8 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::return#2 reg byte a 22.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -7181,12 +7651,12 @@ Score: 628899 .const KEY_Q = $3e .label SCREEN = $400 //SEG2 @begin -//SEG3 [1] phi from @begin to @12 [phi:@begin->@12] -//SEG4 @12 +//SEG3 [1] phi from @begin to @15 [phi:@begin->@15] +//SEG4 @15 //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @12 to main [phi:@12->main] +//SEG6 [4] phi from @15 to main [phi:@15->main] jsr main -//SEG7 [3] phi from @12 to @end [phi:@12->@end] +//SEG7 [3] phi from @15 to @end [phi:@15->@end] //SEG8 @end //SEG9 main main: { @@ -7740,7 +8210,7 @@ keyboard_key_pressed: { //SEG260 keyboard_key_pressed::@2 //SEG261 [121] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 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 - //SEG262 [122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy + //SEG262 [122] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy and keyboard_matrix_col_bitmask,y //SEG263 keyboard_key_pressed::@return //SEG264 [123] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.sym b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.sym index 54010e30d..736eb10f1 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.sym @@ -1,4 +1,4 @@ -(label) @12 +(label) @15 (label) @begin (label) @end (byte*) CHARGEN @@ -149,8 +149,8 @@ (byte) keyboard_key_pressed::return#2 reg byte a 22.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.cfg b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.cfg index ebfdb49f7..7f1a4ea3b 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@7 -@7: scope:[] from @begin + to:@10 +@10: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @7 +@end: scope:[] from @10 [3] phi() [ ] ( ) -main: scope:[main] from @7 +main: scope:[main] from @10 [4] *((const byte*) BORDERCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@2 @@ -81,7 +81,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@2 menu::@4 menu: to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [40] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [41] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) + [41] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [42] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log index ad864cbbf..1421088fd 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log @@ -157,7 +157,7 @@ const byte[] keyboard_char_keycodes = { byte[8] keyboard_matrix_row_bitmask = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; // Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7) -byte[] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; +byte[8] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; // Initialize keyboard reading by setting CIA#$ Data Direction Registers void keyboard_init() { @@ -177,7 +177,7 @@ byte keyboard_matrix_read(byte rowid) { return row_pressed_bits; } -// Determines whether a specific key is currently pressed +// Determines whether a specific key is currently pressed by accessing the matrix directly // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed @@ -194,6 +194,97 @@ byte keyboard_key_pressed(byte key) { byte keyboard_get_keycode(byte ch) { return keyboard_char_keycodes[ch]; } + +// Keyboard event buffer. Contains keycodes for key presses/releases. Presses are represented by the keycode. Releases by keycode | $40. The buffer is filled by keyboard_scan() +byte[8] keyboard_events; +// Keyboard event buffer size. The number of events currently in the event buffer +byte keyboard_events_size = 0; +// Current keyboard modifiers (left shift, right shift, ctrl, commodore) +byte keyboard_modifiers = 0; +// Left shift is pressed +const byte KEY_MODIFIER_LSHIFT = 1; +// Right shift is pressed +const byte KEY_MODIFIER_RSHIFT = 2; +// CTRL is pressed +const byte KEY_MODIFIER_CTRL = 4; +// Commodore is pressed +const byte KEY_MODIFIER_COMMODORE = 8; +// Any shift is pressed +const byte KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT; +// The values scanned values for each row. Set by keyboard_scan() and used by keyboard_get_event() +byte[8] keyboard_scan_values; + +// Scans the entire matrix to determine which keys have been pressed/depressed. +// Generates keyboard events into the event buffer. Events can be read using keyboard_event_get(). +// Handles debounce and only generates events when the status of a key changes. +// Also stores current status of modifiers in keyboard_modifiers. +void keyboard_event_scan() { + byte keycode = 0; + for(byte row : 0..7) { + byte row_scan = keyboard_matrix_read(row); + if(row_scan!=keyboard_scan_values[row]) { + // Something has changed on the keyboard row - check each column + for(byte col : 0..7){ + // XOR of row scan with the last seen row scan AND'ed with the col bitmask will be non-0 if the key status is changed + if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) { + // Key(row, col) status has changed. We have an event. + // Only process event if there is still room in the buffer + if(keyboard_events_size!=8) { + // AND of row scan and bit mask determines if key is pressed or released + byte event_type = row_scan&keyboard_matrix_col_bitmask[col]; + if(event_type==0) { + // Key released + keyboard_events[keyboard_events_size++] = keycode|$40; + } else { + // Key pressed + keyboard_events[keyboard_events_size++] = keycode; + } + } + } + keycode++; + } + // Store the current keyboard status for the row to debounce + keyboard_scan_values[row] = row_scan; + } else { + // Update current keycode + keycode = keycode + 8; + } + } + // Update the keyboard modifiers + keyboard_modifiers = 0; + if(keyboard_event_pressed(KEY_LSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_LSHIFT; + } + if(keyboard_event_pressed(KEY_RSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_RSHIFT; + } + if(keyboard_event_pressed(KEY_CTRL)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_CTRL; + } + if(keyboard_event_pressed(KEY_COMMODORE)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_COMMODORE; + } +} + +// Determine if a specific key is currently pressed based on the last keyboard_event_scan() +// Returns 0 is not pressed and non-0 if pressed +byte keyboard_event_pressed(byte keycode) { + byte row_bits = keyboard_scan_values[keycode>>3]; + return row_bits & keyboard_matrix_col_bitmask[keycode&7]; +} + +// Get the next event from the keyboard event buffer. +// Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. +// The buffer is filled by keyboard_scan() +byte keyboard_event_get() { + if(keyboard_events_size==0) { + return $ff; + } else { + return keyboard_events[--keyboard_events_size]; + } +} + + Importing c64.kc PARSING src/test/java/dk/camelot64/kickc/test/kc/c64.kc // Commodore 64 Registers and Constants @@ -290,6 +381,10 @@ const byte LIGHT_GREEN = $d; const byte LIGHT_BLUE = $e; const byte LIGHT_GREY = $f; +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode +Adding pre/post-modifier (byte) keyboard_events_size ← -- (byte) keyboard_events_size Importing c64.kc Adding pre/post-modifier *((byte*) SCREEN) ← ++ *((byte*) SCREEN) Adding pre/post-modifier *((byte*) BGCOL) ← ++ *((byte*) BGCOL) @@ -426,7 +521,7 @@ STATEMENTS (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } proc (void()) keyboard_init() *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -449,7 +544,7 @@ proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 goto keyboard_key_pressed::@return keyboard_key_pressed::@return: @@ -463,6 +558,122 @@ keyboard_get_keycode::@return: (byte) keyboard_get_keycode::return ← (byte) keyboard_get_keycode::return return (byte) keyboard_get_keycode::return endproc // keyboard_get_keycode() + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } +proc (void()) keyboard_event_scan() + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@1: + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@3: + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + goto keyboard_event_scan::@7 +keyboard_event_scan::@6: + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +keyboard_event_scan::@7: +keyboard_event_scan::@5: +keyboard_event_scan::@4: + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + goto keyboard_event_scan::@8 +keyboard_event_scan::@2: + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +keyboard_event_scan::@8: + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 +keyboard_event_scan::@9: + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 +keyboard_event_scan::@10: + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 +keyboard_event_scan::@11: + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 +keyboard_event_scan::@12: +keyboard_event_scan::@return: + return +endproc // keyboard_event_scan() +proc (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + goto keyboard_event_pressed::@return +keyboard_event_pressed::@return: + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return +endproc // keyboard_event_pressed() +proc (byte()) keyboard_event_get() + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + goto keyboard_event_get::@return + goto keyboard_event_get::@2 +keyboard_event_get::@1: + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + goto keyboard_event_get::@return +keyboard_event_get::@2: +keyboard_event_get::@return: + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return +endproc // keyboard_event_get() proc (void()) main() *((byte*) BORDERCOL) ← (byte) GREEN main::@1: @@ -530,6 +741,7 @@ endproc // pressed() call main SYMBOLS +(byte~) $0 (byte*) BGCOL (byte*) BGCOL1 (byte*) BGCOL2 @@ -599,6 +811,11 @@ SYMBOLS (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O (byte) KEY_P @@ -661,6 +878,74 @@ SYMBOLS (byte) WHITE (byte) YELLOW (byte[]) keyboard_char_keycodes +(byte()) keyboard_event_get() +(boolean~) keyboard_event_get::$0 +(boolean~) keyboard_event_get::$1 +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@2 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 +(byte~) keyboard_event_pressed::$1 +(byte~) keyboard_event_pressed::$2 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::row_bits +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 +(boolean~) keyboard_event_scan::$1 +(boolean~) keyboard_event_scan::$10 +(boolean~) keyboard_event_scan::$11 +(byte/word/dword~) keyboard_event_scan::$12 +(boolean~) keyboard_event_scan::$13 +(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +(boolean~) keyboard_event_scan::$15 +(byte~) keyboard_event_scan::$16 +(boolean~) keyboard_event_scan::$17 +(boolean~) keyboard_event_scan::$18 +(byte~) keyboard_event_scan::$19 +(boolean~) keyboard_event_scan::$2 +(byte~) keyboard_event_scan::$20 +(boolean~) keyboard_event_scan::$21 +(boolean~) keyboard_event_scan::$22 +(byte~) keyboard_event_scan::$23 +(byte~) keyboard_event_scan::$24 +(boolean~) keyboard_event_scan::$25 +(boolean~) keyboard_event_scan::$26 +(byte~) keyboard_event_scan::$27 +(byte~) keyboard_event_scan::$28 +(boolean~) keyboard_event_scan::$29 +(byte~) keyboard_event_scan::$3 +(boolean~) keyboard_event_scan::$30 +(byte~) keyboard_event_scan::$31 +(byte~) keyboard_event_scan::$4 +(boolean~) keyboard_event_scan::$5 +(boolean~) keyboard_event_scan::$6 +(boolean~) keyboard_event_scan::$7 +(boolean~) keyboard_event_scan::$8 +(byte~) keyboard_event_scan::$9 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row_scan +(byte[8]) keyboard_events +(byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) (label) keyboard_get_keycode::@return (byte) keyboard_get_keycode::ch @@ -677,7 +962,7 @@ SYMBOLS (byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::rowidx -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -685,6 +970,8 @@ SYMBOLS (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask +(byte) keyboard_modifiers +(byte[8]) keyboard_scan_values (void()) main() (void~) main::$0 (label) main::@1 @@ -889,7 +1176,7 @@ INITIAL CONTROL FLOW GRAPH (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } to:@1 keyboard_init: scope:[keyboard_init] from *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 @@ -920,7 +1207,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1 @@ -941,7 +1228,174 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k keyboard_get_keycode::@1: scope:[keyboard_get_keycode] from to:keyboard_get_keycode::@return @4: scope:[] from @3 + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } to:@5 +keyboard_event_scan: scope:[keyboard_event_scan] from + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + to:keyboard_event_scan::@13 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19 + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 + to:keyboard_event_scan::@8 +keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4 + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + to:keyboard_event_scan::@14 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5 + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + to:keyboard_event_scan::@18 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + to:keyboard_event_scan::@15 +keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7 + to:keyboard_event_scan::@4 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + to:keyboard_event_scan::@16 +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6 + to:keyboard_event_scan::@5 +keyboard_event_scan::@17: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@6 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + to:keyboard_event_scan::@20 +keyboard_event_scan::@19: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@2 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + to:keyboard_event_scan::@21 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21 + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + to:keyboard_event_scan::@22 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 + to:keyboard_event_scan::@9 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + to:keyboard_event_scan::@23 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 + to:keyboard_event_scan::@10 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23 + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + to:keyboard_event_scan::@24 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 + to:keyboard_event_scan::@11 +keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24 + to:keyboard_event_scan::@return +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 + to:keyboard_event_scan::@12 +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12 + return + to:@return +@5: scope:[] from @4 + to:@6 +keyboard_event_pressed: scope:[keyboard_event_pressed] from + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed keyboard_event_pressed::@1 + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return + to:@return +keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from + to:keyboard_event_pressed::@return +@6: scope:[] from @5 + to:@7 +keyboard_event_get: scope:[keyboard_event_get] from + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + to:keyboard_event_get::@3 +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5 + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + to:keyboard_event_get::@return +keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3 + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return + to:@return +keyboard_event_get::@4: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +keyboard_event_get::@2: scope:[keyboard_event_get] from keyboard_event_get::@4 keyboard_event_get::@6 + to:keyboard_event_get::@return +keyboard_event_get::@5: scope:[keyboard_event_get] from + to:keyboard_event_get::@1 +keyboard_event_get::@6: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +@7: scope:[] from @6 + to:@8 main: scope:[main] from *((byte*) BORDERCOL) ← (byte) GREEN to:main::@1 @@ -962,9 +1416,9 @@ main::@6: scope:[main] from main::@return: scope:[main] from main::@3 return to:@return -@5: scope:[] from @4 +@8: scope:[] from @7 (byte*) SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024 - to:@6 + to:@9 menu: scope:[menu] from to:menu::@1 menu::@1: scope:[menu] from menu menu::@6 @@ -1019,8 +1473,8 @@ menu::@14: scope:[menu] from to:menu::@6 menu::@15: scope:[menu] from to:menu::@3 -@6: scope:[] from @5 - to:@7 +@9: scope:[] from @8 + to:@10 pressed: scope:[pressed] from *((byte*) BGCOL) ← ++ *((byte*) BGCOL) to:pressed::@1 @@ -1050,13 +1504,16 @@ pressed::@8: scope:[pressed] from to:pressed::@4 pressed::@9: scope:[pressed] from to:pressed::@3 -@7: scope:[] from @6 +@10: scope:[] from @9 call main to:@end -@end: scope:[] from @7 +@end: scope:[] from @10 Removing unused procedure keyboard_init Removing unused procedure keyboard_get_keycode +Removing unused procedure keyboard_event_scan +Removing unused procedure keyboard_event_get +Removing unused procedure keyboard_event_pressed Eliminating unused variable (byte*) PROCPORT_DDR and assignment [0] (byte*) PROCPORT_DDR ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 Eliminating unused variable (byte) PROCPORT_DDR_MEMORY_MASK and assignment [1] (byte) PROCPORT_DDR_MEMORY_MASK ← (byte/signed byte/word/signed word/dword/signed dword) 7 Eliminating unused variable (byte*) PROCPORT and assignment [2] (byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -1131,6 +1588,13 @@ Eliminating unused variable (byte) KEY_CTRL and assignment [123] (byte) KEY_CTRL Eliminating unused variable (byte) KEY_COMMODORE and assignment [126] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 Eliminating unused variable (byte) KEY_RUNSTOP and assignment [128] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [129] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +Eliminating unused variable (byte[8]) keyboard_events and assignment [147] (byte[8]) keyboard_events ← { fill( 8, 0) } +Eliminating unused variable (byte) keyboard_events_size and assignment [148] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) keyboard_modifiers and assignment [149] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [152] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [153] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 +Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [155] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 +Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [156] (byte[8]) keyboard_scan_values ← { fill( 8, 0) } Eliminating unused variable - keeping the call (void~) main::$0 Eliminating unused variable - keeping the call (void~) menu::$3 Eliminating unused variable (byte) KEY_3 and assignment [6] (byte) KEY_3 ← (byte/signed byte/word/signed word/dword/signed dword) 8 @@ -1179,12 +1643,18 @@ Eliminating unused variable (byte) KEY_1 and assignment [51] (byte) KEY_1 ← (b Eliminating unused variable (byte) KEY_ARROW_LEFT and assignment [52] (byte) KEY_ARROW_LEFT ← (byte/signed byte/word/signed word/dword/signed dword) 57 Eliminating unused variable (byte) KEY_2 and assignment [53] (byte) KEY_2 ← (byte/signed byte/word/signed word/dword/signed dword) 59 Eliminating unused variable (byte) KEY_Q and assignment [55] (byte) KEY_Q ← (byte/signed byte/word/signed word/dword/signed dword) 62 +Eliminating unused variable (byte~) $0 and assignment [75] (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT +Eliminating unused variable (byte) KEY_MODIFIER_LSHIFT and assignment [27] (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) KEY_MODIFIER_RSHIFT and assignment [28] (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 Removing empty block @1 Removing empty block keyboard_matrix_read::@1 Removing empty block @2 Removing empty block keyboard_key_pressed::@1 Removing empty block @3 Removing empty block @4 +Removing empty block @5 +Removing empty block @6 +Removing empty block @7 Removing empty block main::@4 Removing empty block main::@3 Removing empty block main::@5 @@ -1196,7 +1666,7 @@ Removing empty block menu::@10 Removing empty block menu::@12 Removing empty block menu::@14 Removing empty block menu::@15 -Removing empty block @6 +Removing empty block @9 Removing empty block pressed::@5 Removing empty block pressed::@3 Removing empty block pressed::@6 @@ -1232,8 +1702,8 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } - to:@5 + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + to:@8 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 ) *((byte*) CIA1_PORT_A#0) ← *((byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#1) @@ -1260,7 +1730,7 @@ keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_presse (byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 ) (byte) keyboard_matrix_read::return#4 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 ) (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#4 - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 @@ -1268,8 +1738,8 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p (byte) keyboard_key_pressed::return#1 ← (byte) keyboard_key_pressed::return#6 return to:@return -main: scope:[main] from @7 - (byte*) SCREEN#12 ← phi( @7/(byte*) SCREEN#14 ) +main: scope:[main] from @10 + (byte*) SCREEN#12 ← phi( @10/(byte*) SCREEN#14 ) *((byte*) BORDERCOL#0) ← (byte) GREEN#0 to:main::@1 main::@1: scope:[main] from main main::@7 @@ -1286,9 +1756,9 @@ main::@7: scope:[main] from main::@2 main::@return: scope:[main] from main::@1 return to:@return -@5: scope:[] from @begin +@8: scope:[] from @begin (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - to:@7 + to:@10 menu: scope:[menu] from main::@2 (byte*) SCREEN#9 ← phi( main::@2/(byte*) SCREEN#10 ) to:menu::@1 @@ -1381,17 +1851,17 @@ pressed::@4: scope:[pressed] from pressed::@10 pressed::@return: scope:[pressed] from pressed::@1 pressed::@10 return to:@return -@7: scope:[] from @5 - (byte*) SCREEN#14 ← phi( @5/(byte*) SCREEN#0 ) +@10: scope:[] from @8 + (byte*) SCREEN#14 ← phi( @8/(byte*) SCREEN#0 ) call main param-assignment - to:@8 -@8: scope:[] from @7 + to:@11 +@11: scope:[] from @10 to:@end -@end: scope:[] from @8 +@end: scope:[] from @11 SYMBOL TABLE SSA -(label) @5 -(label) @7 +(label) @10 +(label) @11 (label) @8 (label) @begin (label) @end @@ -1461,8 +1931,8 @@ SYMBOL TABLE SSA (byte) keyboard_key_pressed::return#9 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 -(byte[]) keyboard_matrix_col_bitmask -(byte[]) keyboard_matrix_col_bitmask#0 +(byte[8]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask#0 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -1520,7 +1990,7 @@ SYMBOL TABLE SSA OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) menu::@18 Culled Empty Block (label) pressed::@4 -Culled Empty Block (label) @8 +Culled Empty Block (label) @11 Succesful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (boolean~) menu::$2 ← (byte~) menu::$0 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) menu::$1 ← (byte~) menu::$0 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) menu::$6 ← (byte~) menu::$4 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) menu::$5 ← (byte~) menu::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1603,7 +2073,7 @@ Constant (const byte) KEY_C#0 = 20 Constant (const byte) KEY_I#0 = 33 Constant (const byte) KEY_SPACE#0 = 60 Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } Constant (const byte*) SCREEN#0 = ((byte*))1024 Succesful SSA optimization Pass2ConstantIdentification Constant (const byte) keyboard_key_pressed::key#0 = KEY_C#0 @@ -1612,7 +2082,7 @@ Constant (const byte) keyboard_key_pressed::key#2 = KEY_E#0 Constant (const byte) keyboard_key_pressed::key#3 = KEY_SPACE#0 Succesful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) main::@7 -Culled Empty Block (label) @5 +Culled Empty Block (label) @8 Succesful SSA optimization Pass2CullEmptyBlocks 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 @@ -1646,10 +2116,10 @@ Constant inlined keyboard_key_pressed::key#1 = (const byte) KEY_I#0 Constant inlined keyboard_key_pressed::key#2 = (const byte) KEY_E#0 Constant inlined keyboard_key_pressed::key#3 = (const byte) KEY_SPACE#0 Succesful SSA optimization Pass2ConstantInlining -Block Sequence Planned @begin @7 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@return menu::@2 menu::@16 menu::@9 menu::@4 menu::@17 menu::@11 menu::@5 menu::@19 menu::@13 menu::@6 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return pressed pressed::@1 pressed::@return pressed::@2 pressed::@10 -Block Sequence Planned @begin @7 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@return menu::@2 menu::@16 menu::@9 menu::@4 menu::@17 menu::@11 menu::@5 menu::@19 menu::@13 menu::@6 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return pressed pressed::@1 pressed::@return pressed::@2 pressed::@10 +Block Sequence Planned @begin @10 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@return menu::@2 menu::@16 menu::@9 menu::@4 menu::@17 menu::@11 menu::@5 menu::@19 menu::@13 menu::@6 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return pressed pressed::@1 pressed::@return pressed::@2 pressed::@10 +Block Sequence Planned @begin @10 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@return menu::@2 menu::@16 menu::@9 menu::@4 menu::@17 menu::@11 menu::@5 menu::@19 menu::@13 menu::@6 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return pressed pressed::@1 pressed::@return pressed::@2 pressed::@10 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @7 +Adding NOP phi() at start of @10 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@2 Adding NOP phi() at start of menu @@ -1674,9 +2144,9 @@ Propagating live ranges... Propagating live ranges... Created 1 initial phi equivalence classes Coalesced down to 1 phi equivalence classes -Block Sequence Planned @begin @7 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@return menu::@2 menu::@16 menu::@9 menu::@4 menu::@17 menu::@11 menu::@5 menu::@19 menu::@13 menu::@6 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return pressed pressed::@1 pressed::@return pressed::@2 pressed::@10 +Block Sequence Planned @begin @10 @end main main::@1 main::@return main::@2 menu menu::@1 menu::@return menu::@2 menu::@16 menu::@9 menu::@4 menu::@17 menu::@11 menu::@5 menu::@19 menu::@13 menu::@6 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return pressed pressed::@1 pressed::@return pressed::@2 pressed::@10 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @7 +Adding NOP phi() at start of @10 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@2 Adding NOP phi() at start of menu @@ -1696,14 +2166,14 @@ Propagating live ranges... FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@7 -@7: scope:[] from @begin + to:@10 +@10: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @7 +@end: scope:[] from @10 [3] phi() [ ] ( ) -main: scope:[main] from @7 +main: scope:[main] from @10 [4] *((const byte*) BORDERCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@2 @@ -1777,7 +2247,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@2 menu::@4 menu: to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [40] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [41] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) + [41] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [42] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) @@ -1810,35 +2280,35 @@ pressed::@10: scope:[pressed] from pressed::@2 DOMINATORS @begin dominated by @begin -@7 dominated by @begin @7 -@end dominated by @end @begin @7 -main dominated by main @begin @7 -main::@1 dominated by main main::@1 @begin @7 -main::@return dominated by main::@return main main::@1 @begin @7 -main::@2 dominated by main main::@1 main::@2 @begin @7 -menu dominated by main main::@1 main::@2 @begin menu @7 -menu::@1 dominated by main main::@1 main::@2 @begin menu::@1 menu @7 -menu::@return dominated by main main::@1 main::@2 @begin menu::@1 menu::@return menu @7 -menu::@2 dominated by main main::@1 main::@2 @begin menu::@1 menu::@2 menu @7 -menu::@16 dominated by main main::@1 main::@2 @begin menu::@1 menu::@2 menu @7 menu::@16 -menu::@9 dominated by main main::@1 main::@2 @begin menu::@1 menu::@2 menu menu::@9 @7 menu::@16 -menu::@4 dominated by main main::@1 main::@2 @begin menu::@4 menu::@1 menu::@2 menu @7 menu::@16 -menu::@17 dominated by main main::@1 main::@2 @begin menu::@4 menu::@1 menu::@2 menu @7 menu::@17 menu::@16 -menu::@11 dominated by main main::@1 main::@2 @begin menu::@4 menu::@1 menu::@2 menu @7 menu::@11 menu::@17 menu::@16 -menu::@5 dominated by main main::@1 main::@2 menu::@5 @begin menu::@4 menu::@1 menu::@2 menu @7 menu::@17 menu::@16 -menu::@19 dominated by main main::@1 main::@2 menu::@5 @begin menu::@4 menu::@1 menu::@2 menu menu::@19 @7 menu::@17 menu::@16 -menu::@13 dominated by main main::@1 main::@2 menu::@5 @begin menu::@4 menu::@1 menu::@2 menu menu::@19 @7 menu::@13 menu::@17 menu::@16 -menu::@6 dominated by main main::@1 main::@2 menu::@5 @begin menu::@6 menu::@4 menu::@1 menu::@2 menu menu::@19 @7 menu::@17 menu::@16 -keyboard_key_pressed dominated by main main::@1 main::@2 @begin menu::@1 menu::@2 menu keyboard_key_pressed @7 -keyboard_key_pressed::@2 dominated by main main::@1 main::@2 keyboard_key_pressed::@2 @begin menu::@1 menu::@2 menu keyboard_key_pressed @7 -keyboard_key_pressed::@return dominated by main keyboard_key_pressed::@return main::@1 main::@2 keyboard_key_pressed::@2 @begin menu::@1 menu::@2 menu keyboard_key_pressed @7 -keyboard_matrix_read dominated by keyboard_matrix_read main main::@1 main::@2 @begin menu::@1 menu::@2 menu keyboard_key_pressed @7 -keyboard_matrix_read::@return dominated by keyboard_matrix_read main main::@1 main::@2 @begin menu::@1 menu::@2 menu keyboard_matrix_read::@return keyboard_key_pressed @7 -pressed dominated by main main::@1 main::@2 @begin pressed menu::@1 menu::@2 menu menu::@9 @7 menu::@16 -pressed::@1 dominated by main main::@1 main::@2 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 @7 menu::@16 -pressed::@return dominated by main main::@1 main::@2 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 pressed::@return @7 menu::@16 -pressed::@2 dominated by main main::@1 pressed::@2 main::@2 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 @7 menu::@16 -pressed::@10 dominated by pressed::@10 main main::@1 pressed::@2 main::@2 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 @7 menu::@16 +@10 dominated by @10 @begin +@end dominated by @end @10 @begin +main dominated by main @10 @begin +main::@1 dominated by main main::@1 @10 @begin +main::@return dominated by main::@return main main::@1 @10 @begin +main::@2 dominated by main main::@1 main::@2 @10 @begin +menu dominated by main main::@1 main::@2 @10 @begin menu +menu::@1 dominated by main main::@1 main::@2 @10 @begin menu::@1 menu +menu::@return dominated by main main::@1 main::@2 @10 @begin menu::@1 menu::@return menu +menu::@2 dominated by main main::@1 main::@2 @10 @begin menu::@1 menu::@2 menu +menu::@16 dominated by main main::@1 main::@2 @10 @begin menu::@1 menu::@2 menu menu::@16 +menu::@9 dominated by main main::@1 main::@2 @10 @begin menu::@1 menu::@2 menu menu::@9 menu::@16 +menu::@4 dominated by main main::@1 main::@2 @10 @begin menu::@4 menu::@1 menu::@2 menu menu::@16 +menu::@17 dominated by main main::@1 main::@2 @10 @begin menu::@4 menu::@1 menu::@2 menu menu::@17 menu::@16 +menu::@11 dominated by main main::@1 main::@2 @10 @begin menu::@4 menu::@1 menu::@2 menu menu::@11 menu::@17 menu::@16 +menu::@5 dominated by main main::@1 main::@2 @10 menu::@5 @begin menu::@4 menu::@1 menu::@2 menu menu::@17 menu::@16 +menu::@19 dominated by main main::@1 main::@2 @10 menu::@5 @begin menu::@4 menu::@1 menu::@2 menu menu::@19 menu::@17 menu::@16 +menu::@13 dominated by main main::@1 main::@2 @10 menu::@5 @begin menu::@4 menu::@1 menu::@2 menu menu::@19 menu::@13 menu::@17 menu::@16 +menu::@6 dominated by main main::@1 main::@2 @10 menu::@5 @begin menu::@6 menu::@4 menu::@1 menu::@2 menu menu::@19 menu::@17 menu::@16 +keyboard_key_pressed dominated by main main::@1 main::@2 @10 @begin menu::@1 menu::@2 menu keyboard_key_pressed +keyboard_key_pressed::@2 dominated by main main::@1 main::@2 keyboard_key_pressed::@2 @10 @begin menu::@1 menu::@2 menu keyboard_key_pressed +keyboard_key_pressed::@return dominated by main keyboard_key_pressed::@return main::@1 main::@2 keyboard_key_pressed::@2 @10 @begin menu::@1 menu::@2 menu keyboard_key_pressed +keyboard_matrix_read dominated by keyboard_matrix_read main main::@1 main::@2 @10 @begin menu::@1 menu::@2 menu keyboard_key_pressed +keyboard_matrix_read::@return dominated by keyboard_matrix_read main main::@1 main::@2 @10 @begin menu::@1 menu::@2 menu keyboard_matrix_read::@return keyboard_key_pressed +pressed dominated by main main::@1 main::@2 @10 @begin pressed menu::@1 menu::@2 menu menu::@9 menu::@16 +pressed::@1 dominated by main main::@1 main::@2 @10 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 menu::@16 +pressed::@return dominated by main main::@1 main::@2 @10 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 pressed::@return menu::@16 +pressed::@2 dominated by main main::@1 pressed::@2 main::@2 @10 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 menu::@16 +pressed::@10 dominated by pressed::@10 main main::@1 pressed::@2 main::@2 @10 pressed::@1 @begin pressed menu::@1 menu::@2 menu menu::@9 menu::@16 NATURAL LOOPS Found back edge: Loop head: main::@1 tails: main::@2 blocks: null @@ -1893,7 +2363,7 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_key_pressed::return#4 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 4.0 -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte) keyboard_matrix_read::return (byte) keyboard_matrix_read::return#0 1.3333333333333333 @@ -1980,15 +2450,15 @@ INITIAL ASM .label SCREEN = $400 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @7 [phi:@begin->@7] -b7_from_bbegin: - jmp b7 -//SEG4 @7 -b7: +//SEG3 [1] phi from @begin to @10 [phi:@begin->@10] +b10_from_bbegin: + jmp b10 +//SEG4 @10 +b10: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @7 to @end [phi:@7->@end] -bend_from_b7: +//SEG6 [3] phi from @10 to @end [phi:@10->@end] +bend_from_b10: jmp bend //SEG7 @end bend: @@ -2172,7 +2642,7 @@ keyboard_key_pressed: { //SEG68 [40] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta _2 - //SEG69 [41] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG69 [41] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _2 ldy colidx and keyboard_matrix_col_bitmask,y @@ -2254,7 +2724,7 @@ Statement [35] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pre Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ keyboard_key_pressed::key#4 ] Statement [36] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ 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:9 [ keyboard_key_pressed::colidx#0 ] -Statement [41] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [41] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [43] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:8::keyboard_key_pressed:13::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] main:2::menu:8::keyboard_key_pressed:20::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] main:2::menu:8::keyboard_key_pressed:27::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [44] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:8::keyboard_key_pressed:20::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:8::keyboard_key_pressed:27::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [4] *((const byte*) BORDERCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -2262,7 +2732,7 @@ Statement [24] *((const byte*) BORDERCOL#0) ← (const byte) RED#0 [ ] ( main:2: Statement [31] *((const byte*) BORDERCOL#0) ← (const byte) GREEN#0 [ ] ( main:2::menu:8 [ ] ) always clobbers reg byte a Statement [35] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [36] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a -Statement [41] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [41] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [43] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:8::keyboard_key_pressed:13::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] main:2::menu:8::keyboard_key_pressed:20::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] main:2::menu:8::keyboard_key_pressed:27::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [44] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:8::keyboard_key_pressed:20::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:8::keyboard_key_pressed:27::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50::keyboard_matrix_read:38 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ keyboard_key_pressed::key#4 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , @@ -2327,15 +2797,15 @@ ASSEMBLER BEFORE OPTIMIZATION .label SCREEN = $400 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @7 [phi:@begin->@7] -b7_from_bbegin: - jmp b7 -//SEG4 @7 -b7: +//SEG3 [1] phi from @begin to @10 [phi:@begin->@10] +b10_from_bbegin: + jmp b10 +//SEG4 @10 +b10: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @7 to @end [phi:@7->@end] -bend_from_b7: +//SEG6 [3] phi from @10 to @end [phi:@10->@end] +bend_from_b10: jmp bend //SEG7 @end bend: @@ -2494,7 +2964,7 @@ keyboard_key_pressed: { b2: //SEG68 [40] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ 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 - //SEG69 [41] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy + //SEG69 [41] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy and keyboard_matrix_col_bitmask,y jmp breturn //SEG70 keyboard_key_pressed::@return @@ -2557,7 +3027,7 @@ pressed: { keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b7 +Removing instruction jmp b10 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp breturn @@ -2587,8 +3057,8 @@ Replacing label b4_from_b16 with b4 Replacing label b5_from_b17 with b5 Replacing label b2_from_b1 with b2 Removing instruction bbegin: -Removing instruction b7_from_bbegin: -Removing instruction bend_from_b7: +Removing instruction b10_from_bbegin: +Removing instruction bend_from_b10: Removing instruction b2_from_b1: Removing instruction menu_from_b2: Removing instruction b2_from_b1: @@ -2601,7 +3071,7 @@ Removing instruction keyboard_key_pressed_from_b5: Removing instruction b2_from_b1: Removing instruction keyboard_key_pressed_from_b2: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b7: +Removing instruction b10: Removing instruction bend: Removing instruction breturn: Removing instruction b16: @@ -2630,7 +3100,7 @@ Removing instruction b1: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -(label) @7 +(label) @10 (label) @begin (label) @end (byte*) BGCOL @@ -2671,8 +3141,8 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::return#4 reg byte a 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -2748,11 +3218,11 @@ Score: 3754 .const KEY_SPACE = $3c .label SCREEN = $400 //SEG2 @begin -//SEG3 [1] phi from @begin to @7 [phi:@begin->@7] -//SEG4 @7 +//SEG3 [1] phi from @begin to @10 [phi:@begin->@10] +//SEG4 @10 //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @7 to @end [phi:@7->@end] +//SEG6 [3] phi from @10 to @end [phi:@10->@end] //SEG7 @end //SEG8 main main: { @@ -2873,7 +3343,7 @@ keyboard_key_pressed: { //SEG67 keyboard_key_pressed::@2 //SEG68 [40] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ 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 - //SEG69 [41] (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:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy + //SEG69 [41] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy and keyboard_matrix_col_bitmask,y //SEG70 keyboard_key_pressed::@return //SEG71 [42] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:8::keyboard_key_pressed:13 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:20 [ keyboard_key_pressed::return#0 ] main:2::menu:8::keyboard_key_pressed:27 [ keyboard_key_pressed::return#0 ] main:2::menu:8::pressed:18::keyboard_key_pressed:50 [ keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.sym b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.sym index f9c9cb21c..42a9f5d2c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.sym @@ -1,4 +1,4 @@ -(label) @7 +(label) @10 (label) @begin (label) @end (byte*) BGCOL @@ -39,8 +39,8 @@ (byte) keyboard_key_pressed::return#4 reg byte a 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.cfg index 2b663a003..e1bbc1ed4 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@5 -@5: scope:[] from @begin + to:@8 +@8: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @5 +@end: scope:[] from @8 [3] phi() [ ] ( ) -main: scope:[main] from @5 +main: scope:[main] from @8 [4] phi() [ ] ( main:2 [ ] ) [5] call keyboard_init param-assignment [ ] ( main:2 [ ] ) to:main::@1 @@ -42,7 +42,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@9 to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] ) - [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) + [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [21] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log index 97730267e..1ed214b1a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log @@ -121,7 +121,7 @@ const byte[] keyboard_char_keycodes = { byte[8] keyboard_matrix_row_bitmask = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; // Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7) -byte[] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; +byte[8] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; // Initialize keyboard reading by setting CIA#$ Data Direction Registers void keyboard_init() { @@ -141,7 +141,7 @@ byte keyboard_matrix_read(byte rowid) { return row_pressed_bits; } -// Determines whether a specific key is currently pressed +// Determines whether a specific key is currently pressed by accessing the matrix directly // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed @@ -158,6 +158,97 @@ byte keyboard_key_pressed(byte key) { byte keyboard_get_keycode(byte ch) { return keyboard_char_keycodes[ch]; } + +// Keyboard event buffer. Contains keycodes for key presses/releases. Presses are represented by the keycode. Releases by keycode | $40. The buffer is filled by keyboard_scan() +byte[8] keyboard_events; +// Keyboard event buffer size. The number of events currently in the event buffer +byte keyboard_events_size = 0; +// Current keyboard modifiers (left shift, right shift, ctrl, commodore) +byte keyboard_modifiers = 0; +// Left shift is pressed +const byte KEY_MODIFIER_LSHIFT = 1; +// Right shift is pressed +const byte KEY_MODIFIER_RSHIFT = 2; +// CTRL is pressed +const byte KEY_MODIFIER_CTRL = 4; +// Commodore is pressed +const byte KEY_MODIFIER_COMMODORE = 8; +// Any shift is pressed +const byte KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT; +// The values scanned values for each row. Set by keyboard_scan() and used by keyboard_get_event() +byte[8] keyboard_scan_values; + +// Scans the entire matrix to determine which keys have been pressed/depressed. +// Generates keyboard events into the event buffer. Events can be read using keyboard_event_get(). +// Handles debounce and only generates events when the status of a key changes. +// Also stores current status of modifiers in keyboard_modifiers. +void keyboard_event_scan() { + byte keycode = 0; + for(byte row : 0..7) { + byte row_scan = keyboard_matrix_read(row); + if(row_scan!=keyboard_scan_values[row]) { + // Something has changed on the keyboard row - check each column + for(byte col : 0..7){ + // XOR of row scan with the last seen row scan AND'ed with the col bitmask will be non-0 if the key status is changed + if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) { + // Key(row, col) status has changed. We have an event. + // Only process event if there is still room in the buffer + if(keyboard_events_size!=8) { + // AND of row scan and bit mask determines if key is pressed or released + byte event_type = row_scan&keyboard_matrix_col_bitmask[col]; + if(event_type==0) { + // Key released + keyboard_events[keyboard_events_size++] = keycode|$40; + } else { + // Key pressed + keyboard_events[keyboard_events_size++] = keycode; + } + } + } + keycode++; + } + // Store the current keyboard status for the row to debounce + keyboard_scan_values[row] = row_scan; + } else { + // Update current keycode + keycode = keycode + 8; + } + } + // Update the keyboard modifiers + keyboard_modifiers = 0; + if(keyboard_event_pressed(KEY_LSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_LSHIFT; + } + if(keyboard_event_pressed(KEY_RSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_RSHIFT; + } + if(keyboard_event_pressed(KEY_CTRL)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_CTRL; + } + if(keyboard_event_pressed(KEY_COMMODORE)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_COMMODORE; + } +} + +// Determine if a specific key is currently pressed based on the last keyboard_event_scan() +// Returns 0 is not pressed and non-0 if pressed +byte keyboard_event_pressed(byte keycode) { + byte row_bits = keyboard_scan_values[keycode>>3]; + return row_bits & keyboard_matrix_col_bitmask[keycode&7]; +} + +// Get the next event from the keyboard event buffer. +// Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. +// The buffer is filled by keyboard_scan() +byte keyboard_event_get() { + if(keyboard_events_size==0) { + return $ff; + } else { + return keyboard_events[--keyboard_events_size]; + } +} + + Importing c64.kc PARSING src/test/java/dk/camelot64/kickc/test/kc/c64.kc // Commodore 64 Registers and Constants @@ -254,6 +345,10 @@ const byte LIGHT_GREEN = $d; const byte LIGHT_BLUE = $e; const byte LIGHT_GREY = $f; +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode +Adding pre/post-modifier (byte) keyboard_events_size ← -- (byte) keyboard_events_size STATEMENTS (byte*) PROCPORT_DDR ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -387,7 +482,7 @@ STATEMENTS (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } proc (void()) keyboard_init() *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -410,7 +505,7 @@ proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 goto keyboard_key_pressed::@return keyboard_key_pressed::@return: @@ -424,6 +519,122 @@ keyboard_get_keycode::@return: (byte) keyboard_get_keycode::return ← (byte) keyboard_get_keycode::return return (byte) keyboard_get_keycode::return endproc // keyboard_get_keycode() + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } +proc (void()) keyboard_event_scan() + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@1: + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@3: + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + goto keyboard_event_scan::@7 +keyboard_event_scan::@6: + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +keyboard_event_scan::@7: +keyboard_event_scan::@5: +keyboard_event_scan::@4: + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + goto keyboard_event_scan::@8 +keyboard_event_scan::@2: + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +keyboard_event_scan::@8: + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 +keyboard_event_scan::@9: + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 +keyboard_event_scan::@10: + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 +keyboard_event_scan::@11: + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 +keyboard_event_scan::@12: +keyboard_event_scan::@return: + return +endproc // keyboard_event_scan() +proc (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + goto keyboard_event_pressed::@return +keyboard_event_pressed::@return: + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return +endproc // keyboard_event_pressed() +proc (byte()) keyboard_event_get() + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + goto keyboard_event_get::@return + goto keyboard_event_get::@2 +keyboard_event_get::@1: + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + goto keyboard_event_get::@return +keyboard_event_get::@2: +keyboard_event_get::@return: + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return +endproc // keyboard_event_get() proc (void()) main() (void~) main::$0 ← call keyboard_init main::@1: @@ -450,6 +661,7 @@ endproc // main() call main SYMBOLS +(byte~) $0 (byte*) BGCOL (byte*) BGCOL1 (byte*) BGCOL2 @@ -519,6 +731,11 @@ SYMBOLS (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O (byte) KEY_P @@ -580,6 +797,74 @@ SYMBOLS (byte) WHITE (byte) YELLOW (byte[]) keyboard_char_keycodes +(byte()) keyboard_event_get() +(boolean~) keyboard_event_get::$0 +(boolean~) keyboard_event_get::$1 +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@2 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 +(byte~) keyboard_event_pressed::$1 +(byte~) keyboard_event_pressed::$2 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::row_bits +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 +(boolean~) keyboard_event_scan::$1 +(boolean~) keyboard_event_scan::$10 +(boolean~) keyboard_event_scan::$11 +(byte/word/dword~) keyboard_event_scan::$12 +(boolean~) keyboard_event_scan::$13 +(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +(boolean~) keyboard_event_scan::$15 +(byte~) keyboard_event_scan::$16 +(boolean~) keyboard_event_scan::$17 +(boolean~) keyboard_event_scan::$18 +(byte~) keyboard_event_scan::$19 +(boolean~) keyboard_event_scan::$2 +(byte~) keyboard_event_scan::$20 +(boolean~) keyboard_event_scan::$21 +(boolean~) keyboard_event_scan::$22 +(byte~) keyboard_event_scan::$23 +(byte~) keyboard_event_scan::$24 +(boolean~) keyboard_event_scan::$25 +(boolean~) keyboard_event_scan::$26 +(byte~) keyboard_event_scan::$27 +(byte~) keyboard_event_scan::$28 +(boolean~) keyboard_event_scan::$29 +(byte~) keyboard_event_scan::$3 +(boolean~) keyboard_event_scan::$30 +(byte~) keyboard_event_scan::$31 +(byte~) keyboard_event_scan::$4 +(boolean~) keyboard_event_scan::$5 +(boolean~) keyboard_event_scan::$6 +(boolean~) keyboard_event_scan::$7 +(boolean~) keyboard_event_scan::$8 +(byte~) keyboard_event_scan::$9 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row_scan +(byte[8]) keyboard_events +(byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) (label) keyboard_get_keycode::@return (byte) keyboard_get_keycode::ch @@ -596,7 +881,7 @@ SYMBOLS (byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::rowidx -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -604,6 +889,8 @@ SYMBOLS (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask +(byte) keyboard_modifiers +(byte[8]) keyboard_scan_values (void()) main() (void~) main::$0 (boolean~) main::$1 @@ -787,7 +1074,7 @@ INITIAL CONTROL FLOW GRAPH (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } to:@1 keyboard_init: scope:[keyboard_init] from *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 @@ -818,7 +1105,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1 @@ -839,7 +1126,174 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k keyboard_get_keycode::@1: scope:[keyboard_get_keycode] from to:keyboard_get_keycode::@return @4: scope:[] from @3 + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } to:@5 +keyboard_event_scan: scope:[keyboard_event_scan] from + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + to:keyboard_event_scan::@13 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19 + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 + to:keyboard_event_scan::@8 +keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4 + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + to:keyboard_event_scan::@14 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5 + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + to:keyboard_event_scan::@18 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + to:keyboard_event_scan::@15 +keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7 + to:keyboard_event_scan::@4 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + to:keyboard_event_scan::@16 +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6 + to:keyboard_event_scan::@5 +keyboard_event_scan::@17: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@6 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + to:keyboard_event_scan::@20 +keyboard_event_scan::@19: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@2 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + to:keyboard_event_scan::@21 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21 + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + to:keyboard_event_scan::@22 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 + to:keyboard_event_scan::@9 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + to:keyboard_event_scan::@23 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 + to:keyboard_event_scan::@10 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23 + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + to:keyboard_event_scan::@24 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 + to:keyboard_event_scan::@11 +keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24 + to:keyboard_event_scan::@return +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 + to:keyboard_event_scan::@12 +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12 + return + to:@return +@5: scope:[] from @4 + to:@6 +keyboard_event_pressed: scope:[keyboard_event_pressed] from + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed keyboard_event_pressed::@1 + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return + to:@return +keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from + to:keyboard_event_pressed::@return +@6: scope:[] from @5 + to:@7 +keyboard_event_get: scope:[keyboard_event_get] from + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + to:keyboard_event_get::@3 +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5 + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + to:keyboard_event_get::@return +keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3 + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return + to:@return +keyboard_event_get::@4: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +keyboard_event_get::@2: scope:[keyboard_event_get] from keyboard_event_get::@4 keyboard_event_get::@6 + to:keyboard_event_get::@return +keyboard_event_get::@5: scope:[keyboard_event_get] from + to:keyboard_event_get::@1 +keyboard_event_get::@6: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +@7: scope:[] from @6 + to:@8 main: scope:[main] from (void~) main::$0 ← call keyboard_init to:main::@1 @@ -879,12 +1333,15 @@ main::@12: scope:[main] from main::@return: scope:[main] from main::@3 return to:@return -@5: scope:[] from @4 +@8: scope:[] from @7 call main to:@end -@end: scope:[] from @5 +@end: scope:[] from @8 Removing unused procedure keyboard_get_keycode +Removing unused procedure keyboard_event_scan +Removing unused procedure keyboard_event_get +Removing unused procedure keyboard_event_pressed Eliminating unused variable (byte*) PROCPORT_DDR and assignment [0] (byte*) PROCPORT_DDR ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 Eliminating unused variable (byte) PROCPORT_DDR_MEMORY_MASK and assignment [1] (byte) PROCPORT_DDR_MEMORY_MASK ← (byte/signed byte/word/signed word/dword/signed dword) 7 Eliminating unused variable (byte*) PROCPORT and assignment [2] (byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -957,6 +1414,13 @@ Eliminating unused variable (byte) KEY_CTRL and assignment [123] (byte) KEY_CTRL Eliminating unused variable (byte) KEY_COMMODORE and assignment [126] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 Eliminating unused variable (byte) KEY_RUNSTOP and assignment [128] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [129] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +Eliminating unused variable (byte[8]) keyboard_events and assignment [150] (byte[8]) keyboard_events ← { fill( 8, 0) } +Eliminating unused variable (byte) keyboard_events_size and assignment [151] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) keyboard_modifiers and assignment [152] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [155] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [156] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 +Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [158] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 +Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [159] (byte[8]) keyboard_scan_values ← { fill( 8, 0) } Eliminating unused variable - keeping the call (void~) main::$0 Eliminating unused variable (byte) KEY_3 and assignment [8] (byte) KEY_3 ← (byte/signed byte/word/signed word/dword/signed dword) 8 Eliminating unused variable (byte) KEY_W and assignment [9] (byte) KEY_W ← (byte/signed byte/word/signed word/dword/signed dword) 9 @@ -1007,12 +1471,18 @@ Eliminating unused variable (byte) KEY_1 and assignment [53] (byte) KEY_1 ← (b Eliminating unused variable (byte) KEY_ARROW_LEFT and assignment [54] (byte) KEY_ARROW_LEFT ← (byte/signed byte/word/signed word/dword/signed dword) 57 Eliminating unused variable (byte) KEY_2 and assignment [55] (byte) KEY_2 ← (byte/signed byte/word/signed word/dword/signed dword) 59 Eliminating unused variable (byte) KEY_Q and assignment [57] (byte) KEY_Q ← (byte/signed byte/word/signed word/dword/signed dword) 62 +Eliminating unused variable (byte~) $0 and assignment [80] (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT +Eliminating unused variable (byte) KEY_MODIFIER_LSHIFT and assignment [29] (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) KEY_MODIFIER_RSHIFT and assignment [30] (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 Removing empty block @1 Removing empty block keyboard_matrix_read::@1 Removing empty block @2 Removing empty block keyboard_key_pressed::@1 Removing empty block @3 Removing empty block @4 +Removing empty block @5 +Removing empty block @6 +Removing empty block @7 Removing empty block main::@7 Removing empty block main::@3 Removing empty block main::@8 @@ -1035,8 +1505,8 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte) BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } - to:@5 + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + to:@8 keyboard_init: scope:[keyboard_init] from main *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1070,7 +1540,7 @@ keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_presse (byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 ) (byte) keyboard_matrix_read::return#4 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 ) (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#4 - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 @@ -1078,7 +1548,7 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p (byte) keyboard_key_pressed::return#1 ← (byte) keyboard_key_pressed::return#3 return to:@return -main: scope:[main] from @5 +main: scope:[main] from @8 call keyboard_init param-assignment to:main::@13 main::@13: scope:[main] from main @@ -1113,16 +1583,16 @@ main::@10: scope:[main] from main::@14 main::@return: scope:[main] from main::@1 return to:@return -@5: scope:[] from @begin +@8: scope:[] from @begin call main param-assignment - to:@6 -@6: scope:[] from @5 + to:@9 +@9: scope:[] from @8 to:@end -@end: scope:[] from @6 +@end: scope:[] from @9 SYMBOL TABLE SSA -(label) @5 -(label) @6 +(label) @8 +(label) @9 (label) @begin (label) @end (byte*) BGCOL @@ -1166,8 +1636,8 @@ SYMBOL TABLE SSA (byte) keyboard_key_pressed::return#4 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 -(byte[]) keyboard_matrix_col_bitmask -(byte[]) keyboard_matrix_col_bitmask#0 +(byte[8]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask#0 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -1202,7 +1672,7 @@ SYMBOL TABLE SSA OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@13 Culled Empty Block (label) main::@2 -Culled Empty Block (label) @6 +Culled Empty Block (label) @9 Succesful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (boolean~) main::$4 ← (byte~) main::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$3 ← (byte~) main::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2UnaryNotSimplification @@ -1245,7 +1715,7 @@ Constant (const byte) GREEN#0 = 5 Constant (const byte) BLUE#0 = 6 Constant (const byte) KEY_SPACE#0 = 60 Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } Succesful SSA optimization Pass2ConstantIdentification Constant (const byte) keyboard_key_pressed::key#0 = KEY_SPACE#0 Succesful SSA optimization Pass2ConstantIdentification @@ -1265,10 +1735,10 @@ OPTIMIZING CONTROL FLOW GRAPH Constant inlined keyboard_key_pressed::key#0 = (const byte) KEY_SPACE#0 Constant inlined keyboard_matrix_read::rowid#0 = (const byte) keyboard_key_pressed::rowidx#0 Succesful SSA optimization Pass2ConstantInlining -Block Sequence Planned @begin @5 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return -Block Sequence Planned @begin @5 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return +Block Sequence Planned @begin @8 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return +Block Sequence Planned @begin @8 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return Adding NOP phi() at start of @begin -Adding NOP phi() at start of @5 +Adding NOP phi() at start of @8 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@9 @@ -1283,9 +1753,9 @@ Propagating live ranges... Propagating live ranges... Created 0 initial phi equivalence classes Coalesced down to 0 phi equivalence classes -Block Sequence Planned @begin @5 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return +Block Sequence Planned @begin @8 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return Adding NOP phi() at start of @begin -Adding NOP phi() at start of @5 +Adding NOP phi() at start of @8 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@9 @@ -1297,14 +1767,14 @@ Propagating live ranges... FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@5 -@5: scope:[] from @begin + to:@8 +@8: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @5 +@end: scope:[] from @8 [3] phi() [ ] ( ) -main: scope:[main] from @5 +main: scope:[main] from @8 [4] phi() [ ] ( main:2 [ ] ) [5] call keyboard_init param-assignment [ ] ( main:2 [ ] ) to:main::@1 @@ -1339,7 +1809,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@9 to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] ) - [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) + [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [21] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) @@ -1361,23 +1831,23 @@ keyboard_init::@return: scope:[keyboard_init] from keyboard_init DOMINATORS @begin dominated by @begin -@5 dominated by @begin @5 -@end dominated by @begin @end @5 -main dominated by @begin main @5 -main::@1 dominated by @begin main @5 main::@1 -main::@return dominated by main::@return @begin main @5 main::@1 -main::@4 dominated by @begin main @5 main::@1 main::@4 -main::@9 dominated by main::@9 @begin main @5 main::@1 main::@4 -main::@14 dominated by main::@9 @begin main main::@14 @5 main::@1 main::@4 -main::@10 dominated by main::@9 @begin main::@10 main main::@14 @5 main::@1 main::@4 -main::@5 dominated by main::@9 @begin main main::@14 @5 main::@1 main::@5 main::@4 -keyboard_key_pressed dominated by main::@9 @begin main keyboard_key_pressed @5 main::@1 main::@4 -keyboard_key_pressed::@2 dominated by main::@9 @begin main keyboard_key_pressed @5 main::@1 keyboard_key_pressed::@2 main::@4 -keyboard_key_pressed::@return dominated by main::@9 @begin main keyboard_key_pressed keyboard_key_pressed::@return @5 main::@1 keyboard_key_pressed::@2 main::@4 -keyboard_matrix_read dominated by main::@9 @begin keyboard_matrix_read main keyboard_key_pressed @5 main::@1 main::@4 -keyboard_matrix_read::@return dominated by main::@9 @begin keyboard_matrix_read main keyboard_matrix_read::@return keyboard_key_pressed @5 main::@1 main::@4 -keyboard_init dominated by @begin main keyboard_init @5 -keyboard_init::@return dominated by @begin main keyboard_init @5 keyboard_init::@return +@8 dominated by @begin @8 +@end dominated by @begin @end @8 +main dominated by @begin main @8 +main::@1 dominated by @begin main @8 main::@1 +main::@return dominated by main::@return @begin main @8 main::@1 +main::@4 dominated by @begin main @8 main::@1 main::@4 +main::@9 dominated by main::@9 @begin main @8 main::@1 main::@4 +main::@14 dominated by main::@9 @begin main main::@14 @8 main::@1 main::@4 +main::@10 dominated by main::@9 @begin main::@10 main main::@14 @8 main::@1 main::@4 +main::@5 dominated by main::@9 @begin main main::@14 @8 main::@1 main::@5 main::@4 +keyboard_key_pressed dominated by main::@9 @begin main keyboard_key_pressed @8 main::@1 main::@4 +keyboard_key_pressed::@2 dominated by main::@9 @begin main keyboard_key_pressed @8 main::@1 keyboard_key_pressed::@2 main::@4 +keyboard_key_pressed::@return dominated by main::@9 @begin main keyboard_key_pressed keyboard_key_pressed::@return @8 main::@1 keyboard_key_pressed::@2 main::@4 +keyboard_matrix_read dominated by main::@9 @begin keyboard_matrix_read main keyboard_key_pressed @8 main::@1 main::@4 +keyboard_matrix_read::@return dominated by main::@9 @begin keyboard_matrix_read main keyboard_matrix_read::@return keyboard_key_pressed @8 main::@1 main::@4 +keyboard_init dominated by @begin main keyboard_init @8 +keyboard_init::@return dominated by @begin main keyboard_init @8 keyboard_init::@return NATURAL LOOPS Found back edge: Loop head: main::@4 tails: main::@4 blocks: null @@ -1421,7 +1891,7 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_key_pressed::return#0 4.333333333333333 (byte) keyboard_key_pressed::return#2 22.0 (byte) keyboard_key_pressed::rowidx -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte) keyboard_matrix_read::return (byte) keyboard_matrix_read::return#0 1.3333333333333333 @@ -1470,17 +1940,17 @@ INITIAL ASM .const KEY_SPACE = $3c //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @5 [phi:@begin->@5] -b5_from_bbegin: - jmp b5 -//SEG4 @5 -b5: +//SEG3 [1] phi from @begin to @8 [phi:@begin->@8] +b8_from_bbegin: + jmp b8 +//SEG4 @8 +b8: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @5 to main [phi:@5->main] -main_from_b5: +//SEG6 [4] phi from @8 to main [phi:@8->main] +main_from_b8: jsr main -//SEG7 [3] phi from @5 to @end [phi:@5->@end] -bend_from_b5: +//SEG7 [3] phi from @8 to @end [phi:@8->@end] +bend_from_b8: jmp bend //SEG8 @end bend: @@ -1558,7 +2028,7 @@ keyboard_key_pressed: { //SEG33 [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta _2 - //SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band__deref_pbuc1 + //SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band__deref_pbuc1 lda keyboard_matrix_col_bitmask+colidx and _2 sta return @@ -1606,7 +2076,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [14] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [15] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) always clobbers reg byte a Statement [23] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [25] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:5 [ ] ) always clobbers reg byte a @@ -1648,17 +2118,17 @@ ASSEMBLER BEFORE OPTIMIZATION .const KEY_SPACE = $3c //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @5 [phi:@begin->@5] -b5_from_bbegin: - jmp b5 -//SEG4 @5 -b5: +//SEG3 [1] phi from @begin to @8 [phi:@begin->@8] +b8_from_bbegin: + jmp b8 +//SEG4 @8 +b8: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @5 to main [phi:@5->main] -main_from_b5: +//SEG6 [4] phi from @8 to main [phi:@8->main] +main_from_b8: jsr main -//SEG7 [3] phi from @5 to @end [phi:@5->@end] -bend_from_b5: +//SEG7 [3] phi from @8 to @end [phi:@8->@end] +bend_from_b8: jmp bend //SEG8 @end bend: @@ -1728,7 +2198,7 @@ keyboard_key_pressed: { b2: //SEG33 [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] ) // (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a - //SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1 + //SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1 and keyboard_matrix_col_bitmask+colidx jmp breturn //SEG35 keyboard_key_pressed::@return @@ -1768,7 +2238,7 @@ keyboard_init: { keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b5 +Removing instruction jmp b8 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp breturn @@ -1781,13 +2251,13 @@ Removing instruction jmp breturn Removing instruction jmp breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction bbegin: -Removing instruction b5_from_bbegin: -Removing instruction main_from_b5: -Removing instruction bend_from_b5: +Removing instruction b8_from_bbegin: +Removing instruction main_from_b8: +Removing instruction bend_from_b8: Removing instruction b9_from_b4: Removing instruction keyboard_key_pressed_from_b9: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b5: +Removing instruction b8: Removing instruction bend: Removing instruction breturn: Removing instruction b9: @@ -1809,7 +2279,7 @@ Removing instruction b1: Succesful ASM optimization Pass5RedundantLabelElimination FINAL SYMBOL TABLE -(label) @5 +(label) @8 (label) @begin (label) @end (byte*) BGCOL @@ -1844,8 +2314,8 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::return#2 reg byte a 22.0 (byte) keyboard_key_pressed::rowidx (const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(byte/signed byte/word/signed word/dword/signed dword) 3 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -1891,12 +2361,12 @@ Score: 1147 .const BLUE = 6 .const KEY_SPACE = $3c //SEG2 @begin -//SEG3 [1] phi from @begin to @5 [phi:@begin->@5] -//SEG4 @5 +//SEG3 [1] phi from @begin to @8 [phi:@begin->@8] +//SEG4 @8 //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @5 to main [phi:@5->main] +//SEG6 [4] phi from @8 to main [phi:@8->main] jsr main -//SEG7 [3] phi from @5 to @end [phi:@5->@end] +//SEG7 [3] phi from @8 to @end [phi:@8->@end] //SEG8 @end //SEG9 main main: { @@ -1948,7 +2418,7 @@ keyboard_key_pressed: { //SEG32 keyboard_key_pressed::@2 //SEG33 [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] ) // (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a - //SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1 + //SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1 and keyboard_matrix_col_bitmask+colidx //SEG35 keyboard_key_pressed::@return //SEG36 [21] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.sym index 540745dd4..b23bbc74e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.sym @@ -1,4 +1,4 @@ -(label) @5 +(label) @8 (label) @begin (label) @end (byte*) BGCOL @@ -33,8 +33,8 @@ (byte) keyboard_key_pressed::return#2 reg byte a 22.0 (byte) keyboard_key_pressed::rowidx (const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(byte/signed byte/word/signed word/dword/signed dword) 3 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.cfg index cd2eddf71..98526b07e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@5 -@5: scope:[] from @begin + to:@8 +@8: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @5 +@end: scope:[] from @8 [3] phi() [ ] ( ) -main: scope:[main] from @5 +main: scope:[main] from @8 [4] phi() [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@1 @@ -108,7 +108,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@22 to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) + [57] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [58] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log index 0a58b1885..b84531ec1 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log @@ -152,7 +152,7 @@ const byte[] keyboard_char_keycodes = { byte[8] keyboard_matrix_row_bitmask = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; // Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7) -byte[] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; +byte[8] keyboard_matrix_col_bitmask = { %00000001, %00000010, %00000100, %00001000, %00010000, %00100000, %01000000, %10000000 }; // Initialize keyboard reading by setting CIA#$ Data Direction Registers void keyboard_init() { @@ -172,7 +172,7 @@ byte keyboard_matrix_read(byte rowid) { return row_pressed_bits; } -// Determines whether a specific key is currently pressed +// Determines whether a specific key is currently pressed by accessing the matrix directly // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed @@ -189,6 +189,97 @@ byte keyboard_key_pressed(byte key) { byte keyboard_get_keycode(byte ch) { return keyboard_char_keycodes[ch]; } + +// Keyboard event buffer. Contains keycodes for key presses/releases. Presses are represented by the keycode. Releases by keycode | $40. The buffer is filled by keyboard_scan() +byte[8] keyboard_events; +// Keyboard event buffer size. The number of events currently in the event buffer +byte keyboard_events_size = 0; +// Current keyboard modifiers (left shift, right shift, ctrl, commodore) +byte keyboard_modifiers = 0; +// Left shift is pressed +const byte KEY_MODIFIER_LSHIFT = 1; +// Right shift is pressed +const byte KEY_MODIFIER_RSHIFT = 2; +// CTRL is pressed +const byte KEY_MODIFIER_CTRL = 4; +// Commodore is pressed +const byte KEY_MODIFIER_COMMODORE = 8; +// Any shift is pressed +const byte KEY_MODIFIER_SHIFT = KEY_MODIFIER_LSHIFT|KEY_MODIFIER_RSHIFT; +// The values scanned values for each row. Set by keyboard_scan() and used by keyboard_get_event() +byte[8] keyboard_scan_values; + +// Scans the entire matrix to determine which keys have been pressed/depressed. +// Generates keyboard events into the event buffer. Events can be read using keyboard_event_get(). +// Handles debounce and only generates events when the status of a key changes. +// Also stores current status of modifiers in keyboard_modifiers. +void keyboard_event_scan() { + byte keycode = 0; + for(byte row : 0..7) { + byte row_scan = keyboard_matrix_read(row); + if(row_scan!=keyboard_scan_values[row]) { + // Something has changed on the keyboard row - check each column + for(byte col : 0..7){ + // XOR of row scan with the last seen row scan AND'ed with the col bitmask will be non-0 if the key status is changed + if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) { + // Key(row, col) status has changed. We have an event. + // Only process event if there is still room in the buffer + if(keyboard_events_size!=8) { + // AND of row scan and bit mask determines if key is pressed or released + byte event_type = row_scan&keyboard_matrix_col_bitmask[col]; + if(event_type==0) { + // Key released + keyboard_events[keyboard_events_size++] = keycode|$40; + } else { + // Key pressed + keyboard_events[keyboard_events_size++] = keycode; + } + } + } + keycode++; + } + // Store the current keyboard status for the row to debounce + keyboard_scan_values[row] = row_scan; + } else { + // Update current keycode + keycode = keycode + 8; + } + } + // Update the keyboard modifiers + keyboard_modifiers = 0; + if(keyboard_event_pressed(KEY_LSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_LSHIFT; + } + if(keyboard_event_pressed(KEY_RSHIFT)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_RSHIFT; + } + if(keyboard_event_pressed(KEY_CTRL)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_CTRL; + } + if(keyboard_event_pressed(KEY_COMMODORE)!= 0) { + keyboard_modifiers = keyboard_modifiers | KEY_MODIFIER_COMMODORE; + } +} + +// Determine if a specific key is currently pressed based on the last keyboard_event_scan() +// Returns 0 is not pressed and non-0 if pressed +byte keyboard_event_pressed(byte keycode) { + byte row_bits = keyboard_scan_values[keycode>>3]; + return row_bits & keyboard_matrix_col_bitmask[keycode&7]; +} + +// Get the next event from the keyboard event buffer. +// Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. +// The buffer is filled by keyboard_scan() +byte keyboard_event_get() { + if(keyboard_events_size==0) { + return $ff; + } else { + return keyboard_events[--keyboard_events_size]; + } +} + + Importing c64.kc PARSING src/test/java/dk/camelot64/kickc/test/kc/c64.kc // Commodore 64 Registers and Constants @@ -285,6 +376,10 @@ const byte LIGHT_GREEN = $d; const byte LIGHT_BLUE = $e; const byte LIGHT_GREY = $f; +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +Adding pre/post-modifier (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode +Adding pre/post-modifier (byte) keyboard_events_size ← -- (byte) keyboard_events_size Adding pre/post-modifier (byte*) main::sc ← ++ (byte*) main::sc Adding pre/post-modifier (byte) main::i ← ++ (byte) main::i Adding pre/post-modifier (byte) main::i ← ++ (byte) main::i @@ -421,7 +516,7 @@ STATEMENTS (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } proc (void()) keyboard_init() *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -444,7 +539,7 @@ proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 goto keyboard_key_pressed::@return keyboard_key_pressed::@return: @@ -458,6 +553,122 @@ keyboard_get_keycode::@return: (byte) keyboard_get_keycode::return ← (byte) keyboard_get_keycode::return return (byte) keyboard_get_keycode::return endproc // keyboard_get_keycode() + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } +proc (void()) keyboard_event_scan() + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@1: + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 +keyboard_event_scan::@3: + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + goto keyboard_event_scan::@7 +keyboard_event_scan::@6: + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size +keyboard_event_scan::@7: +keyboard_event_scan::@5: +keyboard_event_scan::@4: + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + goto keyboard_event_scan::@8 +keyboard_event_scan::@2: + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +keyboard_event_scan::@8: + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 +keyboard_event_scan::@9: + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 +keyboard_event_scan::@10: + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 +keyboard_event_scan::@11: + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 +keyboard_event_scan::@12: +keyboard_event_scan::@return: + return +endproc // keyboard_event_scan() +proc (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + goto keyboard_event_pressed::@return +keyboard_event_pressed::@return: + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return +endproc // keyboard_event_pressed() +proc (byte()) keyboard_event_get() + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + goto keyboard_event_get::@return + goto keyboard_event_get::@2 +keyboard_event_get::@1: + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + goto keyboard_event_get::@return +keyboard_event_get::@2: +keyboard_event_get::@return: + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return +endproc // keyboard_event_get() proc (void()) main() (byte*) main::sc ← (word/signed word/dword/signed dword) 1024 main::@1: @@ -534,6 +745,7 @@ endproc // main() call main SYMBOLS +(byte~) $0 (byte*) BGCOL (byte*) BGCOL1 (byte*) BGCOL2 @@ -603,6 +815,11 @@ SYMBOLS (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS +(byte) KEY_MODIFIER_COMMODORE +(byte) KEY_MODIFIER_CTRL +(byte) KEY_MODIFIER_LSHIFT +(byte) KEY_MODIFIER_RSHIFT +(byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O (byte) KEY_P @@ -664,6 +881,74 @@ SYMBOLS (byte) WHITE (byte) YELLOW (byte[]) keyboard_char_keycodes +(byte()) keyboard_event_get() +(boolean~) keyboard_event_get::$0 +(boolean~) keyboard_event_get::$1 +(label) keyboard_event_get::@1 +(label) keyboard_event_get::@2 +(label) keyboard_event_get::@return +(byte) keyboard_event_get::return +(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) +(byte~) keyboard_event_pressed::$0 +(byte~) keyboard_event_pressed::$1 +(byte~) keyboard_event_pressed::$2 +(label) keyboard_event_pressed::@return +(byte) keyboard_event_pressed::keycode +(byte) keyboard_event_pressed::return +(byte) keyboard_event_pressed::row_bits +(void()) keyboard_event_scan() +(byte~) keyboard_event_scan::$0 +(boolean~) keyboard_event_scan::$1 +(boolean~) keyboard_event_scan::$10 +(boolean~) keyboard_event_scan::$11 +(byte/word/dword~) keyboard_event_scan::$12 +(boolean~) keyboard_event_scan::$13 +(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 +(boolean~) keyboard_event_scan::$15 +(byte~) keyboard_event_scan::$16 +(boolean~) keyboard_event_scan::$17 +(boolean~) keyboard_event_scan::$18 +(byte~) keyboard_event_scan::$19 +(boolean~) keyboard_event_scan::$2 +(byte~) keyboard_event_scan::$20 +(boolean~) keyboard_event_scan::$21 +(boolean~) keyboard_event_scan::$22 +(byte~) keyboard_event_scan::$23 +(byte~) keyboard_event_scan::$24 +(boolean~) keyboard_event_scan::$25 +(boolean~) keyboard_event_scan::$26 +(byte~) keyboard_event_scan::$27 +(byte~) keyboard_event_scan::$28 +(boolean~) keyboard_event_scan::$29 +(byte~) keyboard_event_scan::$3 +(boolean~) keyboard_event_scan::$30 +(byte~) keyboard_event_scan::$31 +(byte~) keyboard_event_scan::$4 +(boolean~) keyboard_event_scan::$5 +(boolean~) keyboard_event_scan::$6 +(boolean~) keyboard_event_scan::$7 +(boolean~) keyboard_event_scan::$8 +(byte~) keyboard_event_scan::$9 +(label) keyboard_event_scan::@1 +(label) keyboard_event_scan::@10 +(label) keyboard_event_scan::@11 +(label) keyboard_event_scan::@12 +(label) keyboard_event_scan::@2 +(label) keyboard_event_scan::@3 +(label) keyboard_event_scan::@4 +(label) keyboard_event_scan::@5 +(label) keyboard_event_scan::@6 +(label) keyboard_event_scan::@7 +(label) keyboard_event_scan::@8 +(label) keyboard_event_scan::@9 +(label) keyboard_event_scan::@return +(byte) keyboard_event_scan::col +(byte) keyboard_event_scan::event_type +(byte) keyboard_event_scan::keycode +(byte) keyboard_event_scan::row +(byte) keyboard_event_scan::row_scan +(byte[8]) keyboard_events +(byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) (label) keyboard_get_keycode::@return (byte) keyboard_get_keycode::ch @@ -680,7 +965,7 @@ SYMBOLS (byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::rowidx -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -688,6 +973,8 @@ SYMBOLS (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask +(byte) keyboard_modifiers +(byte[8]) keyboard_scan_values (void()) main() (word/signed word/dword/signed dword~) main::$0 (boolean~) main::$1 @@ -904,7 +1191,7 @@ INITIAL CONTROL FLOW GRAPH (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte[8]) keyboard_matrix_col_bitmask ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } to:@1 keyboard_init: scope:[keyboard_init] from *((byte*) CIA1_PORT_A_DDR) ← (byte/word/signed word/dword/signed dword) 255 @@ -935,7 +1222,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1 (byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx) (byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1 @@ -956,7 +1243,174 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k keyboard_get_keycode::@1: scope:[keyboard_get_keycode] from to:keyboard_get_keycode::@return @4: scope:[] from @3 + (byte[8]) keyboard_events ← { fill( 8, 0) } + (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT + (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 + (byte[8]) keyboard_scan_values ← { fill( 8, 0) } to:@5 +keyboard_event_scan: scope:[keyboard_event_scan] from + (byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@1 +keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 + (byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row + (byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0 + (boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1 + if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2 + to:keyboard_event_scan::@13 +keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19 + (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 + to:keyboard_event_scan::@8 +keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1 + (byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:keyboard_event_scan::@3 +keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4 + (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) + (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5 + if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4 + to:keyboard_event_scan::@14 +keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5 + (byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode + (byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col + (boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3 + to:keyboard_event_scan::@18 +keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3 + (boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8 + (boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7 + if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5 + to:keyboard_event_scan::@15 +keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7 + to:keyboard_event_scan::@4 +keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14 + (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col) + (byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9 + (boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10 + if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6 + to:keyboard_event_scan::@16 +keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 + (byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64 + *((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12 + (byte) keyboard_events_size ← ++ (byte) keyboard_events_size + to:keyboard_event_scan::@7 +keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6 + to:keyboard_event_scan::@5 +keyboard_event_scan::@17: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@6 +keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4 + *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan + to:keyboard_event_scan::@8 +keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2 + (byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row + (boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1 + to:keyboard_event_scan::@20 +keyboard_event_scan::@19: scope:[keyboard_event_scan] from + to:keyboard_event_scan::@2 +keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8 + (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT + (boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17 + if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9 + to:keyboard_event_scan::@21 +keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21 + (byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT + (boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21 + if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10 + to:keyboard_event_scan::@22 +keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20 + (byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19 + to:keyboard_event_scan::@9 +keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL + (boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25 + if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11 + to:keyboard_event_scan::@23 +keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9 + (byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23 + to:keyboard_event_scan::@10 +keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23 + (byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE + (boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29 + if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12 + to:keyboard_event_scan::@24 +keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10 + (byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27 + to:keyboard_event_scan::@11 +keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24 + to:keyboard_event_scan::@return +keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11 + (byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE + (byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31 + to:keyboard_event_scan::@12 +keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12 + return + to:@return +@5: scope:[] from @4 + to:@6 +keyboard_event_pressed: scope:[keyboard_event_pressed] from + (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) keyboard_event_pressed::row_bits ← *((byte[8]) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte~) keyboard_event_pressed::$2 ← (byte) keyboard_event_pressed::row_bits & *((byte[8]) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + (byte) keyboard_event_pressed::return ← (byte~) keyboard_event_pressed::$2 + to:keyboard_event_pressed::@return +keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed keyboard_event_pressed::@1 + (byte) keyboard_event_pressed::return ← (byte) keyboard_event_pressed::return + return (byte) keyboard_event_pressed::return + to:@return +keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from + to:keyboard_event_pressed::@return +@6: scope:[] from @5 + to:@7 +keyboard_event_get: scope:[keyboard_event_get] from + (boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0 + if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1 + to:keyboard_event_get::@3 +keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5 + (byte) keyboard_events_size ← -- (byte) keyboard_events_size + (byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size) + to:keyboard_event_get::@return +keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get + (byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255 + to:keyboard_event_get::@return +keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3 + (byte) keyboard_event_get::return ← (byte) keyboard_event_get::return + return (byte) keyboard_event_get::return + to:@return +keyboard_event_get::@4: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +keyboard_event_get::@2: scope:[keyboard_event_get] from keyboard_event_get::@4 keyboard_event_get::@6 + to:keyboard_event_get::@return +keyboard_event_get::@5: scope:[keyboard_event_get] from + to:keyboard_event_get::@1 +keyboard_event_get::@6: scope:[keyboard_event_get] from + to:keyboard_event_get::@2 +@7: scope:[] from @6 + to:@8 main: scope:[main] from (byte*) main::sc ← ((byte*)) (word/signed word/dword/signed dword) 1024 to:main::@1 @@ -1067,11 +1521,14 @@ main::@26: scope:[main] from main::@return: scope:[main] from main::@4 return to:@return -@5: scope:[] from @4 +@8: scope:[] from @7 call main to:@end -@end: scope:[] from @5 +@end: scope:[] from @8 +Removing unused procedure keyboard_event_scan +Removing unused procedure keyboard_event_get +Removing unused procedure keyboard_event_pressed Eliminating unused variable (byte*) PROCPORT_DDR and assignment [0] (byte*) PROCPORT_DDR ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 Eliminating unused variable (byte) PROCPORT_DDR_MEMORY_MASK and assignment [1] (byte) PROCPORT_DDR_MEMORY_MASK ← (byte/signed byte/word/signed word/dword/signed dword) 7 Eliminating unused variable (byte*) PROCPORT and assignment [2] (byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -1146,7 +1603,17 @@ Eliminating unused variable (byte) KEY_RSHIFT and assignment [117] (byte) KEY_RS Eliminating unused variable (byte) KEY_CTRL and assignment [123] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58 Eliminating unused variable (byte) KEY_COMMODORE and assignment [126] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 Eliminating unused variable (byte) KEY_RUNSTOP and assignment [128] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 +Eliminating unused variable (byte[8]) keyboard_events and assignment [153] (byte[8]) keyboard_events ← { fill( 8, 0) } +Eliminating unused variable (byte) keyboard_events_size and assignment [154] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) keyboard_modifiers and assignment [155] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [158] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [159] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8 +Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [161] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0 +Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [162] (byte[8]) keyboard_scan_values ← { fill( 8, 0) } Eliminating unused variable - keeping the call (void~) main::$2 +Eliminating unused variable (byte~) $0 and assignment [81] (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT +Eliminating unused variable (byte) KEY_MODIFIER_LSHIFT and assignment [79] (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) KEY_MODIFIER_RSHIFT and assignment [80] (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2 Removing empty block @1 Removing empty block keyboard_matrix_read::@1 Removing empty block @2 @@ -1154,6 +1621,9 @@ Removing empty block keyboard_key_pressed::@1 Removing empty block @3 Removing empty block keyboard_get_keycode::@1 Removing empty block @4 +Removing empty block @5 +Removing empty block @6 +Removing empty block @7 Removing empty block main::@15 Removing empty block main::@4 Removing empty block main::@16 @@ -1228,8 +1698,8 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } - to:@5 + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + to:@8 keyboard_init: scope:[keyboard_init] from main::@14 *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 *((byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1263,7 +1733,7 @@ keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_presse (byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 ) (byte) keyboard_matrix_read::return#5 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 ) (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#5 - (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) + (byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1) (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 @@ -1280,7 +1750,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k (byte) keyboard_get_keycode::return#1 ← (byte) keyboard_get_keycode::return#3 return to:@return -main: scope:[main] from @5 +main: scope:[main] from @8 (byte*) main::sc#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -1444,16 +1914,16 @@ main::@13: scope:[main] from main::@11 main::@13 main::@return: scope:[main] from main::@2 return to:@return -@5: scope:[] from @begin +@8: scope:[] from @begin call main param-assignment - to:@6 -@6: scope:[] from @5 + to:@9 +@9: scope:[] from @8 to:@end -@end: scope:[] from @6 +@end: scope:[] from @9 SYMBOL TABLE SSA -(label) @5 -(label) @6 +(label) @8 +(label) @9 (label) @begin (label) @end (byte*) CIA1_PORT_A @@ -1602,8 +2072,8 @@ SYMBOL TABLE SSA (byte) keyboard_key_pressed::return#4 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 -(byte[]) keyboard_matrix_col_bitmask -(byte[]) keyboard_matrix_col_bitmask#0 +(byte[8]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask#0 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte~) keyboard_matrix_read::$0 (label) keyboard_matrix_read::@return @@ -1745,7 +2215,7 @@ SYMBOL TABLE SSA OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@27 Culled Empty Block (label) main::@3 -Culled Empty Block (label) @6 +Culled Empty Block (label) @9 Succesful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (boolean~) main::$7 ← (byte~) main::$5 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$6 ← (byte~) main::$5 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) main::$15 ← (byte) main::key#0 == (byte/signed byte/word/signed word/dword/signed dword) 63 from (boolean~) main::$14 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63 @@ -1908,7 +2378,7 @@ Constant (const byte) KEY_2#0 = 59 Constant (const byte) KEY_SPACE#0 = 60 Constant (const byte) KEY_Q#0 = 62 Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } Constant (const byte*) main::sc#0 = ((byte*))1024 Constant (const word/signed word/dword/signed dword) main::$0 = 1024+1000 Constant (const byte*) main::screen#0 = ((byte*))1024 @@ -1976,7 +2446,7 @@ Constant inlined main::sc#0 = ((byte*))(word/signed word/dword/signed dword) 102 Constant inlined main::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2ConstantInlining -Block Sequence Planned @begin @5 @end main main::@1 main::@14 main::@2 main::@return main::@5 main::@6 main::@28 main::@7 main::@18 main::@9 main::@20 main::@21 main::@10 main::@29 main::@22 main::@30 main::@23 main::@11 main::@13 main::@8 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return keyboard_init keyboard_init::@return +Block Sequence Planned @begin @8 @end main main::@1 main::@14 main::@2 main::@return main::@5 main::@6 main::@28 main::@7 main::@18 main::@9 main::@20 main::@21 main::@10 main::@29 main::@22 main::@30 main::@23 main::@11 main::@13 main::@8 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return keyboard_init keyboard_init::@return Added new block during phi lifting main::@31(between main::@1 and main::@1) Added new block during phi lifting main::@32(between main::@20 and main::@6) Added new block during phi lifting main::@33(between main::@9 and main::@7) @@ -1985,9 +2455,9 @@ Added new block during phi lifting main::@35(between main::@30 and main::@11) Added new block during phi lifting main::@36(between main::@29 and main::@11) Added new block during phi lifting main::@37(between main::@11 and main::@13) Added new block during phi lifting main::@38(between main::@13 and main::@13) -Block Sequence Planned @begin @5 @end main main::@1 main::@14 main::@2 main::@return main::@5 main::@6 main::@28 main::@7 main::@18 main::@9 main::@20 main::@21 main::@10 main::@29 main::@22 main::@30 main::@23 main::@11 main::@37 main::@13 main::@38 main::@34 main::@35 main::@36 main::@32 main::@33 main::@8 main::@31 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return keyboard_init keyboard_init::@return +Block Sequence Planned @begin @8 @end main main::@1 main::@14 main::@2 main::@return main::@5 main::@6 main::@28 main::@7 main::@18 main::@9 main::@20 main::@21 main::@10 main::@29 main::@22 main::@30 main::@23 main::@11 main::@37 main::@13 main::@38 main::@34 main::@35 main::@36 main::@32 main::@33 main::@8 main::@31 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return keyboard_init keyboard_init::@return Adding NOP phi() at start of @begin -Adding NOP phi() at start of @5 +Adding NOP phi() at start of @8 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@14 @@ -2035,9 +2505,9 @@ Culled Empty Block (label) main::@36 Culled Empty Block (label) main::@32 Culled Empty Block (label) main::@33 Culled Empty Block (label) main::@31 -Block Sequence Planned @begin @5 @end main main::@1 main::@14 main::@2 main::@return main::@5 main::@6 main::@28 main::@7 main::@18 main::@9 main::@20 main::@21 main::@10 main::@29 main::@22 main::@30 main::@23 main::@11 main::@13 main::@8 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return keyboard_init keyboard_init::@return +Block Sequence Planned @begin @8 @end main main::@1 main::@14 main::@2 main::@return main::@5 main::@6 main::@28 main::@7 main::@18 main::@9 main::@20 main::@21 main::@10 main::@29 main::@22 main::@30 main::@23 main::@11 main::@13 main::@8 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_get_keycode keyboard_get_keycode::@return keyboard_init keyboard_init::@return Adding NOP phi() at start of @begin -Adding NOP phi() at start of @5 +Adding NOP phi() at start of @8 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@14 @@ -2057,14 +2527,14 @@ Propagating live ranges... FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@5 -@5: scope:[] from @begin + to:@8 +@8: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @5 +@end: scope:[] from @8 [3] phi() [ ] ( ) -main: scope:[main] from @5 +main: scope:[main] from @8 [4] phi() [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@1 @@ -2165,7 +2635,7 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@22 to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) - [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) + [57] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 [58] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) @@ -2194,38 +2664,38 @@ keyboard_init::@return: scope:[keyboard_init] from keyboard_init DOMINATORS @begin dominated by @begin -@5 dominated by @begin @5 -@end dominated by @end @begin @5 -main dominated by main @begin @5 -main::@1 dominated by main main::@1 @begin @5 -main::@14 dominated by main main::@1 @begin main::@14 @5 -main::@2 dominated by main main::@1 main::@2 @begin main::@14 @5 -main::@return dominated by main::@return main main::@1 main::@2 @begin main::@14 @5 -main::@5 dominated by main main::@1 main::@2 main::@5 @begin main::@14 @5 -main::@6 dominated by main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -main::@28 dominated by main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -main::@7 dominated by main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -main::@18 dominated by main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@18 main::@14 @5 -main::@9 dominated by main::@9 main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -main::@20 dominated by main::@9 main::@20 main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -main::@21 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -main::@10 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 @5 -main::@29 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 @5 -main::@22 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 @5 -main::@30 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 main::@30 @begin main::@10 main::@14 @5 -main::@23 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@23 main::@1 main::@2 main::@5 main::@6 main::@30 @begin main::@10 main::@14 @5 -main::@11 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 main::@11 @begin main::@10 main::@14 @5 -main::@13 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 main::@11 @begin main::@10 main::@13 main::@14 @5 -main::@8 dominated by main::@7 main::@8 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -keyboard_key_pressed dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 keyboard_key_pressed @5 -keyboard_key_pressed::@2 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 keyboard_key_pressed::@2 main::@5 main::@6 @begin main::@10 main::@14 keyboard_key_pressed @5 -keyboard_key_pressed::@return dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 keyboard_key_pressed::@return main::@1 main::@2 keyboard_key_pressed::@2 main::@5 main::@6 @begin main::@10 main::@14 keyboard_key_pressed @5 -keyboard_matrix_read dominated by keyboard_matrix_read main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @5 -keyboard_matrix_read::@return dominated by keyboard_matrix_read main main::@1 main::@2 main::@5 main::@6 @begin keyboard_matrix_read::@return main::@14 @5 -keyboard_get_keycode dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 keyboard_get_keycode @begin main::@10 main::@14 @5 -keyboard_get_keycode::@return dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 keyboard_get_keycode @begin main::@10 main::@14 @5 keyboard_get_keycode::@return -keyboard_init dominated by main keyboard_init main::@1 @begin main::@14 @5 -keyboard_init::@return dominated by main keyboard_init main::@1 keyboard_init::@return @begin main::@14 @5 +@8 dominated by @begin @8 +@end dominated by @end @begin @8 +main dominated by main @begin @8 +main::@1 dominated by main main::@1 @begin @8 +main::@14 dominated by main main::@1 @begin main::@14 @8 +main::@2 dominated by main main::@1 main::@2 @begin main::@14 @8 +main::@return dominated by main::@return main main::@1 main::@2 @begin main::@14 @8 +main::@5 dominated by main main::@1 main::@2 main::@5 @begin main::@14 @8 +main::@6 dominated by main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +main::@28 dominated by main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +main::@7 dominated by main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +main::@18 dominated by main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@18 main::@14 @8 +main::@9 dominated by main::@9 main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +main::@20 dominated by main::@9 main::@20 main::@7 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +main::@21 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +main::@10 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 @8 +main::@29 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 @8 +main::@22 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 @8 +main::@30 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 main::@30 @begin main::@10 main::@14 @8 +main::@23 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@23 main::@1 main::@2 main::@5 main::@6 main::@30 @begin main::@10 main::@14 @8 +main::@11 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 main::@11 @begin main::@10 main::@14 @8 +main::@13 dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 main::@11 @begin main::@10 main::@13 main::@14 @8 +main::@8 dominated by main::@7 main::@8 main::@28 main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +keyboard_key_pressed dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@14 keyboard_key_pressed @8 +keyboard_key_pressed::@2 dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 main::@1 main::@2 keyboard_key_pressed::@2 main::@5 main::@6 @begin main::@10 main::@14 keyboard_key_pressed @8 +keyboard_key_pressed::@return dominated by main::@9 main::@20 main::@7 main::@22 main::@21 main::@28 main main::@29 keyboard_key_pressed::@return main::@1 main::@2 keyboard_key_pressed::@2 main::@5 main::@6 @begin main::@10 main::@14 keyboard_key_pressed @8 +keyboard_matrix_read dominated by keyboard_matrix_read main main::@1 main::@2 main::@5 main::@6 @begin main::@14 @8 +keyboard_matrix_read::@return dominated by keyboard_matrix_read main main::@1 main::@2 main::@5 main::@6 @begin keyboard_matrix_read::@return main::@14 @8 +keyboard_get_keycode dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 keyboard_get_keycode @begin main::@10 main::@14 @8 +keyboard_get_keycode::@return dominated by main::@9 main::@20 main::@7 main::@21 main::@28 main main::@1 main::@2 main::@5 main::@6 keyboard_get_keycode @begin main::@10 main::@14 @8 keyboard_get_keycode::@return +keyboard_init dominated by main keyboard_init main::@1 @begin main::@14 @8 +keyboard_init::@return dominated by main keyboard_init main::@1 keyboard_init::@return @begin main::@14 @8 NATURAL LOOPS Found back edge: Loop head: main::@1 tails: main::@1 blocks: null @@ -2348,7 +2818,7 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_key_pressed::return#2 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 4.0 -(byte[]) keyboard_matrix_col_bitmask +(byte[8]) keyboard_matrix_col_bitmask (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (byte) keyboard_matrix_read::return (byte) keyboard_matrix_read::return#0 26.25 @@ -2530,17 +3000,17 @@ INITIAL ASM .const KEY_Q = $3e //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @5 [phi:@begin->@5] -b5_from_bbegin: - jmp b5 -//SEG4 @5 -b5: +//SEG3 [1] phi from @begin to @8 [phi:@begin->@8] +b8_from_bbegin: + jmp b8 +//SEG4 @8 +b8: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @5 to main [phi:@5->main] -main_from_b5: +//SEG6 [4] phi from @8 to main [phi:@8->main] +main_from_b8: jsr main -//SEG7 [3] phi from @5 to @end [phi:@5->@end] -bend_from_b5: +//SEG7 [3] phi from @8 to @end [phi:@8->@end] +bend_from_b8: jmp bend //SEG8 @end bend: @@ -2852,7 +3322,7 @@ keyboard_key_pressed: { //SEG107 [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta _2 - //SEG108 [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG108 [57] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _2 ldy colidx and keyboard_matrix_col_bitmask,y @@ -2935,7 +3405,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ ma Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ] Statement [52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 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:22 [ keyboard_key_pressed::colidx#0 ] -Statement [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [57] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a @@ -2952,7 +3422,7 @@ Statement [47] *((byte*) main::screen#2 + (byte) main::i#4) ← (byte) ' ' [ mai Statement [50] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a Statement [51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a -Statement [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [57] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a @@ -3079,17 +3549,17 @@ ASSEMBLER BEFORE OPTIMIZATION .const KEY_Q = $3e //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @5 [phi:@begin->@5] -b5_from_bbegin: - jmp b5 -//SEG4 @5 -b5: +//SEG3 [1] phi from @begin to @8 [phi:@begin->@8] +b8_from_bbegin: + jmp b8 +//SEG4 @8 +b8: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @5 to main [phi:@5->main] -main_from_b5: +//SEG6 [4] phi from @8 to main [phi:@8->main] +main_from_b8: jsr main -//SEG7 [3] phi from @5 to @end [phi:@5->@end] -bend_from_b5: +//SEG7 [3] phi from @8 to @end [phi:@8->@end] +bend_from_b8: jmp bend //SEG8 @end bend: @@ -3372,7 +3842,7 @@ keyboard_key_pressed: { b2: //SEG107 [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 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 - //SEG108 [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 + //SEG108 [57] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 ldy colidx and keyboard_matrix_col_bitmask,y jmp breturn @@ -3424,7 +3894,7 @@ keyboard_init: { keyboard_char_keycodes: .byte KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b5 +Removing instruction jmp b8 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp b14 @@ -3460,9 +3930,9 @@ Replacing label b11_from_b30 with b11 Replacing label b10_from_b11 with b10 Replacing label b13_from_b13 with b13 Removing instruction bbegin: -Removing instruction b5_from_bbegin: -Removing instruction main_from_b5: -Removing instruction bend_from_b5: +Removing instruction b8_from_bbegin: +Removing instruction main_from_b8: +Removing instruction bend_from_b8: Removing instruction b1_from_b1: Removing instruction b14_from_b1: Removing instruction b6_from_b20: @@ -3474,7 +3944,7 @@ Removing instruction b11_from_b30: Removing instruction b13_from_b11: Removing instruction b13_from_b13: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b5: +Removing instruction b8: Removing instruction bend: Removing instruction b1_from_main: Removing instruction b14: @@ -3512,7 +3982,7 @@ Removing instruction b2: Succesful ASM optimization Pass5RedundantLabelElimination FINAL SYMBOL TABLE -(label) @5 +(label) @8 (label) @begin (label) @end (byte*) CIA1_PORT_A @@ -3649,8 +4119,8 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::return#2 reg byte a 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -3803,12 +4273,12 @@ Score: 56827 .const KEY_SPACE = $3c .const KEY_Q = $3e //SEG2 @begin -//SEG3 [1] phi from @begin to @5 [phi:@begin->@5] -//SEG4 @5 +//SEG3 [1] phi from @begin to @8 [phi:@begin->@8] +//SEG4 @8 //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @5 to main [phi:@5->main] +//SEG6 [4] phi from @8 to main [phi:@8->main] jsr main -//SEG7 [3] phi from @5 to @end [phi:@5->@end] +//SEG7 [3] phi from @8 to @end [phi:@8->@end] //SEG8 @end //SEG9 main main: { @@ -4036,7 +4506,7 @@ keyboard_key_pressed: { //SEG106 keyboard_key_pressed::@2 //SEG107 [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 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 - //SEG108 [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 + //SEG108 [57] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 ldy colidx and keyboard_matrix_col_bitmask,y //SEG109 keyboard_key_pressed::@return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.sym index 644c0db82..554d9c1f5 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.sym @@ -1,4 +1,4 @@ -(label) @5 +(label) @8 (label) @begin (label) @end (byte*) CIA1_PORT_A @@ -135,8 +135,8 @@ (byte) keyboard_key_pressed::return#2 reg byte a 202.0 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 -(byte[]) keyboard_matrix_col_bitmask -(const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(byte[8]) keyboard_matrix_col_bitmask +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return