diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=_bnot__deref_pbuc1.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=_bnot__deref_pbuc1.asm new file mode 100644 index 000000000..5bc7eede7 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=_bnot__deref_pbuc1.asm @@ -0,0 +1,2 @@ +lda {c1} +eor #$ff \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java index 948128bc8..b985f8fbd 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInference.java @@ -15,6 +15,7 @@ import dk.camelot64.kickc.model.values.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; /** * Type inference of expressions (rValues & unary/binary operators) @@ -365,4 +366,53 @@ public class SymbolTypeInference { throw new RuntimeException("LValue statement not implemented " + statementLValue); } } + + /** + * Find the symbol type that is the intersection between the two passed types. + * Handles SymbolTypeMulti by intersecting the sub type lists. + * @param type1 The first type + * @param type2 The second type + * @return The intersection between the two types (handling multi-types) + */ + public static SymbolType intersectTypes(SymbolType type1, SymbolType type2) { + List newSubTypes = new ArrayList<>(); + if(type1 instanceof SymbolTypeMulti) { + Collection subTypes1 = ((SymbolTypeMulti) type1).getTypes(); + if(type2 instanceof SymbolTypeMulti) { + Collection subTypes2 = ((SymbolTypeMulti) type2).getTypes(); + for(SymbolType subType1 : subTypes1) { + if(subTypes2.contains(subType1)) { + newSubTypes.add(subType1); + } + } + } else { + // Element type is not multi - check if the list type contains it + if(subTypes1.contains(type2)) { + newSubTypes.add(type2); + } + } + } else { + // List-type not multi - check if the element type contains it + if(type2 instanceof SymbolTypeMulti) { + Collection subTypes2 = ((SymbolTypeMulti) type2).getTypes(); + if(subTypes2.contains(type1)) { + newSubTypes.add(type1); + } + } else { + // Element type is not multi - check if the list type is the same + if(type1.equals(type2)) { + newSubTypes.add(type1); + } + } + } + if(newSubTypes.size()==0) { + return null; + } else if(newSubTypes.size()==1) { + // A single type matching - use it + return newSubTypes.get(0); + } else { + // Multiple matches was found - use them + return new SymbolTypeMulti(newSubTypes); + } + } } diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java b/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java index cd6cda87c..22fe73aa4 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java @@ -130,28 +130,35 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization { ValueList valueList = (ValueList) assignment.getrValue2(); List values = valueList.getList(); boolean allConstant = true; - SymbolType elementType = null; + // Type of the elements of the list (deducted from the type of all elements) + SymbolType listType = null; List elements = new ArrayList<>(); - for(RValue value : values) { - if(value instanceof ConstantValue) { - ConstantValue constantValue = (ConstantValue) value; - SymbolType type = constantValue.getType(getScope()); - if(elementType == null) { - elementType = type; + for(RValue elmValue : values) { + if(elmValue instanceof ConstantValue) { + ConstantValue constantValue = (ConstantValue) elmValue; + SymbolType elmType = constantValue.getType(getScope()); + if(listType == null) { + listType = elmType; } else { - if(!SymbolTypeInference.typeMatch(type, elementType)) { - throw new RuntimeException("Array type mismatch " + elementType + " does not match " + type + " " + valueList.toString(getProgram())); + if(!SymbolTypeInference.typeMatch(listType, elmType)) { + SymbolType intersectType = SymbolTypeInference.intersectTypes(listType, elmType); + if(intersectType==null) { + // No overlap between list type and element type + throw new RuntimeException("Array type " + listType + " does not match element type" + elmType + ". Array: " + valueList.toString(getProgram())); + } else { + listType = intersectType; + } } } elements.add(constantValue); } else { allConstant = false; - elementType = null; + listType = null; break; } } - if(allConstant && elementType != null) { - ConstantValue constant = new ConstantArrayList(elements, elementType); + if(allConstant && listType != null) { + ConstantValue constant = new ConstantArrayList(elements, listType); constants.put(variable, constant); } } diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index 4b674c4f0..7c6d66ced 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -45,6 +45,11 @@ public class TestPrograms { AsmFragmentTemplateUsages.logUsages(log, false, false, false, false, false, false); } + @Test + public void testKeyboard() throws IOException, URISyntaxException { + compileAndCompare("test-keyboard"); + } + @Test public void testC64DtvColor() throws IOException, URISyntaxException { compileAndCompare("c64dtv-color"); diff --git a/src/test/java/dk/camelot64/kickc/test/kc/test-keyboard.kc b/src/test/java/dk/camelot64/kickc/test/kc/test-keyboard.kc new file mode 100644 index 000000000..77cc7ad5f --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/kc/test-keyboard.kc @@ -0,0 +1,119 @@ +import "c64.kc" + +// CIA#1 Port A: keyboard matrix columns and joystick #2 +const byte* CIA1_PORT_A = $dc00; +// CIA#1 Port B: keyboard matrix rows and joystick #1. +const byte* CIA1_PORT_B = $dc01; +// CIA #1 Port A data direction register. +const byte* CIA1_PORT_A_DDR = $dc02; +// CIA #1 Port B data direction register. +const byte* CIA1_PORT_B_DDR = $dc03; + +void main() { + // Clear screen + for(byte* sc = $400; sc<$400+1000;sc++) { + *sc = ' '; + } + // Init keyboard + keyboard_init(); + while(true) { + do {} while (*RASTER!=$ff); + byte* screen = $400; + // Read & print keyboard matrix + for(byte row : 0..7) { + byte row_pressed_bits = keyboard_matrix_read(row); + for(byte col : 0..7) { + if( (row_pressed_bits & $80) != 0) { + screen[col] = '1'; + } else { + screen[col] = '0'; + } + row_pressed_bits = row_pressed_bits << 1; + } + screen = screen + 40; + } + screen = screen + 40; + // Checks specific chars + byte[] chars = { '@', 'a', 'b', 'c', 'd', 'e' }; + for( byte i : 0..5 ) { + byte ch = chars[i]; + if(keyboard_char_pressed(ch)!=0) { + screen[i] = ch; + } else { + screen[i] = ' '; + } + } + } +} + +// Initialize keyboard reading by setting CIA#$ Data Direction Registers +void keyboard_init() { + // Keyboard Matrix Columns Write Mode + *CIA1_PORT_A_DDR = $ff; + // Keyboard Matrix Columns Read Mode + *CIA1_PORT_B_DDR = $00; +} + +// Determines whether a specific key representing a PETSCII char is currently pressed +// Returns zero if the key is not pressed and a non-zero value if the key is currently pressed +byte keyboard_char_pressed(byte ch) { + return keyboard_matrix_read(keyboard_matrix_row(ch)) & keyboard_matrix_col(ch); +} + +// Keyboard row bits as expected by CIA#1 Port A when reading a specific keyboard matrix row (rows are numbered 0-7) +byte[8] keyboard_row_bits = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; + +// Read a single row of the keyboard matrix +// The row ID (0-7) of the keyboard matrix row to read. See the C64 key matrix for row IDs. +// Returns the keys pressed on the row as bits according to the C64 key matrix. +byte keyboard_matrix_read(byte rowid) { + *CIA1_PORT_A = keyboard_row_bits[rowid]; + byte row_pressed_bits = ~*CIA1_PORT_B; + return row_pressed_bits; +} + +// 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 }; + +// The keyboard matrix position of each PETSCII char between $00 and $3f (lower case) +// Matrix positions are encoded as column ID (0-7) in the high nibble and row ID (0-7) in the low nibble %ccccrrrr +byte[] keyboard_matrix_chars = { +// CR Char + $65, // ($00) @ + $21, // ($01) a + $43, // ($02) b + $42, // ($03) c + $22, // ($04) d + $61 // ($05) e +}; + +// Get the row ID of the keyboard matrix row containing a specific PETSCII char +// Returns the row ID (0-7) of the keyboard matrix row containing the passed char +// The row ID is suitable for passing to keyboard_matrix_read(rowid) +byte keyboard_matrix_row(byte ch) { + return keyboard_matrix_chars[ch] & $f; +} + +// Get the column bit mask of the keyboard matrix column containing a specific PETSCII char. +// Returns the keyboard matrix column bit mask of the passed char. +// The returned bit is suitable for ANDing with the result of keyboard_matrix_read(rowid) to determine if the corresponding key is pressed. +byte keyboard_matrix_col(byte ch) { + byte col_id = keyboard_matrix_chars[ch] >>4; + return keyboard_matrix_col_bitmask[col_id]; +} + +// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard +// +----+----------------------+-------------------------------------------------------------------------------------------------------+ +// | | Write | Read $dc01 (PETSCII code in parenthesis): | +// |row:| $dc00: row bits +------------+------------+------------+------------+------------+------------+------------+------------+ +// | | | BIT 7 | BIT 6 | BIT 5 | BIT 4 | BIT 3 | BIT 2 | BIT 1 | BIT 0 | +// +----+----------------------+------------+------------+------------+------------+------------+------------+------------+------------+ +// |0. | #%11111110 (254/$fe) | DOWN ($ )| F5 ($ )| F3 ($ )| F1 ($ )| F7 ($ )| RIGHT ($ )| RETURN($ )|DELETE ($ )| +// |1. | #%11111101 (253/$fd) |LEFT-SH($ )| e ($05)| s ($13)| z ($1a)| 4 ($34)| a ($01)| w ($17)| 3 ($33)| +// |2. | #%11111011 (251/$fb) | x ($18)| t ($14)| f ($06)| c ($03)| 6 ($36)| d ($04)| r ($12)| 5 ($35)| +// |3. | #%11110111 (247/$f7) | v ($16)| u ($15)| h ($08)| b ($02)| 8 ($38)| g ($07)| y ($19)| 7 ($37)| +// |4. | #%11101111 (239/$ef) | n ($0e)| o ($0f)| k ($0b)| m ($0d)| 0 ($30)| j ($0a)| i ($09)| 9 ($39)| +// |5. | #%11011111 (223/$df) | , ($2c)| @ ($00)| : ($3a)| . ($2e)| - ($2d)| l ($0c)| p ($10)| + ($2b)| +// |6. | #%10111111 (191/$bf) | / ($2f)| ^ ($1e)| = ($3d)|RGHT-SH($ )| HOME ($ )| ; ($3b)| * ($2a)| £ ($1c)| +// |7. | #%01111111 (127/$7f) | STOP ($ )| q ($11)|COMMODR($ )| SPACE ($20)| 2 ($32)|CONTROL($ )| <- ($1f)| 1 ($31)| +// +----+----------------------+------------+------------+------------+------------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/src/test/java/dk/camelot64/kickc/test/ref/fragments-assignment-unary.log b/src/test/java/dk/camelot64/kickc/test/ref/fragments-assignment-unary.log index e7e4e5ba3..2b4506394 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/fragments-assignment-unary.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/fragments-assignment-unary.log @@ -1,4 +1,4 @@ -CANNOT SYNTHESIZE vbuaa=_not_vbuaa +CANNOT SYNTHESIZE vbuaa=_bnot_vbuaa vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:4.0 sec sbc #1 @@ -7,7 +7,7 @@ vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:4.0 adc #1 CANNOT SYNTHESIZE vbuaa=_neg_vbuaa CANNOT SYNTHESIZE vbuaa=_pos_vbuaa -CANNOT SYNTHESIZE vbuaa=_not_vbuxx +CANNOT SYNTHESIZE vbuaa=_bnot_vbuxx vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:6.0 txa sec @@ -18,7 +18,7 @@ vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:6. adc #1 CANNOT SYNTHESIZE vbuaa=_neg_vbuxx CANNOT SYNTHESIZE vbuaa=_pos_vbuxx -CANNOT SYNTHESIZE vbuaa=_not_vbuyy +CANNOT SYNTHESIZE vbuaa=_bnot_vbuyy vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:6.0 tya sec @@ -29,7 +29,7 @@ vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:6. adc #1 CANNOT SYNTHESIZE vbuaa=_neg_vbuyy CANNOT SYNTHESIZE vbuaa=_pos_vbuyy -CANNOT SYNTHESIZE vbuaa=_not_vbuz1 +CANNOT SYNTHESIZE vbuaa=_bnot_vbuz1 vbuaa=_dec_vbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:7.0 lda {z1} sec @@ -40,7 +40,7 @@ vbuaa=_inc_vbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:7. adc #1 CANNOT SYNTHESIZE vbuaa=_neg_vbuz1 CANNOT SYNTHESIZE vbuaa=_pos_vbuz1 -CANNOT SYNTHESIZE vbuaa=_not__deref_pbuz1 +CANNOT SYNTHESIZE vbuaa=_bnot__deref_pbuz1 vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:11.5 ldy #0 lda ({z1}),y @@ -53,7 +53,7 @@ vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y c adc #1 CANNOT SYNTHESIZE vbuaa=_neg__deref_pbuz1 CANNOT SYNTHESIZE vbuaa=_pos__deref_pbuz1 -CANNOT SYNTHESIZE vbuaa=_not__deref_pbuc1 +CANNOT SYNTHESIZE vbuaa=_bnot__deref_pbuc1 vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:8.0 lda {c1} sec @@ -64,37 +64,37 @@ vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cy adc #1 CANNOT SYNTHESIZE vbuaa=_neg__deref_pbuc1 CANNOT SYNTHESIZE vbuaa=_pos__deref_pbuc1 -CANNOT SYNTHESIZE vbuaa=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuaa=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuaa=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuaa=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuaa=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuaa=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuaa=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuaa=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuaa=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuaa=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuaa=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuaa=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuaa=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuaa=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuaa=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuaa=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuaa=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuaa=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuaa=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuaa=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuaa=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuaa=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuaa=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuaa=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuaa=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE vbuaa=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuaa=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuaa=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuaa=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuaa=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE vbuaa=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuaa=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuaa=_bnot_pbuc1_derefidx_vbuaa vbuaa=_dec_pbuc1_derefidx_vbuaa < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:10.5 tax lda {c1},x @@ -117,7 +117,7 @@ vbuaa=_inc_pbuc1_derefidx_vbuaa < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_v adc #1 CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuaa=_bnot_pbuc1_derefidx_vbuxx vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:8.5 lda {c1},x sec @@ -128,7 +128,7 @@ vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobbe adc #1 CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuaa=_bnot_pbuc1_derefidx_vbuyy vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:8.5 lda {c1},y sec @@ -139,7 +139,7 @@ vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobbe adc #1 CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuaa=_bnot_pbuc1_derefidx_vbuz1 vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:11.5 ldx {z1} lda {c1},x @@ -162,17 +162,17 @@ vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_v adc #1 CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuaa=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE vbuaa=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuaa=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuaa=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE vbuaa=_not_vbuc1 +CANNOT SYNTHESIZE vbuaa=_bnot_vbuc1 vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:6.0 lda #{c1} sec @@ -183,7 +183,7 @@ vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < vbuaa=1_plus_vbuaa adc #1 CANNOT SYNTHESIZE vbuaa=_neg_vbuc1 CANNOT SYNTHESIZE vbuaa=_pos_vbuc1 -CANNOT SYNTHESIZE vbuxx=_not_vbuaa +CANNOT SYNTHESIZE vbuxx=_bnot_vbuaa vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:X cycles:4.0 tax dex @@ -192,14 +192,14 @@ vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:X cycles:4.0 inx CANNOT SYNTHESIZE vbuxx=_neg_vbuaa CANNOT SYNTHESIZE vbuxx=_pos_vbuaa -CANNOT SYNTHESIZE vbuxx=_not_vbuxx +CANNOT SYNTHESIZE vbuxx=_bnot_vbuxx *vbuxx=_dec_vbuxx - clobber:X cycles:2.0 dex *vbuxx=_inc_vbuxx - clobber:X cycles:2.0 inx CANNOT SYNTHESIZE vbuxx=_neg_vbuxx CANNOT SYNTHESIZE vbuxx=_pos_vbuxx -CANNOT SYNTHESIZE vbuxx=_not_vbuyy +CANNOT SYNTHESIZE vbuxx=_bnot_vbuyy vbuxx=_dec_vbuyy < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:6.0 tya tax @@ -210,7 +210,7 @@ vbuxx=_inc_vbuyy < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:6. inx CANNOT SYNTHESIZE vbuxx=_neg_vbuyy CANNOT SYNTHESIZE vbuxx=_pos_vbuyy -CANNOT SYNTHESIZE vbuxx=_not_vbuz1 +CANNOT SYNTHESIZE vbuxx=_bnot_vbuz1 vbuxx=_dec_vbuz1 < vbuxx=_dec_vbuxx - clobber:X cycles:5.0 ldx {z1} dex @@ -219,7 +219,7 @@ vbuxx=_inc_vbuz1 < vbuxx=_inc_vbuxx - clobber:X cycles:5.0 inx CANNOT SYNTHESIZE vbuxx=_neg_vbuz1 CANNOT SYNTHESIZE vbuxx=_pos_vbuz1 -CANNOT SYNTHESIZE vbuxx=_not__deref_pbuz1 +CANNOT SYNTHESIZE vbuxx=_bnot__deref_pbuz1 vbuxx=_dec__deref_pbuz1 < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X Y cycles:11.5 ldy #0 lda ({z1}),y @@ -232,7 +232,7 @@ vbuxx=_inc__deref_pbuz1 < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X Y c inx CANNOT SYNTHESIZE vbuxx=_neg__deref_pbuz1 CANNOT SYNTHESIZE vbuxx=_pos__deref_pbuz1 -CANNOT SYNTHESIZE vbuxx=_not__deref_pbuc1 +CANNOT SYNTHESIZE vbuxx=_bnot__deref_pbuc1 vbuxx=_dec__deref_pbuc1 < vbuxx=_dec_vbuxx - clobber:X cycles:6.0 ldx {c1} dex @@ -241,37 +241,37 @@ vbuxx=_inc__deref_pbuc1 < vbuxx=_inc_vbuxx - clobber:X cycles:6.0 inx CANNOT SYNTHESIZE vbuxx=_neg__deref_pbuc1 CANNOT SYNTHESIZE vbuxx=_pos__deref_pbuc1 -CANNOT SYNTHESIZE vbuxx=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuxx=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuxx=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuxx=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuxx=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuxx=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuxx=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuxx=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuxx=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuxx=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuxx=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuxx=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuxx=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuxx=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuxx=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuxx=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuxx=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuxx=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuxx=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuxx=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuxx=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuxx=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuxx=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuxx=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuxx=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE vbuxx=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuxx=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuxx=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuxx=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuxx=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE vbuxx=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuxx=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuxx=_bnot_pbuc1_derefidx_vbuaa vbuxx=_dec_pbuc1_derefidx_vbuaa < vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:10.5 tax lda {c1},x @@ -284,7 +284,7 @@ vbuxx=_inc_pbuc1_derefidx_vbuaa < vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuxx=_inc_v inx CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuxx=_bnot_pbuc1_derefidx_vbuxx vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:8.5 lda {c1},x tax @@ -295,7 +295,7 @@ vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber: inx CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuxx=_bnot_pbuc1_derefidx_vbuyy vbuxx=_dec_pbuc1_derefidx_vbuyy < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:8.5 lda {c1},y tax @@ -306,7 +306,7 @@ vbuxx=_inc_pbuc1_derefidx_vbuyy < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber: inx CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuxx=_bnot_pbuc1_derefidx_vbuz1 vbuxx=_dec_pbuc1_derefidx_vbuz1 < vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:11.5 ldx {z1} lda {c1},x @@ -319,17 +319,17 @@ vbuxx=_inc_pbuc1_derefidx_vbuz1 < vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuxx=_inc_v inx CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuxx=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE vbuxx=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuxx=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuxx=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE vbuxx=_not_vbuc1 +CANNOT SYNTHESIZE vbuxx=_bnot_vbuc1 vbuxx=_dec_vbuc1 < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:6.0 lda #{c1} tax @@ -340,7 +340,7 @@ vbuxx=_inc_vbuc1 < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:6. inx CANNOT SYNTHESIZE vbuxx=_neg_vbuc1 CANNOT SYNTHESIZE vbuxx=_pos_vbuc1 -CANNOT SYNTHESIZE vbuyy=_not_vbuaa +CANNOT SYNTHESIZE vbuyy=_bnot_vbuaa vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:Y cycles:4.0 tay dey @@ -349,7 +349,7 @@ vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:Y cycles:4.0 iny CANNOT SYNTHESIZE vbuyy=_neg_vbuaa CANNOT SYNTHESIZE vbuyy=_pos_vbuaa -CANNOT SYNTHESIZE vbuyy=_not_vbuxx +CANNOT SYNTHESIZE vbuyy=_bnot_vbuxx vbuyy=_dec_vbuxx < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:6.0 txa tay @@ -360,14 +360,14 @@ vbuyy=_inc_vbuxx < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:6.0 iny CANNOT SYNTHESIZE vbuyy=_neg_vbuxx CANNOT SYNTHESIZE vbuyy=_pos_vbuxx -CANNOT SYNTHESIZE vbuyy=_not_vbuyy +CANNOT SYNTHESIZE vbuyy=_bnot_vbuyy *vbuyy=_dec_vbuyy - clobber:Y cycles:2.0 dey *vbuyy=_inc_vbuyy - clobber:Y cycles:2.0 iny CANNOT SYNTHESIZE vbuyy=_neg_vbuyy CANNOT SYNTHESIZE vbuyy=_pos_vbuyy -CANNOT SYNTHESIZE vbuyy=_not_vbuz1 +CANNOT SYNTHESIZE vbuyy=_bnot_vbuz1 vbuyy=_dec_vbuz1 < vbuyy=_dec_vbuyy - clobber:Y cycles:5.0 ldy {z1} dey @@ -376,7 +376,7 @@ vbuyy=_inc_vbuz1 < vbuyy=_inc_vbuyy - clobber:Y cycles:5.0 iny CANNOT SYNTHESIZE vbuyy=_neg_vbuz1 CANNOT SYNTHESIZE vbuyy=_pos_vbuz1 -CANNOT SYNTHESIZE vbuyy=_not__deref_pbuz1 +CANNOT SYNTHESIZE vbuyy=_bnot__deref_pbuz1 vbuyy=_dec__deref_pbuz1 < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:11.5 ldy #0 lda ({z1}),y @@ -389,7 +389,7 @@ vbuyy=_inc__deref_pbuz1 < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cyc iny CANNOT SYNTHESIZE vbuyy=_neg__deref_pbuz1 CANNOT SYNTHESIZE vbuyy=_pos__deref_pbuz1 -CANNOT SYNTHESIZE vbuyy=_not__deref_pbuc1 +CANNOT SYNTHESIZE vbuyy=_bnot__deref_pbuc1 vbuyy=_dec__deref_pbuc1 < vbuyy=_dec_vbuyy - clobber:Y cycles:6.0 ldy {c1} dey @@ -398,37 +398,37 @@ vbuyy=_inc__deref_pbuc1 < vbuyy=_inc_vbuyy - clobber:Y cycles:6.0 iny CANNOT SYNTHESIZE vbuyy=_neg__deref_pbuc1 CANNOT SYNTHESIZE vbuyy=_pos__deref_pbuc1 -CANNOT SYNTHESIZE vbuyy=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuyy=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuyy=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuyy=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuyy=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuyy=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuyy=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuyy=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuyy=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuyy=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuyy=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuyy=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuyy=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuyy=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuyy=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuyy=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuyy=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuyy=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuyy=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuyy=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuyy=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuyy=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuyy=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuyy=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuyy=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE vbuyy=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuyy=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuyy=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuyy=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuyy=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE vbuyy=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuyy=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuyy=_bnot_pbuc1_derefidx_vbuaa vbuyy=_dec_pbuc1_derefidx_vbuaa < vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:10.5 tay lda {c1},y @@ -441,7 +441,7 @@ vbuyy=_inc_pbuc1_derefidx_vbuaa < vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuyy=_inc_v iny CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuyy=_bnot_pbuc1_derefidx_vbuxx vbuyy=_dec_pbuc1_derefidx_vbuxx < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:8.5 lda {c1},x tay @@ -452,7 +452,7 @@ vbuyy=_inc_pbuc1_derefidx_vbuxx < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber: iny CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuyy=_bnot_pbuc1_derefidx_vbuyy vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:8.5 lda {c1},y tay @@ -463,7 +463,7 @@ vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber: iny CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuyy=_bnot_pbuc1_derefidx_vbuz1 vbuyy=_dec_pbuc1_derefidx_vbuz1 < vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:11.5 ldy {z1} lda {c1},y @@ -476,17 +476,17 @@ vbuyy=_inc_pbuc1_derefidx_vbuz1 < vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuyy=_inc_v iny CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuyy=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE vbuyy=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuyy=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuyy=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE vbuyy=_not_vbuc1 +CANNOT SYNTHESIZE vbuyy=_bnot_vbuc1 vbuyy=_dec_vbuc1 < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:6.0 lda #{c1} tay @@ -497,7 +497,7 @@ vbuyy=_inc_vbuc1 < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:6.0 iny CANNOT SYNTHESIZE vbuyy=_neg_vbuc1 CANNOT SYNTHESIZE vbuyy=_pos_vbuc1 -CANNOT SYNTHESIZE vbuz1=_not_vbuaa +CANNOT SYNTHESIZE vbuz1=_bnot_vbuaa vbuz1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:7.0 sec sbc #1 @@ -524,7 +524,7 @@ vbuz1=_inc_vbuaa < vbuz1=_inc_vbuyy < vbuyy=_inc_vbuyy - clobber:Y cycles:7.0 sty {z1} CANNOT SYNTHESIZE vbuz1=_neg_vbuaa CANNOT SYNTHESIZE vbuz1=_pos_vbuaa -CANNOT SYNTHESIZE vbuz1=_not_vbuxx +CANNOT SYNTHESIZE vbuz1=_bnot_vbuxx vbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0 txa sec @@ -541,7 +541,7 @@ vbuz1=_inc_vbuxx < vbuxx=_inc_vbuxx - clobber:X cycles:5.0 stx {z1} CANNOT SYNTHESIZE vbuz1=_neg_vbuxx CANNOT SYNTHESIZE vbuz1=_pos_vbuxx -CANNOT SYNTHESIZE vbuz1=_not_vbuyy +CANNOT SYNTHESIZE vbuz1=_bnot_vbuyy vbuz1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0 tya sec @@ -558,14 +558,14 @@ vbuz1=_inc_vbuyy < vbuyy=_inc_vbuyy - clobber:Y cycles:5.0 sty {z1} CANNOT SYNTHESIZE vbuz1=_neg_vbuyy CANNOT SYNTHESIZE vbuz1=_pos_vbuyy -CANNOT SYNTHESIZE vbuz1=_not_vbuz1 +CANNOT SYNTHESIZE vbuz1=_bnot_vbuz1 *vbuz1=_dec_vbuz1 - clobber: cycles:5.0 dec {z1} *vbuz1=_inc_vbuz1 - clobber: cycles:5.0 inc {z1} CANNOT SYNTHESIZE vbuz1=_neg_vbuz1 CANNOT SYNTHESIZE vbuz1=_pos_vbuz1 -CANNOT SYNTHESIZE vbuz1=_not_vbuz2 +CANNOT SYNTHESIZE vbuz1=_bnot_vbuz2 vbuz1=_dec_vbuz2 < vbuaa=_dec_vbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0 lda {z2} sec @@ -594,7 +594,7 @@ vbuz1=_inc_vbuz2 < vbuyy=_inc_vbuz1 < vbuyy=_inc_vbuyy - clobber:Y cycles:8.0 sty {z1} CANNOT SYNTHESIZE vbuz1=_neg_vbuz2 CANNOT SYNTHESIZE vbuz1=_pos_vbuz2 -CANNOT SYNTHESIZE vbuz1=_not__deref_pbuz1 +CANNOT SYNTHESIZE vbuz1=_bnot__deref_pbuz1 vbuz1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5 ldy #0 lda ({z1}),y @@ -609,7 +609,7 @@ vbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbu sta {z1} CANNOT SYNTHESIZE vbuz1=_neg__deref_pbuz1 CANNOT SYNTHESIZE vbuz1=_pos__deref_pbuz1 -CANNOT SYNTHESIZE vbuz1=_not__deref_pbuz2 +CANNOT SYNTHESIZE vbuz1=_bnot__deref_pbuz2 vbuz1=_dec__deref_pbuz2 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5 ldy #0 lda ({z2}),y @@ -624,7 +624,7 @@ vbuz1=_inc__deref_pbuz2 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbu sta {z1} CANNOT SYNTHESIZE vbuz1=_neg__deref_pbuz2 CANNOT SYNTHESIZE vbuz1=_pos__deref_pbuz2 -CANNOT SYNTHESIZE vbuz1=_not__deref_pbuc1 +CANNOT SYNTHESIZE vbuz1=_bnot__deref_pbuc1 vbuz1=_dec__deref_pbuc1 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 lda {c1} sec @@ -653,72 +653,72 @@ vbuz1=_inc__deref_pbuc1 < vbuyy=_inc__deref_pbuc1 < vbuyy=_inc_vbuyy - clobber:Y sty {z1} CANNOT SYNTHESIZE vbuz1=_neg__deref_pbuc1 CANNOT SYNTHESIZE vbuz1=_pos__deref_pbuc1 -CANNOT SYNTHESIZE vbuz1=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuz1=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuz1=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuz1=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuz1=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE vbuz1=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuz1=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE vbuz1=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE vbuz1=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE vbuz1=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuz1=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE vbuz1=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE vbuz1=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE vbuz1=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE vbuz1=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE vbuz1=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE vbuz1=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE vbuz1=_bnot_pbuc1_derefidx_vbuaa vbuz1=_dec_pbuc1_derefidx_vbuaa < vbuz1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:13.5 tax lda {c1},x @@ -745,7 +745,7 @@ vbuz1=_inc_pbuc1_derefidx_vbuaa < vbuz1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_p sta {z1} CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE vbuz1=_bnot_pbuc1_derefidx_vbuxx vbuz1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.5 lda {c1},x sec @@ -758,7 +758,7 @@ vbuz1=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_v sta {z1} CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE vbuz1=_bnot_pbuc1_derefidx_vbuyy vbuz1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.5 lda {c1},y sec @@ -771,7 +771,7 @@ vbuz1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_v sta {z1} CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuc1_derefidx_vbuz1 vbuz1=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.5 ldx {z1} lda {c1},x @@ -798,7 +798,7 @@ vbuz1=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_p sta {z1} CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuc1_derefidx_vbuz2 vbuz1=_dec_pbuc1_derefidx_vbuz2 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.5 ldx {z2} lda {c1},x @@ -825,17 +825,17 @@ vbuz1=_inc_pbuc1_derefidx_vbuz2 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_p sta {z1} CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE vbuz1=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuz1=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuz1=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE vbuz1=_not_vbuc1 +CANNOT SYNTHESIZE vbuz1=_bnot_vbuc1 vbuz1=_dec_vbuc1 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0 lda #{c1} sec @@ -848,7 +848,7 @@ vbuz1=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < sta {z1} CANNOT SYNTHESIZE vbuz1=_neg_vbuc1 CANNOT SYNTHESIZE vbuz1=_pos_vbuc1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuaa +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_vbuaa _deref_pbuz1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:12.0 sec sbc #1 @@ -861,7 +861,7 @@ _deref_pbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y c sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuaa -CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuxx +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_vbuxx _deref_pbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0 txa sec @@ -876,7 +876,7 @@ _deref_pbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuxx -CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuyy +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_vbuyy _deref_pbuz1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0 tya sec @@ -891,7 +891,7 @@ _deref_pbuz1=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuyy -CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuz1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_vbuz1 _deref_pbuz1=_dec_vbuz1 < _deref_pbuz1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0 lda {z1} sec @@ -906,7 +906,7 @@ _deref_pbuz1=_inc_vbuz1 < _deref_pbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbu sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuz1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuz2 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_vbuz2 _deref_pbuz1=_dec_vbuz2 < _deref_pbuz1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0 lda {z2} sec @@ -921,7 +921,7 @@ _deref_pbuz1=_inc_vbuz2 < _deref_pbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbu sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuz2 -CANNOT SYNTHESIZE _deref_pbuz1=_not__deref_pbuz1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot__deref_pbuz1 _deref_pbuz1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5 ldy #0 lda ({z1}),y @@ -938,7 +938,7 @@ _deref_pbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vb sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg__deref_pbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_pos__deref_pbuz1 -CANNOT SYNTHESIZE _deref_pbuz1=_not__deref_pbuz2 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot__deref_pbuz2 _deref_pbuz1=_dec__deref_pbuz2 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5 ldy #0 lda ({z2}),y @@ -955,7 +955,7 @@ _deref_pbuz1=_inc__deref_pbuz2 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vb sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg__deref_pbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_pos__deref_pbuz2 -CANNOT SYNTHESIZE _deref_pbuz1=_not__deref_pbuc1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot__deref_pbuc1 _deref_pbuz1=_dec__deref_pbuc1 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.0 lda {c1} sec @@ -970,72 +970,72 @@ _deref_pbuz1=_inc__deref_pbuc1 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vbuaa < vb sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg__deref_pbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_pos__deref_pbuc1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuc1_derefidx_vbuaa _deref_pbuz1=_dec_pbuc1_derefidx_vbuaa < _deref_pbuz1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:18.5 tay lda {c1},y @@ -1052,7 +1052,7 @@ _deref_pbuz1=_inc_pbuc1_derefidx_vbuaa < _deref_pbuz1=_inc_pbuc1_derefidx_vbuyy sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuc1_derefidx_vbuxx _deref_pbuz1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5 lda {c1},x sec @@ -1067,7 +1067,7 @@ _deref_pbuz1=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuc1_derefidx_vbuyy _deref_pbuz1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5 lda {c1},y sec @@ -1082,7 +1082,7 @@ _deref_pbuz1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuc1_derefidx_vbuz1 _deref_pbuz1=_dec_pbuc1_derefidx_vbuz1 < _deref_pbuz1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5 ldy {z1} lda {c1},y @@ -1099,7 +1099,7 @@ _deref_pbuz1=_inc_pbuc1_derefidx_vbuz1 < _deref_pbuz1=_inc_pbuc1_derefidx_vbuyy sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuc1_derefidx_vbuz2 _deref_pbuz1=_dec_pbuc1_derefidx_vbuz2 < _deref_pbuz1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5 ldy {z2} lda {c1},y @@ -1116,17 +1116,17 @@ _deref_pbuz1=_inc_pbuc1_derefidx_vbuz2 < _deref_pbuz1=_inc_pbuc1_derefidx_vbuyy sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE _deref_pbuz1=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuz1=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuz1=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuz1=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuz1=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuc1 +CANNOT SYNTHESIZE _deref_pbuz1=_bnot_vbuc1 _deref_pbuz1=_dec_vbuc1 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0 lda #{c1} sec @@ -1141,7 +1141,7 @@ _deref_pbuz1=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_v sta ({z1}),y CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuc1 CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuc1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuaa +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_vbuaa _deref_pbuc1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:8.0 sec sbc #1 @@ -1152,7 +1152,7 @@ _deref_pbuc1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cy sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuaa CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuaa -CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuxx +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_vbuxx _deref_pbuc1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0 txa sec @@ -1165,7 +1165,7 @@ _deref_pbuc1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuxx CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuxx -CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuyy +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_vbuyy _deref_pbuc1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0 tya sec @@ -1178,7 +1178,7 @@ _deref_pbuc1=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuyy CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuyy -CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuz1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_vbuz1 _deref_pbuc1=_dec_vbuz1 < _deref_pbuc1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 lda {z1} sec @@ -1191,7 +1191,7 @@ _deref_pbuc1=_inc_vbuz1 < _deref_pbuc1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbu sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuz1 -CANNOT SYNTHESIZE _deref_pbuc1=_not__deref_pbuz1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot__deref_pbuz1 _deref_pbuc1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5 ldy #0 lda ({z1}),y @@ -1206,14 +1206,14 @@ _deref_pbuc1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vb sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg__deref_pbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_pos__deref_pbuz1 -CANNOT SYNTHESIZE _deref_pbuc1=_not__deref_pbuc1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot__deref_pbuc1 *_deref_pbuc1=_dec__deref_pbuc1 - clobber: cycles:6.0 dec {c1} *_deref_pbuc1=_inc__deref_pbuc1 - clobber: cycles:6.0 inc {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg__deref_pbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_pos__deref_pbuc1 -CANNOT SYNTHESIZE _deref_pbuc1=_not__deref_pbuc2 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot__deref_pbuc2 _deref_pbuc1=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:12.0 lda {c2} sec @@ -1226,42 +1226,42 @@ _deref_pbuc1=_inc__deref_pbuc2 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vbuaa < vb sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg__deref_pbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_pos__deref_pbuc2 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc1_derefidx_vbuaa _deref_pbuc1=_dec_pbuc1_derefidx_vbuaa < _deref_pbuc1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.5 tax lda {c1},x @@ -1288,7 +1288,7 @@ _deref_pbuc1=_inc_pbuc1_derefidx_vbuaa < _deref_pbuc1=_inc_pbuc1_derefidx_vbuyy sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc1_derefidx_vbuxx _deref_pbuc1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:12.5 lda {c1},x sec @@ -1301,7 +1301,7 @@ _deref_pbuc1=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc1_derefidx_vbuyy _deref_pbuc1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:12.5 lda {c1},y sec @@ -1314,7 +1314,7 @@ _deref_pbuc1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc1_derefidx_vbuz1 _deref_pbuc1=_dec_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5 ldx {z1} lda {c1},x @@ -1341,17 +1341,17 @@ _deref_pbuc1=_inc_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc1_derefidx_vbuyy sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc2_derefidx_vbuaa _deref_pbuc1=_dec_pbuc2_derefidx_vbuaa < _deref_pbuc1=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.5 tax lda {c2},x @@ -1378,7 +1378,7 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuaa < _deref_pbuc1=_inc_pbuc2_derefidx_vbuyy sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc2_derefidx_vbuxx _deref_pbuc1=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:12.5 lda {c2},x sec @@ -1391,7 +1391,7 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc2_derefidx_vbuyy _deref_pbuc1=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:12.5 lda {c2},y sec @@ -1404,7 +1404,7 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc2_derefidx_vbuz1 _deref_pbuc1=_dec_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5 ldx {z1} lda {c2},x @@ -1431,7 +1431,7 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc2_derefidx_vbuyy sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc2_derefidx_vbuc1 _deref_pbuc1=_dec_pbuc2_derefidx_vbuc1 < vbuaa=_dec_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_minus_1 < vbuaa=pbuc1_derefidx_vbuaa_minus_1 < vbuaa=pbuc1_derefidx_vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5 lda #{c1} tax @@ -1462,17 +1462,17 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuc1 < vbuaa=_inc_pbuc2_derefidx_vbuc1 < vbuaa sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE _deref_pbuc1=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE _deref_pbuc1=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuc1 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_vbuc1 _deref_pbuc1=_dec_vbuc1 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0 lda #{c1} sec @@ -1485,7 +1485,7 @@ _deref_pbuc1=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_v sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuc1 CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuc1 -CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuc2 +CANNOT SYNTHESIZE _deref_pbuc1=_bnot_vbuc2 _deref_pbuc1=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0 lda #{c2} sec @@ -1498,587 +1498,587 @@ _deref_pbuc1=_inc_vbuc2 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_v sta {c1} CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuc2 CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not__deref_pbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos__deref_pbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_not_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_bnot_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_dec_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_inc_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_neg_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_pos_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not__deref_pbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos__deref_pbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_not_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_bnot_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_dec_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_inc_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_neg_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_pos_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not__deref_pbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos__deref_pbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_not_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_bnot_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_dec_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_inc_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_neg_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_pos_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not__deref_pbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos__deref_pbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_not_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_bnot_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_dec_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_inc_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_neg_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_pos_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_vbuaa pbuz1_derefidx_vbuz2=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:13.0 sec sbc #1 @@ -2091,7 +2091,7 @@ pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobbe sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_vbuxx pbuz1_derefidx_vbuz2=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0 txa sec @@ -2106,7 +2106,7 @@ pbuz1_derefidx_vbuz2=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vb sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_vbuyy pbuz1_derefidx_vbuz2=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0 tya sec @@ -2121,7 +2121,7 @@ pbuz1_derefidx_vbuz2=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vb sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_vbuz1 pbuz1_derefidx_vbuz2=_dec_vbuz1 < pbuz1_derefidx_vbuz2=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.0 lda {z1} sec @@ -2136,7 +2136,7 @@ pbuz1_derefidx_vbuz2=_inc_vbuz1 < pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa=_inc_v sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_vbuz2 pbuz1_derefidx_vbuz2=_dec_vbuz2 < pbuz1_derefidx_vbuz2=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.0 lda {z2} sec @@ -2151,7 +2151,7 @@ pbuz1_derefidx_vbuz2=_inc_vbuz2 < pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa=_inc_v sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_vbuz3 pbuz1_derefidx_vbuz2=_dec_vbuz3 < pbuz1_derefidx_vbuz2=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.0 lda {z3} sec @@ -2166,7 +2166,7 @@ pbuz1_derefidx_vbuz2=_inc_vbuz3 < pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa=_inc_v sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot__deref_pbuz1 pbuz1_derefidx_vbuz2=_dec__deref_pbuz1 < pbuz1_derefidx_vbuz2=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5 ldy #0 lda ({z1}),y @@ -2183,12 +2183,12 @@ pbuz1_derefidx_vbuz2=_inc__deref_pbuz1 < pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not__deref_pbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos__deref_pbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not__deref_pbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot__deref_pbuz3 pbuz1_derefidx_vbuz2=_dec__deref_pbuz3 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5 ldy #0 lda ({z3}),y @@ -2205,7 +2205,7 @@ pbuz1_derefidx_vbuz2=_inc__deref_pbuz3 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vb sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg__deref_pbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos__deref_pbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot__deref_pbuc1 pbuz1_derefidx_vbuz2=_dec__deref_pbuc1 < pbuz1_derefidx_vbuz2=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:17.0 lda {c1} sec @@ -2220,117 +2220,117 @@ pbuz1_derefidx_vbuz2=_inc__deref_pbuc1 < pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz1_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz1_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz1_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz1_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz1_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuz4 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuz4 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuz4 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuz4 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuz4 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuz4 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuz3_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuz3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuz3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuz3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuz3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuz3_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuaa pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuaa < pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5 tay lda {c1},y @@ -2347,7 +2347,7 @@ pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuaa < pbuz1_derefidx_vbuz2=_inc_pbuc1 sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuxx pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:17.5 lda {c1},x sec @@ -2362,7 +2362,7 @@ pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuyy pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:17.5 lda {c1},y sec @@ -2377,7 +2377,7 @@ pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuz1 pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5 ldy {z1} lda {c1},y @@ -2394,7 +2394,7 @@ pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuz2=_inc_pbuc1 sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuz2 pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5 ldy {z2} lda {c1},y @@ -2411,7 +2411,7 @@ pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuz2=_inc_pbuc1 sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuz3 pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuz3 < pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5 ldy {z3} lda {c1},y @@ -2428,17 +2428,17 @@ pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuz3 < pbuz1_derefidx_vbuz2=_inc_pbuc1 sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_bnot_vbuc1 pbuz1_derefidx_vbuz2=_dec_vbuc1 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0 lda #{c1} sec @@ -2453,212 +2453,212 @@ pbuz1_derefidx_vbuz2=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa= sta ({z1}),y CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not__deref_pbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg__deref_pbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos__deref_pbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not__deref_pbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot__deref_pbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec__deref_pbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc__deref_pbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg__deref_pbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos__deref_pbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuz2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuz2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_vbuc1 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_vbuc1 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_vbuc1 -CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_not_vbuc2 +CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_bnot_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_dec_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_inc_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_neg_vbuc2 CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_pos_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_vbuaa pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:13.0 tax txa @@ -2685,7 +2685,7 @@ pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_v sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_vbuxx pbuc1_derefidx_vbuaa=_dec_vbuxx < pbuc1_derefidx_vbuyy=_dec_vbuxx < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:13.0 tay txa @@ -2700,7 +2700,7 @@ pbuc1_derefidx_vbuaa=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefi sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_vbuyy pbuc1_derefidx_vbuaa=_dec_vbuyy < pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:13.0 tax tya @@ -2715,7 +2715,7 @@ pbuc1_derefidx_vbuaa=_inc_vbuyy < pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_v sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_vbuz1 pbuc1_derefidx_vbuaa=_dec_vbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0 tax lda {z1} @@ -2742,7 +2742,7 @@ pbuc1_derefidx_vbuaa=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuz1 < pbuc1_derefi sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot__deref_pbuz1 pbuc1_derefidx_vbuaa=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:18.5 tax ldy #0 @@ -2759,7 +2759,7 @@ pbuc1_derefidx_vbuaa=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot__deref_pbuc1 pbuc1_derefidx_vbuaa=_dec__deref_pbuc1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuc1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.0 tax lda {c1} @@ -2786,7 +2786,7 @@ pbuc1_derefidx_vbuaa=_inc__deref_pbuc1 < pbuc1_derefidx_vbuyy=_inc__deref_pbuc1 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not__deref_pbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot__deref_pbuc2 pbuc1_derefidx_vbuaa=_dec__deref_pbuc2 < pbuc1_derefidx_vbuxx=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.0 tax lda {c2} @@ -2813,72 +2813,80 @@ pbuc1_derefidx_vbuaa=_inc__deref_pbuc2 < pbuc1_derefidx_vbuyy=_inc__deref_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos__deref_pbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa +pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa < pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy - clobber:A Y cycles:15.5 + tay + lda {c1},y + clc + adc #1 + sta {c1},y +pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa < pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx - clobber:X cycles:9.0 + tax + inc {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc2_derefidx_vbuaa pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5 tax lda {c2},x @@ -2905,7 +2913,7 @@ pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuyy=_inc_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc2_derefidx_vbuxx pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5 tay lda {c2},x @@ -2920,7 +2928,7 @@ pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_inc_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc2_derefidx_vbuyy pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5 tax lda {c2},y @@ -2935,7 +2943,7 @@ pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=_inc_pbuc2 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc2_derefidx_vbuz1 pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:18.5 ldx {z1} tay @@ -2952,27 +2960,27 @@ pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_dec_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_inc_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_bnot_vbuc2 pbuc1_derefidx_vbuaa=_dec_vbuc2 < pbuc1_derefidx_vbuxx=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:13.0 tax lda #{c2} @@ -2999,7 +3007,7 @@ pbuc1_derefidx_vbuaa=_inc_vbuc2 < pbuc1_derefidx_vbuyy=_inc_vbuc2 < vbuaa=_inc_v sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_vbuaa pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0 sec sbc #1 @@ -3010,7 +3018,7 @@ pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobbe sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_vbuxx pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 txa sec @@ -3023,7 +3031,7 @@ pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_v sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_vbuyy pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 tya sec @@ -3036,7 +3044,7 @@ pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vb sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_vbuz1 pbuc1_derefidx_vbuxx=_dec_vbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:12.0 lda {z1} sec @@ -3049,7 +3057,7 @@ pbuc1_derefidx_vbuxx=_inc_vbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_v sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot__deref_pbuz1 pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5 ldy #0 lda ({z1}),y @@ -3064,7 +3072,7 @@ pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot__deref_pbuc1 pbuc1_derefidx_vbuxx=_dec__deref_pbuc1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.0 lda {c1} sec @@ -3077,7 +3085,7 @@ pbuc1_derefidx_vbuxx=_inc__deref_pbuc1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not__deref_pbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot__deref_pbuc2 pbuc1_derefidx_vbuxx=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.0 lda {c2} sec @@ -3090,72 +3098,73 @@ pbuc1_derefidx_vbuxx=_inc__deref_pbuc2 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vb sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos__deref_pbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx +*pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx - clobber: cycles:7.0 + inc {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc2_derefidx_vbuaa pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5 tay lda {c2},y @@ -3170,7 +3179,7 @@ pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuxx=_inc_pbuc2 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc2_derefidx_vbuxx pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.5 lda {c2},x sec @@ -3183,7 +3192,7 @@ pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc2_derefidx_vbuyy pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.5 lda {c2},y sec @@ -3196,7 +3205,7 @@ pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc2_derefidx_vbuz1 pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5 ldy {z1} lda {c2},y @@ -3211,27 +3220,27 @@ pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_dec_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_inc_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_bnot_vbuc2 pbuc1_derefidx_vbuxx=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 lda #{c2} sec @@ -3244,7 +3253,7 @@ pbuc1_derefidx_vbuxx=_inc_vbuc2 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa= sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_vbuaa pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0 sec sbc #1 @@ -3255,7 +3264,7 @@ pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobbe sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_vbuxx pbuc1_derefidx_vbuyy=_dec_vbuxx < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 txa sec @@ -3268,7 +3277,7 @@ pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_v sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_vbuyy pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 tya sec @@ -3281,7 +3290,7 @@ pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vb sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_vbuz1 pbuc1_derefidx_vbuyy=_dec_vbuz1 < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:12.0 lda {z1} sec @@ -3294,7 +3303,7 @@ pbuc1_derefidx_vbuyy=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_v sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot__deref_pbuz1 pbuc1_derefidx_vbuyy=_dec__deref_pbuz1 < pbuc1_derefidx_vbuaa=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:20.5 tya tax @@ -3313,7 +3322,7 @@ pbuc1_derefidx_vbuyy=_inc__deref_pbuz1 < pbuc1_derefidx_vbuaa=_inc__deref_pbuz1 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot__deref_pbuc1 pbuc1_derefidx_vbuyy=_dec__deref_pbuc1 < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.0 lda {c1} sec @@ -3326,7 +3335,7 @@ pbuc1_derefidx_vbuyy=_inc__deref_pbuc1 < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not__deref_pbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot__deref_pbuc2 pbuc1_derefidx_vbuyy=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.0 lda {c2} sec @@ -3339,72 +3348,80 @@ pbuc1_derefidx_vbuyy=_inc__deref_pbuc2 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vb sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos__deref_pbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy +*pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy - clobber:A cycles:13.5 + lda {c1},y + clc + adc #1 + sta {c1},y +pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy < pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa < pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx - clobber:A X cycles:11.0 + tya + tax + inc {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc2_derefidx_vbuaa pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuaa < vbuaa=_dec_pbuc1_derefidx_vbuaa < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5 tax lda {c2},x @@ -3419,7 +3436,7 @@ pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuaa < vbuaa=_inc_pbuc1_derefidx_vbuaa sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc2_derefidx_vbuxx pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.5 lda {c2},x sec @@ -3432,7 +3449,7 @@ pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc2_derefidx_vbuyy pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:13.5 lda {c2},y sec @@ -3445,7 +3462,7 @@ pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc2_derefidx_vbuz1 pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5 ldx {z1} lda {c2},x @@ -3460,27 +3477,27 @@ pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_inc_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_dec_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_inc_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_bnot_vbuc2 pbuc1_derefidx_vbuyy=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0 lda #{c2} sec @@ -3493,7 +3510,7 @@ pbuc1_derefidx_vbuyy=_inc_vbuc2 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa= sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_vbuaa pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:12.0 ldx {z1} sec @@ -3516,7 +3533,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_v sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_vbuxx pbuc1_derefidx_vbuz1=_dec_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0 txa ldx {z1} @@ -3543,7 +3560,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefi sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_vbuyy pbuc1_derefidx_vbuz1=_dec_vbuyy < pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0 ldx {z1} tya @@ -3570,7 +3587,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuyy < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefi sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_vbuz1 pbuc1_derefidx_vbuz1=_dec_vbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0 ldx {z1} txa @@ -3597,7 +3614,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_v sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_vbuz2 pbuc1_derefidx_vbuz1=_dec_vbuz2 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.0 lda {z2} ldx {z1} @@ -3624,7 +3641,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuz2 < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefi sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot__deref_pbuz1 pbuc1_derefidx_vbuz1=_dec__deref_pbuz1 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5 ldy #0 lda ({z1}),y @@ -3641,7 +3658,7 @@ pbuc1_derefidx_vbuz1=_inc__deref_pbuz1 < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot__deref_pbuz2 pbuc1_derefidx_vbuz1=_dec__deref_pbuz2 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:19.5 ldx {z1} ldy #0 @@ -3658,7 +3675,7 @@ pbuc1_derefidx_vbuz1=_inc__deref_pbuz2 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot__deref_pbuc1 pbuc1_derefidx_vbuz1=_dec__deref_pbuc1 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.0 lda {c1} ldx {z1} @@ -3685,7 +3702,7 @@ pbuc1_derefidx_vbuz1=_inc__deref_pbuc1 < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot__deref_pbuc2 pbuc1_derefidx_vbuz1=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.0 lda {c2} sec @@ -3712,82 +3729,82 @@ pbuc1_derefidx_vbuz1=_inc__deref_pbuc2 < pbuc1_derefidx_vbuyy=_inc__deref_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuz3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuz3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuz3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuz2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuz2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuaa pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:18.5 tax lda {c1},x @@ -3804,7 +3821,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_inc_pbuc1 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuxx pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5 lda {c1},x sec @@ -3819,7 +3836,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuyy pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5 lda {c1},y sec @@ -3834,7 +3851,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuz1 pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:19.5 ldx {z1} lda {c1},x @@ -3842,16 +3859,18 @@ pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuz1=_dec_pbuc1 sbc #1 ldx {z1} sta {c1},x -pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:19.5 - ldx {z1} - lda {c1},x +pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy - clobber:A Y cycles:16.5 + ldy {z1} + lda {c1},y clc adc #1 + sta {c1},y +pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx - clobber:X cycles:10.0 ldx {z1} - sta {c1},x + inc {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuz2 pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:19.5 ldx {z2} lda {c1},x @@ -3868,17 +3887,17 @@ pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_inc_pbuc1 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuaa pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:18.5 tax lda {c2},x @@ -3909,7 +3928,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_inc_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuxx pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5 lda {c2},x ldx {z1} @@ -3936,7 +3955,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_inc_vbuaa sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuyy pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5 lda {c2},y ldx {z1} @@ -3963,7 +3982,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_inc_vbuaa sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuz1 pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5 ldx {z1} lda {c2},x @@ -3990,7 +4009,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_inc_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuz2 pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:19.5 ldx {z2} lda {c2},x @@ -4021,7 +4040,7 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_inc_pbuc2 sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuc1 pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuc1 < vbuaa=_dec_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_minus_1 < vbuaa=pbuc1_derefidx_vbuaa_minus_1 < vbuaa=pbuc1_derefidx_vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:20.5 lda #{c1} tax @@ -4040,17 +4059,17 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuc1 < vbuaa=_inc_pbuc2_derefidx_vbuc1 sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_vbuc1 pbuc1_derefidx_vbuz1=_dec_vbuc1 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0 lda #{c1} sec @@ -4065,7 +4084,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa= sta {c1},x CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_bnot_vbuc2 pbuc1_derefidx_vbuz1=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0 lda #{c2} sec @@ -4092,352 +4111,352 @@ pbuc1_derefidx_vbuz1=_inc_vbuc2 < pbuc1_derefidx_vbuyy=_inc_vbuc2 < vbuaa=_inc_v sta {c1},y CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not__deref_pbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos__deref_pbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_bnot_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_dec_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_inc_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_neg_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_pos_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not__deref_pbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg__deref_pbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos__deref_pbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not__deref_pbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg__deref_pbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos__deref_pbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not__deref_pbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg__deref_pbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos__deref_pbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not__deref_pbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot__deref_pbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec__deref_pbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc__deref_pbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg__deref_pbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos__deref_pbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuz2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuz2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuz2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuz1_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuz1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuz1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuz1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuz1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuz1_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc1_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc1_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc1_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc1_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc1_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc1_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc1_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc1_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc1_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc1_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc1_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc1_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc1_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc1_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc1_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc1_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc1_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc1_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc1_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc1_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc1_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc2_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc2_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc2_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc2_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc2_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc2_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc2_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc2_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc2_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc2_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc2_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc2_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc2_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc2_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc2_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc2_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc2_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc2_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc2_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc2_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc2_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuaa +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuaa CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuaa -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuxx +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuxx CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuxx -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuyy +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuyy CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuyy -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuz1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuz1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuz1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuc3 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_pbuc3_derefidx_vbuc4 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_pbuc3_derefidx_vbuc4 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_pbuc3_derefidx_vbuc4 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_pbuc3_derefidx_vbuc4 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_pbuc3_derefidx_vbuc4 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_pbuc3_derefidx_vbuc4 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_vbuc1 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_vbuc1 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_vbuc1 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_vbuc2 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_vbuc2 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_pos_vbuc2 -CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_not_vbuc3 +CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_bnot_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_dec_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_inc_vbuc3 CANNOT SYNTHESIZE pbuc1_derefidx_vbuc2=_neg_vbuc3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.asm b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.asm new file mode 100644 index 000000000..2961ba5a4 --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.asm @@ -0,0 +1,151 @@ +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" + .label RASTER = $d012 + .label CIA1_PORT_A = $dc00 + .label CIA1_PORT_B = $dc01 + .label CIA1_PORT_A_DDR = $dc02 + .label CIA1_PORT_B_DDR = $dc03 + jsr main +main: { + .label sc = 2 + .label row_pressed_bits = 4 + .label screen = 2 + .label ch = 4 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + b1: + lda #' ' + ldy #0 + sta (sc),y + inc sc + bne !+ + inc sc+1 + !: + lda sc+1 + cmp #>$400+$3e8 + bcc b1 + bne !+ + lda sc + cmp #<$400+$3e8 + bcc b1 + !: + jsr keyboard_init + b5: + lda RASTER + cmp #$ff + bne b5 + lda #<$400 + sta screen + lda #>$400 + sta screen+1 + ldx #0 + b6: + txa + jsr keyboard_matrix_read + sta row_pressed_bits + ldy #0 + b7: + lda #$80 + and row_pressed_bits + cmp #0 + beq b8 + lda #'1' + sta (screen),y + b9: + asl row_pressed_bits + iny + cpy #8 + bne b7 + lda screen + clc + adc #$28 + sta screen + bcc !+ + inc screen+1 + !: + inx + cpx #8 + bne b6 + lda screen + clc + adc #$28 + sta screen + bcc !+ + inc screen+1 + !: + ldx #0 + b10: + lda chars,x + sta ch + jsr keyboard_char_pressed + cmp #0 + beq b11 + txa + tay + lda ch + sta (screen),y + b12: + inx + cpx #6 + bne b10 + jmp b5 + b11: + txa + tay + lda #' ' + sta (screen),y + jmp b12 + b8: + lda #'0' + sta (screen),y + jmp b9 + chars: .byte '@', 'a', 'b', 'c', 'd', 'e' +} +keyboard_char_pressed: { + .label _1 = 5 + .label ch = 4 + ldy ch + jsr keyboard_matrix_row + jsr keyboard_matrix_read + sta _1 + ldy ch + jsr keyboard_matrix_col + and _1 + rts +} +keyboard_matrix_col: { + lda keyboard_matrix_chars,y + lsr + lsr + lsr + lsr + tay + lda keyboard_matrix_col_bitmask,y + rts +} +keyboard_matrix_read: { + tay + lda keyboard_row_bits,y + sta CIA1_PORT_A + lda CIA1_PORT_B + eor #$ff + rts +} +keyboard_matrix_row: { + lda keyboard_matrix_chars,y + and #$f + rts +} +keyboard_init: { + lda #$ff + sta CIA1_PORT_A_DDR + lda #0 + sta CIA1_PORT_B_DDR + rts +} + keyboard_row_bits: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f + keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + keyboard_matrix_chars: .byte $65, $21, $43, $42, $22, $61 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 new file mode 100644 index 000000000..30a47aefc --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.cfg @@ -0,0 +1,138 @@ +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@6 +@6: scope:[] from @begin + [1] phi() [ ] ( ) + [2] call main param-assignment [ ] ( ) + to:@end +@end: scope:[] from @6 + [3] phi() [ ] ( ) +main: scope:[main] from @6 + [4] phi() [ ] ( main:2 [ ] ) + to:main::@1 +main::@1: scope:[main] from main main::@1 + [5] (byte*) main::sc#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) main::sc#1 ) [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) + [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) + [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) + [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) + to:main::@13 +main::@13: scope:[main] from main::@1 + [9] phi() [ ] ( main:2 [ ] ) + [10] call keyboard_init param-assignment [ ] ( main:2 [ ] ) + to:main::@2 +main::@2: scope:[main] from main::@12 main::@13 + [11] if(true) goto main::@5 [ ] ( main:2 [ ] ) + to:main::@return +main::@return: scope:[main] from main::@2 + [12] return [ ] ( main:2 [ ] ) + to:@return +main::@5: scope:[main] from main::@2 main::@5 + [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) + to:main::@6 +main::@6: scope:[main] from main::@19 main::@5 + [14] (byte*) main::screen#12 ← phi( main::@5/((byte*))(word/signed word/dword/signed dword) 1024 main::@19/(byte*) main::screen#1 ) [ main::row#2 main::screen#12 ] ( main:2 [ main::row#2 main::screen#12 ] ) + [14] (byte) main::row#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@19/(byte) main::row#1 ) [ main::row#2 main::screen#12 ] ( main:2 [ main::row#2 main::screen#12 ] ) + [15] (byte) keyboard_matrix_read::rowid#0 ← (byte) main::row#2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ) + [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ) + [17] (byte) keyboard_matrix_read::return#0 ← (byte) keyboard_matrix_read::return#2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ) + to:main::@26 +main::@26: scope:[main] from main::@6 + [18] (byte) main::row_pressed_bits#0 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ) + to:main::@7 +main::@7: scope:[main] from main::@26 main::@9 + [19] (byte) main::col#2 ← phi( main::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::col#1 ) [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + [19] (byte) main::row_pressed_bits#2 ← phi( main::@26/(byte) main::row_pressed_bits#0 main::@9/(byte) main::row_pressed_bits#1 ) [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + [20] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ) + [21] if((byte~) main::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + to:main::@17 +main::@17: scope:[main] from main::@7 + [22] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + to:main::@9 +main::@9: scope:[main] from main::@17 main::@8 + [23] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ( main:2 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ) + [24] (byte) main::col#1 ← ++ (byte) main::col#2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) + [25] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) + to:main::@19 +main::@19: scope:[main] from main::@9 + [26] (byte*) main::screen#1 ← (byte*) main::screen#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) + [27] (byte) main::row#1 ← ++ (byte) main::row#2 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) + [28] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) + to:main::@20 +main::@20: scope:[main] from main::@19 + [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) + to:main::@10 +main::@10: scope:[main] from main::@12 main::@20 + [30] (byte) main::i#2 ← phi( main::@12/(byte) main::i#1 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) + [31] (byte) main::ch#0 ← *((const byte[]) main::chars#0 + (byte) main::i#2) [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) + [32] (byte) keyboard_char_pressed::ch#0 ← (byte) main::ch#0 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) + [33] call keyboard_char_pressed param-assignment [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + [34] (byte) keyboard_char_pressed::return#0 ← (byte) keyboard_char_pressed::return#1 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ) + to:main::@27 +main::@27: scope:[main] from main::@10 + [35] (byte~) main::$13 ← (byte) keyboard_char_pressed::return#0 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ) + [36] if((byte~) main::$13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) + to:main::@21 +main::@21: scope:[main] from main::@27 + [37] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) main::ch#0 [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) + to:main::@12 +main::@12: scope:[main] from main::@11 main::@21 + [38] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) + [39] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto main::@10 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) + to:main::@2 +main::@11: scope:[main] from main::@27 + [40] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) ' ' [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) + to:main::@12 +main::@8: scope:[main] from main::@7 + [41] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + to:main::@9 +keyboard_char_pressed: scope:[keyboard_char_pressed] from main::@10 + [42] (byte) keyboard_matrix_row::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ) + [43] call keyboard_matrix_row param-assignment [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + [44] (byte) keyboard_matrix_row::return#0 ← (byte) keyboard_matrix_row::return#1 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ) + to:keyboard_char_pressed::@2 +keyboard_char_pressed::@2: scope:[keyboard_char_pressed] from keyboard_char_pressed + [45] (byte) keyboard_matrix_read::rowid#1 ← (byte) keyboard_matrix_row::return#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ) + [46] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ) + [47] (byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ) + to:keyboard_char_pressed::@3 +keyboard_char_pressed::@3: scope:[keyboard_char_pressed] from keyboard_char_pressed::@2 + [48] (byte~) keyboard_char_pressed::$1 ← (byte) keyboard_matrix_read::return#1 [ keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ) + [49] (byte) keyboard_matrix_col::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ) + [50] call keyboard_matrix_col param-assignment [ keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + [51] (byte) keyboard_matrix_col::return#0 ← (byte) keyboard_matrix_col::return#1 [ keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ) + to:keyboard_char_pressed::@4 +keyboard_char_pressed::@4: scope:[keyboard_char_pressed] from keyboard_char_pressed::@3 + [52] (byte~) keyboard_char_pressed::$2 ← (byte) keyboard_matrix_col::return#0 [ keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ) + [53] (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + to:keyboard_char_pressed::@return +keyboard_char_pressed::@return: scope:[keyboard_char_pressed] from keyboard_char_pressed::@4 + [54] return [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + to:@return +keyboard_matrix_col: scope:[keyboard_matrix_col] from keyboard_char_pressed::@3 + [55] (byte) keyboard_matrix_col::col_id#0 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#0) >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_matrix_col::col_id#0 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::col_id#0 ] ) + [56] (byte) keyboard_matrix_col::return#1 ← *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_matrix_col::col_id#0) [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + to:keyboard_matrix_col::@return +keyboard_matrix_col::@return: scope:[keyboard_matrix_col] from keyboard_matrix_col + [57] return [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + to:@return +keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_char_pressed::@2 main::@6 + [58] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_char_pressed::@2/(byte) keyboard_matrix_read::rowid#1 main::@6/(byte) keyboard_matrix_read::rowid#0 ) [ keyboard_matrix_read::rowid#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#2 ] ) + [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) + [60] (byte) keyboard_matrix_read::return#2 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) + to:keyboard_matrix_read::@return +keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read + [61] return [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) + to:@return +keyboard_matrix_row: scope:[keyboard_matrix_row] from keyboard_char_pressed + [62] (byte) keyboard_matrix_row::return#1 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#0) & (byte/signed byte/word/signed word/dword/signed dword) 15 [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + to:keyboard_matrix_row::@return +keyboard_matrix_row::@return: scope:[keyboard_matrix_row] from keyboard_matrix_row + [63] return [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + to:@return +keyboard_init: scope:[keyboard_init] from main::@13 + [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) + [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) + to:keyboard_init::@return +keyboard_init::@return: scope:[keyboard_init] from keyboard_init + [66] return [ ] ( main:2::keyboard_init:10 [ ] ) + to:@return 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 new file mode 100644 index 000000000..b26fd4fb0 --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log @@ -0,0 +1,3093 @@ +PARSING src/test/java/dk/camelot64/kickc/test/kc/test-keyboard.kc +import "c64.kc" + +// CIA#1 Port A: keyboard matrix columns and joystick #2 +const byte* CIA1_PORT_A = $dc00; +// CIA#1 Port B: keyboard matrix rows and joystick #1. +const byte* CIA1_PORT_B = $dc01; +// CIA #1 Port A data direction register. +const byte* CIA1_PORT_A_DDR = $dc02; +// CIA #1 Port B data direction register. +const byte* CIA1_PORT_B_DDR = $dc03; + +void main() { + // Clear screen + for(byte* sc = $400; sc<$400+1000;sc++) { + *sc = ' '; + } + // Init keyboard + keyboard_init(); + while(true) { + do {} while (*RASTER!=$ff); + byte* screen = $400; + // Read & print keyboard matrix + for(byte row : 0..7) { + byte row_pressed_bits = keyboard_matrix_read(row); + for(byte col : 0..7) { + if( (row_pressed_bits & $80) != 0) { + screen[col] = '1'; + } else { + screen[col] = '0'; + } + row_pressed_bits = row_pressed_bits << 1; + } + screen = screen + 40; + } + screen = screen + 40; + // Checks specific chars + byte[] chars = { '@', 'a', 'b', 'c', 'd', 'e' }; + for( byte i : 0..5 ) { + byte ch = chars[i]; + if(keyboard_char_pressed(ch)!=0) { + screen[i] = ch; + } else { + screen[i] = ' '; + } + } + } +} + +// Initialize keyboard reading by setting CIA#$ Data Direction Registers +void keyboard_init() { + // Keyboard Matrix Columns Write Mode + *CIA1_PORT_A_DDR = $ff; + // Keyboard Matrix Columns Read Mode + *CIA1_PORT_B_DDR = $00; +} + +// Determines whether a specific key representing a PETSCII char is currently pressed +// Returns zero if the key is not pressed and a non-zero value if the key is currently pressed +byte keyboard_char_pressed(byte ch) { + return keyboard_matrix_read(keyboard_matrix_row(ch)) & keyboard_matrix_col(ch); +} + +// Keyboard row bits as expected by CIA#1 Port A when reading a specific keyboard matrix row (rows are numbered 0-7) +byte[8] keyboard_row_bits = { %11111110, %11111101, %11111011, %11110111, %11101111, %11011111, %10111111, %01111111 }; + +// Read a single row of the keyboard matrix +// The row ID (0-7) of the keyboard matrix row to read. See the C64 key matrix for row IDs. +// Returns the keys pressed on the row as bits according to the C64 key matrix. +byte keyboard_matrix_read(byte rowid) { + *CIA1_PORT_A = keyboard_row_bits[rowid]; + byte row_pressed_bits = ~*CIA1_PORT_B; + return row_pressed_bits; +} + +// 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 }; + +// The keyboard matrix position of each PETSCII char between $00 and $3f (lower case) +// Matrix positions are encoded as column ID (0-7) in the high nibble and row ID (0-7) in the low nibble %ccccrrrr +byte[] keyboard_matrix_chars = { +// CR Char + $65, // ($00) @ + $21, // ($01) a + $43, // ($02) b + $42, // ($03) c + $22, // ($04) d + $61 // ($05) e +}; + +// Get the row ID of the keyboard matrix row containing a specific PETSCII char +// Returns the row ID (0-7) of the keyboard matrix row containing the passed char +// The row ID is suitable for passing to keyboard_matrix_read(rowid) +byte keyboard_matrix_row(byte ch) { + return keyboard_matrix_chars[ch] & $f; +} + +// Get the column bit mask of the keyboard matrix column containing a specific PETSCII char. +// Returns the keyboard matrix column bit mask of the passed char. +// The returned bit is suitable for ANDing with the result of keyboard_matrix_read(rowid) to determine if the corresponding key is pressed. +byte keyboard_matrix_col(byte ch) { + byte col_id = keyboard_matrix_chars[ch] >>4; + return keyboard_matrix_col_bitmask[col_id]; +} + +// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard +// +----+----------------------+-------------------------------------------------------------------------------------------------------+ +// | | Write | Read $dc01 (PETSCII code in parenthesis): | +// |row:| $dc00: row bits +------------+------------+------------+------------+------------+------------+------------+------------+ +// | | | BIT 7 | BIT 6 | BIT 5 | BIT 4 | BIT 3 | BIT 2 | BIT 1 | BIT 0 | +// +----+----------------------+------------+------------+------------+------------+------------+------------+------------+------------+ +// |0. | #%11111110 (254/$fe) | DOWN ($ )| F5 ($ )| F3 ($ )| F1 ($ )| F7 ($ )| RIGHT ($ )| RETURN($ )|DELETE ($ )| +// |1. | #%11111101 (253/$fd) |LEFT-SH($ )| e ($05)| s ($13)| z ($1a)| 4 ($34)| a ($01)| w ($17)| 3 ($33)| +// |2. | #%11111011 (251/$fb) | x ($18)| t ($14)| f ($06)| c ($03)| 6 ($36)| d ($04)| r ($12)| 5 ($35)| +// |3. | #%11110111 (247/$f7) | v ($16)| u ($15)| h ($08)| b ($02)| 8 ($38)| g ($07)| y ($19)| 7 ($37)| +// |4. | #%11101111 (239/$ef) | n ($0e)| o ($0f)| k ($0b)| m ($0d)| 0 ($30)| j ($0a)| i ($09)| 9 ($39)| +// |5. | #%11011111 (223/$df) | , ($2c)| @ ($00)| : ($3a)| . ($2e)| - ($2d)| l ($0c)| p ($10)| + ($2b)| +// |6. | #%10111111 (191/$bf) | / ($2f)| ^ ($1e)| = ($3d)|RGHT-SH($ )| HOME ($ )| ; ($3b)| * ($2a)| £ ($1c)| +// |7. | #%01111111 (127/$7f) | STOP ($ )| q ($11)|COMMODR($ )| SPACE ($20)| 2 ($32)|CONTROL($ )| <- ($1f)| 1 ($31)| +// +----+----------------------+------------+------------+------------+------------+------------+------------+------------+------------+ +Importing c64.kc +PARSING src/test/java/dk/camelot64/kickc/test/kc/c64.kc +// Commodore 64 Registers and Constants + +const byte* PROCPORT = $01; + +const byte* CHARGEN = $d000; + +const byte* SPRITES_XPOS = $d000; +const byte* SPRITES_YPOS = $d001; +const byte* SPRITES_XMSB = $d010; +const byte* RASTER = $d012; +const byte* SPRITES_ENABLE = $d015; +const byte* SPRITES_EXPAND_Y = $d017; +const byte* SPRITES_PRIORITY = $d01b; +const byte* SPRITES_MC = $d01c; +const byte* SPRITES_EXPAND_X = $d01d; +const byte* BORDERCOL = $d020; +const byte* BGCOL = $d021; +const byte* SPRITES_MC1 = $d025; +const byte* SPRITES_MC2 = $d026; +const byte* SPRITES_COLS = $d027; + +const byte* COLS = $d800; + + +const byte BLACK = $0; +const byte WHITE = $1; +const byte RED = $2; +const byte CYAN = $3; +const byte PURPLE = $4; +const byte GREEN = $5; +const byte BLUE = $6; +const byte YELLOW = $7; +const byte ORANGE = $8; +const byte BROWN = $9; +const byte PINK = $a; +const byte DARK_GREY= $b; +const byte GREY = $c; +const byte LIGHT_GREEN = $d; +const byte LIGHT_BLUE = $e; +const byte LIGHT_GREY = $f; + +Adding pre/post-modifier (byte*) main::sc ← ++ (byte*) main::sc + +STATEMENTS + (byte*) PROCPORT ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*) CHARGEN ← (word/dword/signed dword) 53248 + (byte*) SPRITES_XPOS ← (word/dword/signed dword) 53248 + (byte*) SPRITES_YPOS ← (word/dword/signed dword) 53249 + (byte*) SPRITES_XMSB ← (word/dword/signed dword) 53264 + (byte*) RASTER ← (word/dword/signed dword) 53266 + (byte*) SPRITES_ENABLE ← (word/dword/signed dword) 53269 + (byte*) SPRITES_EXPAND_Y ← (word/dword/signed dword) 53271 + (byte*) SPRITES_PRIORITY ← (word/dword/signed dword) 53275 + (byte*) SPRITES_MC ← (word/dword/signed dword) 53276 + (byte*) SPRITES_EXPAND_X ← (word/dword/signed dword) 53277 + (byte*) BORDERCOL ← (word/dword/signed dword) 53280 + (byte*) BGCOL ← (word/dword/signed dword) 53281 + (byte*) SPRITES_MC1 ← (word/dword/signed dword) 53285 + (byte*) SPRITES_MC2 ← (word/dword/signed dword) 53286 + (byte*) SPRITES_COLS ← (word/dword/signed dword) 53287 + (byte*) COLS ← (word/dword/signed dword) 55296 + (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9 + (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11 + (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13 + (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14 + (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte*) CIA1_PORT_A ← (word/dword/signed dword) 56320 + (byte*) CIA1_PORT_B ← (word/dword/signed dword) 56321 + (byte*) CIA1_PORT_A_DDR ← (word/dword/signed dword) 56322 + (byte*) CIA1_PORT_B_DDR ← (word/dword/signed dword) 56323 +proc (void()) main() + (byte*) main::sc ← (word/signed word/dword/signed dword) 1024 +main::@1: + *((byte*) main::sc) ← (byte) ' ' + (byte*) main::sc ← ++ (byte*) main::sc + (word/signed word/dword/signed dword~) main::$0 ← (word/signed word/dword/signed dword) 1024 + (word/signed word/dword/signed dword) 1000 + (boolean~) main::$1 ← (byte*) main::sc < (word/signed word/dword/signed dword~) main::$0 + if((boolean~) main::$1) goto main::@1 + (void~) main::$2 ← call keyboard_init +main::@2: + if(true) goto main::@3 + goto main::@4 +main::@3: +main::@5: + (boolean~) main::$3 ← *((byte*) RASTER) != (byte/word/signed word/dword/signed dword) 255 + if((boolean~) main::$3) goto main::@5 + (byte*) main::screen ← (word/signed word/dword/signed dword) 1024 + (byte) main::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 +main::@6: + (byte~) main::$4 ← call keyboard_matrix_read (byte) main::row + (byte) main::row_pressed_bits ← (byte~) main::$4 + (byte) main::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 +main::@7: + (byte~) main::$5 ← (byte) main::row_pressed_bits & (byte/word/signed word/dword/signed dword) 128 + (boolean~) main::$6 ← (byte~) main::$5 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) main::$7 ← ! (boolean~) main::$6 + if((boolean~) main::$7) goto main::@8 + *((byte*) main::screen + (byte) main::col) ← (byte) '1' + goto main::@9 +main::@8: + *((byte*) main::screen + (byte) main::col) ← (byte) '0' +main::@9: + (byte~) main::$8 ← (byte) main::row_pressed_bits << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::row_pressed_bits ← (byte~) main::$8 + (byte) main::col ← ++ (byte) main::col + (boolean~) main::$9 ← (byte) main::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) main::$9) goto main::@7 + (byte*~) main::$10 ← (byte*) main::screen + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) main::screen ← (byte*~) main::$10 + (byte) main::row ← ++ (byte) main::row + (boolean~) main::$11 ← (byte) main::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) main::$11) goto main::@6 + (byte*~) main::$12 ← (byte*) main::screen + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) main::screen ← (byte*~) main::$12 + (byte[]) main::chars ← { (byte) '@', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e' } + (byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0 +main::@10: + (byte) main::ch ← *((byte[]) main::chars + (byte) main::i) + (byte~) main::$13 ← call keyboard_char_pressed (byte) main::ch + (boolean~) main::$14 ← (byte~) main::$13 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) main::$15 ← ! (boolean~) main::$14 + if((boolean~) main::$15) goto main::@11 + *((byte*) main::screen + (byte) main::i) ← (byte) main::ch + goto main::@12 +main::@11: + *((byte*) main::screen + (byte) main::i) ← (byte) ' ' +main::@12: + (byte) main::i ← ++ (byte) main::i + (boolean~) main::$16 ← (byte) main::i != (byte/signed byte/word/signed word/dword/signed dword) 6 + if((boolean~) main::$16) goto main::@10 + goto main::@2 +main::@4: +main::@return: + return +endproc // main() +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 +keyboard_init::@return: + return +endproc // keyboard_init() +proc (byte()) keyboard_char_pressed((byte) keyboard_char_pressed::ch) + (byte~) keyboard_char_pressed::$0 ← call keyboard_matrix_row (byte) keyboard_char_pressed::ch + (byte~) keyboard_char_pressed::$1 ← call keyboard_matrix_read (byte~) keyboard_char_pressed::$0 + (byte~) keyboard_char_pressed::$2 ← call keyboard_matrix_col (byte) keyboard_char_pressed::ch + (byte~) keyboard_char_pressed::$3 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 + (byte) keyboard_char_pressed::return ← (byte~) keyboard_char_pressed::$3 + goto keyboard_char_pressed::@return +keyboard_char_pressed::@return: + (byte) keyboard_char_pressed::return ← (byte) keyboard_char_pressed::return + return (byte) keyboard_char_pressed::return +endproc // keyboard_char_pressed() + (byte[8]) keyboard_row_bits ← { (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 } +proc (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) + *((byte*) CIA1_PORT_A) ← *((byte[8]) keyboard_row_bits + (byte) keyboard_matrix_read::rowid) + (byte~) keyboard_matrix_read::$0 ← ~ *((byte*) CIA1_PORT_B) + (byte) keyboard_matrix_read::row_pressed_bits ← (byte~) keyboard_matrix_read::$0 + (byte) keyboard_matrix_read::return ← (byte) keyboard_matrix_read::row_pressed_bits + goto keyboard_matrix_read::@return +keyboard_matrix_read::@return: + (byte) keyboard_matrix_read::return ← (byte) keyboard_matrix_read::return + return (byte) keyboard_matrix_read::return +endproc // keyboard_matrix_read() + (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[]) keyboard_matrix_chars ← { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 66, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 97 } +proc (byte()) keyboard_matrix_row((byte) keyboard_matrix_row::ch) + (byte~) keyboard_matrix_row::$0 ← *((byte[]) keyboard_matrix_chars + (byte) keyboard_matrix_row::ch) & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) keyboard_matrix_row::return ← (byte~) keyboard_matrix_row::$0 + goto keyboard_matrix_row::@return +keyboard_matrix_row::@return: + (byte) keyboard_matrix_row::return ← (byte) keyboard_matrix_row::return + return (byte) keyboard_matrix_row::return +endproc // keyboard_matrix_row() +proc (byte()) keyboard_matrix_col((byte) keyboard_matrix_col::ch) + (byte~) keyboard_matrix_col::$0 ← *((byte[]) keyboard_matrix_chars + (byte) keyboard_matrix_col::ch) >> (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) keyboard_matrix_col::col_id ← (byte~) keyboard_matrix_col::$0 + (byte) keyboard_matrix_col::return ← *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_matrix_col::col_id) + goto keyboard_matrix_col::@return +keyboard_matrix_col::@return: + (byte) keyboard_matrix_col::return ← (byte) keyboard_matrix_col::return + return (byte) keyboard_matrix_col::return +endproc // keyboard_matrix_col() + call main + +SYMBOLS +(byte*) BGCOL +(byte) BLACK +(byte) BLUE +(byte*) BORDERCOL +(byte) BROWN +(byte*) CHARGEN +(byte*) CIA1_PORT_A +(byte*) CIA1_PORT_A_DDR +(byte*) CIA1_PORT_B +(byte*) CIA1_PORT_B_DDR +(byte*) COLS +(byte) CYAN +(byte) DARK_GREY +(byte) GREEN +(byte) GREY +(byte) LIGHT_BLUE +(byte) LIGHT_GREEN +(byte) LIGHT_GREY +(byte) ORANGE +(byte) PINK +(byte*) PROCPORT +(byte) PURPLE +(byte*) RASTER +(byte) RED +(byte*) SPRITES_COLS +(byte*) SPRITES_ENABLE +(byte*) SPRITES_EXPAND_X +(byte*) SPRITES_EXPAND_Y +(byte*) SPRITES_MC +(byte*) SPRITES_MC1 +(byte*) SPRITES_MC2 +(byte*) SPRITES_PRIORITY +(byte*) SPRITES_XMSB +(byte*) SPRITES_XPOS +(byte*) SPRITES_YPOS +(byte) WHITE +(byte) YELLOW +(byte()) keyboard_char_pressed((byte) keyboard_char_pressed::ch) +(byte~) keyboard_char_pressed::$0 +(byte~) keyboard_char_pressed::$1 +(byte~) keyboard_char_pressed::$2 +(byte~) keyboard_char_pressed::$3 +(label) keyboard_char_pressed::@return +(byte) keyboard_char_pressed::ch +(byte) keyboard_char_pressed::return +(void()) keyboard_init() +(label) keyboard_init::@return +(byte[]) keyboard_matrix_chars +(byte()) keyboard_matrix_col((byte) keyboard_matrix_col::ch) +(byte~) keyboard_matrix_col::$0 +(label) keyboard_matrix_col::@return +(byte) keyboard_matrix_col::ch +(byte) keyboard_matrix_col::col_id +(byte) keyboard_matrix_col::return +(byte[]) keyboard_matrix_col_bitmask +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(byte~) keyboard_matrix_read::$0 +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte()) keyboard_matrix_row((byte) keyboard_matrix_row::ch) +(byte~) keyboard_matrix_row::$0 +(label) keyboard_matrix_row::@return +(byte) keyboard_matrix_row::ch +(byte) keyboard_matrix_row::return +(byte[8]) keyboard_row_bits +(void()) main() +(word/signed word/dword/signed dword~) main::$0 +(boolean~) main::$1 +(byte*~) main::$10 +(boolean~) main::$11 +(byte*~) main::$12 +(byte~) main::$13 +(boolean~) main::$14 +(boolean~) main::$15 +(boolean~) main::$16 +(void~) main::$2 +(boolean~) main::$3 +(byte~) main::$4 +(byte~) main::$5 +(boolean~) main::$6 +(boolean~) main::$7 +(byte~) main::$8 +(boolean~) main::$9 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::ch +(byte[]) main::chars +(byte) main::col +(byte) main::i +(byte) main::row +(byte) main::row_pressed_bits +(byte*) main::sc +(byte*) main::screen + +Promoting byte/signed byte/word/signed word/dword/signed dword to byte* in PROCPORT ← ((byte*)) 1 +Promoting word/dword/signed dword to byte* in CHARGEN ← ((byte*)) 53248 +Promoting word/dword/signed dword to byte* in SPRITES_XPOS ← ((byte*)) 53248 +Promoting word/dword/signed dword to byte* in SPRITES_YPOS ← ((byte*)) 53249 +Promoting word/dword/signed dword to byte* in SPRITES_XMSB ← ((byte*)) 53264 +Promoting word/dword/signed dword to byte* in RASTER ← ((byte*)) 53266 +Promoting word/dword/signed dword to byte* in SPRITES_ENABLE ← ((byte*)) 53269 +Promoting word/dword/signed dword to byte* in SPRITES_EXPAND_Y ← ((byte*)) 53271 +Promoting word/dword/signed dword to byte* in SPRITES_PRIORITY ← ((byte*)) 53275 +Promoting word/dword/signed dword to byte* in SPRITES_MC ← ((byte*)) 53276 +Promoting word/dword/signed dword to byte* in SPRITES_EXPAND_X ← ((byte*)) 53277 +Promoting word/dword/signed dword to byte* in BORDERCOL ← ((byte*)) 53280 +Promoting word/dword/signed dword to byte* in BGCOL ← ((byte*)) 53281 +Promoting word/dword/signed dword to byte* in SPRITES_MC1 ← ((byte*)) 53285 +Promoting word/dword/signed dword to byte* in SPRITES_MC2 ← ((byte*)) 53286 +Promoting word/dword/signed dword to byte* in SPRITES_COLS ← ((byte*)) 53287 +Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296 +Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320 +Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321 +Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322 +Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323 +Promoting word/signed word/dword/signed dword to byte* in main::sc ← ((byte*)) 1024 +Promoting word/signed word/dword/signed dword to byte* in main::screen ← ((byte*)) 1024 +INITIAL CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*) CHARGEN ← ((byte*)) (word/dword/signed dword) 53248 + (byte*) SPRITES_XPOS ← ((byte*)) (word/dword/signed dword) 53248 + (byte*) SPRITES_YPOS ← ((byte*)) (word/dword/signed dword) 53249 + (byte*) SPRITES_XMSB ← ((byte*)) (word/dword/signed dword) 53264 + (byte*) RASTER ← ((byte*)) (word/dword/signed dword) 53266 + (byte*) SPRITES_ENABLE ← ((byte*)) (word/dword/signed dword) 53269 + (byte*) SPRITES_EXPAND_Y ← ((byte*)) (word/dword/signed dword) 53271 + (byte*) SPRITES_PRIORITY ← ((byte*)) (word/dword/signed dword) 53275 + (byte*) SPRITES_MC ← ((byte*)) (word/dword/signed dword) 53276 + (byte*) SPRITES_EXPAND_X ← ((byte*)) (word/dword/signed dword) 53277 + (byte*) BORDERCOL ← ((byte*)) (word/dword/signed dword) 53280 + (byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) SPRITES_MC1 ← ((byte*)) (word/dword/signed dword) 53285 + (byte*) SPRITES_MC2 ← ((byte*)) (word/dword/signed dword) 53286 + (byte*) SPRITES_COLS ← ((byte*)) (word/dword/signed dword) 53287 + (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296 + (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9 + (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11 + (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13 + (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14 + (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320 + (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321 + (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322 + (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323 + to:@1 +main: scope:[main] from + (byte*) main::sc ← ((byte*)) (word/signed word/dword/signed dword) 1024 + to:main::@1 +main::@1: scope:[main] from main main::@1 + *((byte*) main::sc) ← (byte) ' ' + (byte*) main::sc ← ++ (byte*) main::sc + (word/signed word/dword/signed dword~) main::$0 ← (word/signed word/dword/signed dword) 1024 + (word/signed word/dword/signed dword) 1000 + (boolean~) main::$1 ← (byte*) main::sc < (word/signed word/dword/signed dword~) main::$0 + if((boolean~) main::$1) goto main::@1 + to:main::@13 +main::@13: scope:[main] from main::@1 + (void~) main::$2 ← call keyboard_init + to:main::@2 +main::@2: scope:[main] from main::@13 main::@23 + if(true) goto main::@3 + to:main::@14 +main::@3: scope:[main] from main::@15 main::@2 + to:main::@5 +main::@14: scope:[main] from main::@2 + to:main::@4 +main::@4: scope:[main] from main::@14 main::@24 + to:main::@return +main::@15: scope:[main] from + to:main::@3 +main::@5: scope:[main] from main::@3 main::@5 + (boolean~) main::$3 ← *((byte*) RASTER) != (byte/word/signed word/dword/signed dword) 255 + if((boolean~) main::$3) goto main::@5 + to:main::@16 +main::@16: scope:[main] from main::@5 + (byte*) main::screen ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte) main::row ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:main::@6 +main::@6: scope:[main] from main::@16 main::@19 + (byte~) main::$4 ← call keyboard_matrix_read (byte) main::row + (byte) main::row_pressed_bits ← (byte~) main::$4 + (byte) main::col ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:main::@7 +main::@7: scope:[main] from main::@6 main::@9 + (byte~) main::$5 ← (byte) main::row_pressed_bits & (byte/word/signed word/dword/signed dword) 128 + (boolean~) main::$6 ← (byte~) main::$5 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) main::$7 ← ! (boolean~) main::$6 + if((boolean~) main::$7) goto main::@8 + to:main::@17 +main::@8: scope:[main] from main::@18 main::@7 + *((byte*) main::screen + (byte) main::col) ← (byte) '0' + to:main::@9 +main::@17: scope:[main] from main::@7 + *((byte*) main::screen + (byte) main::col) ← (byte) '1' + to:main::@9 +main::@9: scope:[main] from main::@17 main::@8 + (byte~) main::$8 ← (byte) main::row_pressed_bits << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::row_pressed_bits ← (byte~) main::$8 + (byte) main::col ← ++ (byte) main::col + (boolean~) main::$9 ← (byte) main::col != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) main::$9) goto main::@7 + to:main::@19 +main::@18: scope:[main] from + to:main::@8 +main::@19: scope:[main] from main::@9 + (byte*~) main::$10 ← (byte*) main::screen + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) main::screen ← (byte*~) main::$10 + (byte) main::row ← ++ (byte) main::row + (boolean~) main::$11 ← (byte) main::row != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) main::$11) goto main::@6 + to:main::@20 +main::@20: scope:[main] from main::@19 + (byte*~) main::$12 ← (byte*) main::screen + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) main::screen ← (byte*~) main::$12 + (byte[]) main::chars ← { (byte) '@', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e' } + (byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:main::@10 +main::@10: scope:[main] from main::@12 main::@20 + (byte) main::ch ← *((byte[]) main::chars + (byte) main::i) + (byte~) main::$13 ← call keyboard_char_pressed (byte) main::ch + (boolean~) main::$14 ← (byte~) main::$13 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) main::$15 ← ! (boolean~) main::$14 + if((boolean~) main::$15) goto main::@11 + to:main::@21 +main::@11: scope:[main] from main::@10 main::@22 + *((byte*) main::screen + (byte) main::i) ← (byte) ' ' + to:main::@12 +main::@21: scope:[main] from main::@10 + *((byte*) main::screen + (byte) main::i) ← (byte) main::ch + to:main::@12 +main::@12: scope:[main] from main::@11 main::@21 + (byte) main::i ← ++ (byte) main::i + (boolean~) main::$16 ← (byte) main::i != (byte/signed byte/word/signed word/dword/signed dword) 6 + if((boolean~) main::$16) goto main::@10 + to:main::@23 +main::@22: scope:[main] from + to:main::@11 +main::@23: scope:[main] from main::@12 + to:main::@2 +main::@24: scope:[main] from + to:main::@4 +main::@return: scope:[main] from main::@4 + return + to:@return +@1: scope:[] from @begin + to:@2 +keyboard_init: scope:[keyboard_init] from + *((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 + to:keyboard_init::@return +keyboard_init::@return: scope:[keyboard_init] from keyboard_init + return + to:@return +@2: scope:[] from @1 + to:@3 +keyboard_char_pressed: scope:[keyboard_char_pressed] from + (byte~) keyboard_char_pressed::$0 ← call keyboard_matrix_row (byte) keyboard_char_pressed::ch + (byte~) keyboard_char_pressed::$1 ← call keyboard_matrix_read (byte~) keyboard_char_pressed::$0 + (byte~) keyboard_char_pressed::$2 ← call keyboard_matrix_col (byte) keyboard_char_pressed::ch + (byte~) keyboard_char_pressed::$3 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 + (byte) keyboard_char_pressed::return ← (byte~) keyboard_char_pressed::$3 + to:keyboard_char_pressed::@return +keyboard_char_pressed::@return: scope:[keyboard_char_pressed] from keyboard_char_pressed keyboard_char_pressed::@1 + (byte) keyboard_char_pressed::return ← (byte) keyboard_char_pressed::return + return (byte) keyboard_char_pressed::return + to:@return +keyboard_char_pressed::@1: scope:[keyboard_char_pressed] from + to:keyboard_char_pressed::@return +@3: scope:[] from @2 + (byte[8]) keyboard_row_bits ← { (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 } + to:@4 +keyboard_matrix_read: scope:[keyboard_matrix_read] from + *((byte*) CIA1_PORT_A) ← *((byte[8]) keyboard_row_bits + (byte) keyboard_matrix_read::rowid) + (byte~) keyboard_matrix_read::$0 ← ~ *((byte*) CIA1_PORT_B) + (byte) keyboard_matrix_read::row_pressed_bits ← (byte~) keyboard_matrix_read::$0 + (byte) keyboard_matrix_read::return ← (byte) keyboard_matrix_read::row_pressed_bits + to:keyboard_matrix_read::@return +keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read keyboard_matrix_read::@1 + (byte) keyboard_matrix_read::return ← (byte) keyboard_matrix_read::return + return (byte) keyboard_matrix_read::return + to:@return +keyboard_matrix_read::@1: scope:[keyboard_matrix_read] from + to:keyboard_matrix_read::@return +@4: scope:[] from @3 + (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[]) keyboard_matrix_chars ← { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 66, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 97 } + to:@5 +keyboard_matrix_row: scope:[keyboard_matrix_row] from + (byte~) keyboard_matrix_row::$0 ← *((byte[]) keyboard_matrix_chars + (byte) keyboard_matrix_row::ch) & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) keyboard_matrix_row::return ← (byte~) keyboard_matrix_row::$0 + to:keyboard_matrix_row::@return +keyboard_matrix_row::@return: scope:[keyboard_matrix_row] from keyboard_matrix_row keyboard_matrix_row::@1 + (byte) keyboard_matrix_row::return ← (byte) keyboard_matrix_row::return + return (byte) keyboard_matrix_row::return + to:@return +keyboard_matrix_row::@1: scope:[keyboard_matrix_row] from + to:keyboard_matrix_row::@return +@5: scope:[] from @4 + to:@6 +keyboard_matrix_col: scope:[keyboard_matrix_col] from + (byte~) keyboard_matrix_col::$0 ← *((byte[]) keyboard_matrix_chars + (byte) keyboard_matrix_col::ch) >> (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) keyboard_matrix_col::col_id ← (byte~) keyboard_matrix_col::$0 + (byte) keyboard_matrix_col::return ← *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_matrix_col::col_id) + to:keyboard_matrix_col::@return +keyboard_matrix_col::@return: scope:[keyboard_matrix_col] from keyboard_matrix_col keyboard_matrix_col::@1 + (byte) keyboard_matrix_col::return ← (byte) keyboard_matrix_col::return + return (byte) keyboard_matrix_col::return + to:@return +keyboard_matrix_col::@1: scope:[keyboard_matrix_col] from + to:keyboard_matrix_col::@return +@6: scope:[] from @5 + call main + to:@end +@end: scope:[] from @6 + +Eliminating unused variable (byte*) PROCPORT and assignment [0] (byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte*) CHARGEN and assignment [1] (byte*) CHARGEN ← ((byte*)) (word/dword/signed dword) 53248 +Eliminating unused variable (byte*) SPRITES_XPOS and assignment [2] (byte*) SPRITES_XPOS ← ((byte*)) (word/dword/signed dword) 53248 +Eliminating unused variable (byte*) SPRITES_YPOS and assignment [3] (byte*) SPRITES_YPOS ← ((byte*)) (word/dword/signed dword) 53249 +Eliminating unused variable (byte*) SPRITES_XMSB and assignment [4] (byte*) SPRITES_XMSB ← ((byte*)) (word/dword/signed dword) 53264 +Eliminating unused variable (byte*) SPRITES_ENABLE and assignment [6] (byte*) SPRITES_ENABLE ← ((byte*)) (word/dword/signed dword) 53269 +Eliminating unused variable (byte*) SPRITES_EXPAND_Y and assignment [7] (byte*) SPRITES_EXPAND_Y ← ((byte*)) (word/dword/signed dword) 53271 +Eliminating unused variable (byte*) SPRITES_PRIORITY and assignment [8] (byte*) SPRITES_PRIORITY ← ((byte*)) (word/dword/signed dword) 53275 +Eliminating unused variable (byte*) SPRITES_MC and assignment [9] (byte*) SPRITES_MC ← ((byte*)) (word/dword/signed dword) 53276 +Eliminating unused variable (byte*) SPRITES_EXPAND_X and assignment [10] (byte*) SPRITES_EXPAND_X ← ((byte*)) (word/dword/signed dword) 53277 +Eliminating unused variable (byte*) BORDERCOL and assignment [11] (byte*) BORDERCOL ← ((byte*)) (word/dword/signed dword) 53280 +Eliminating unused variable (byte*) BGCOL and assignment [12] (byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281 +Eliminating unused variable (byte*) SPRITES_MC1 and assignment [13] (byte*) SPRITES_MC1 ← ((byte*)) (word/dword/signed dword) 53285 +Eliminating unused variable (byte*) SPRITES_MC2 and assignment [14] (byte*) SPRITES_MC2 ← ((byte*)) (word/dword/signed dword) 53286 +Eliminating unused variable (byte*) SPRITES_COLS and assignment [15] (byte*) SPRITES_COLS ← ((byte*)) (word/dword/signed dword) 53287 +Eliminating unused variable (byte*) COLS and assignment [16] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296 +Eliminating unused variable (byte) BLACK and assignment [17] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) WHITE and assignment [18] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) RED and assignment [19] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2 +Eliminating unused variable (byte) CYAN and assignment [20] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3 +Eliminating unused variable (byte) PURPLE and assignment [21] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) GREEN and assignment [22] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5 +Eliminating unused variable (byte) BLUE and assignment [23] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6 +Eliminating unused variable (byte) YELLOW and assignment [24] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7 +Eliminating unused variable (byte) ORANGE and assignment [25] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8 +Eliminating unused variable (byte) BROWN and assignment [26] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9 +Eliminating unused variable (byte) PINK and assignment [27] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10 +Eliminating unused variable (byte) DARK_GREY and assignment [28] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11 +Eliminating unused variable (byte) GREY and assignment [29] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12 +Eliminating unused variable (byte) LIGHT_GREEN and assignment [30] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13 +Eliminating unused variable (byte) LIGHT_BLUE and assignment [31] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14 +Eliminating unused variable (byte) LIGHT_GREY and assignment [32] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15 +Eliminating unused variable - keeping the call (void~) main::$2 +Removing empty block main::@14 +Removing empty block main::@4 +Removing empty block main::@15 +Removing empty block main::@18 +Removing empty block main::@22 +Removing empty block main::@23 +Removing empty block main::@24 +Removing empty block @1 +Removing empty block @2 +Removing empty block keyboard_char_pressed::@1 +Removing empty block keyboard_matrix_read::@1 +Removing empty block keyboard_matrix_row::@1 +Removing empty block @5 +Removing empty block keyboard_matrix_col::@1 +PROCEDURE MODIFY VARIABLE ANALYSIS + +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... + +CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN +@begin: scope:[] from + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56320 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56321 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56322 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56323 + to:@3 +main: scope:[main] from @6 + (byte*) main::sc#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + to:main::@1 +main::@1: scope:[main] from main main::@1 + (byte*) main::sc#2 ← phi( main/(byte*) main::sc#0 main::@1/(byte*) main::sc#1 ) + *((byte*) main::sc#2) ← (byte) ' ' + (byte*) main::sc#1 ← ++ (byte*) main::sc#2 + (word/signed word/dword/signed dword~) main::$0 ← (word/signed word/dword/signed dword) 1024 + (word/signed word/dword/signed dword) 1000 + (boolean~) main::$1 ← (byte*) main::sc#1 < (word/signed word/dword/signed dword~) main::$0 + if((boolean~) main::$1) goto main::@1 + to:main::@13 +main::@13: scope:[main] from main::@1 + call keyboard_init param-assignment + to:main::@25 +main::@25: scope:[main] from main::@13 + to:main::@2 +main::@2: scope:[main] from main::@12 main::@25 + if(true) goto main::@3 + to:main::@return +main::@3: scope:[main] from main::@2 + to:main::@5 +main::@5: scope:[main] from main::@3 main::@5 + (boolean~) main::$3 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + if((boolean~) main::$3) goto main::@5 + to:main::@16 +main::@16: scope:[main] from main::@5 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte) main::row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:main::@6 +main::@6: scope:[main] from main::@16 main::@19 + (byte*) main::screen#14 ← phi( main::@16/(byte*) main::screen#0 main::@19/(byte*) main::screen#1 ) + (byte) main::row#2 ← phi( main::@16/(byte) main::row#0 main::@19/(byte) main::row#1 ) + (byte) keyboard_matrix_read::rowid#0 ← (byte) main::row#2 + call keyboard_matrix_read param-assignment + (byte) keyboard_matrix_read::return#0 ← (byte) keyboard_matrix_read::return#3 + to:main::@26 +main::@26: scope:[main] from main::@6 + (byte) main::row#8 ← phi( main::@6/(byte) main::row#2 ) + (byte*) main::screen#12 ← phi( main::@6/(byte*) main::screen#14 ) + (byte) keyboard_matrix_read::return#4 ← phi( main::@6/(byte) keyboard_matrix_read::return#0 ) + (byte~) main::$4 ← (byte) keyboard_matrix_read::return#4 + (byte) main::row_pressed_bits#0 ← (byte~) main::$4 + (byte) main::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:main::@7 +main::@7: scope:[main] from main::@26 main::@9 + (byte) main::row#7 ← phi( main::@26/(byte) main::row#8 main::@9/(byte) main::row#4 ) + (byte) main::col#5 ← phi( main::@26/(byte) main::col#0 main::@9/(byte) main::col#1 ) + (byte*) main::screen#9 ← phi( main::@26/(byte*) main::screen#12 main::@9/(byte*) main::screen#10 ) + (byte) main::row_pressed_bits#2 ← phi( main::@26/(byte) main::row_pressed_bits#0 main::@9/(byte) main::row_pressed_bits#1 ) + (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 + (boolean~) main::$6 ← (byte~) main::$5 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) main::$7 ← ! (boolean~) main::$6 + if((boolean~) main::$7) goto main::@8 + to:main::@17 +main::@8: scope:[main] from main::@7 + (byte) main::row#6 ← phi( main::@7/(byte) main::row#7 ) + (byte) main::row_pressed_bits#5 ← phi( main::@7/(byte) main::row_pressed_bits#2 ) + (byte) main::col#2 ← phi( main::@7/(byte) main::col#5 ) + (byte*) main::screen#3 ← phi( main::@7/(byte*) main::screen#9 ) + *((byte*) main::screen#3 + (byte) main::col#2) ← (byte) '0' + to:main::@9 +main::@17: scope:[main] from main::@7 + (byte) main::row#5 ← phi( main::@7/(byte) main::row#7 ) + (byte) main::row_pressed_bits#4 ← phi( main::@7/(byte) main::row_pressed_bits#2 ) + (byte) main::col#3 ← phi( main::@7/(byte) main::col#5 ) + (byte*) main::screen#4 ← phi( main::@7/(byte*) main::screen#9 ) + *((byte*) main::screen#4 + (byte) main::col#3) ← (byte) '1' + to:main::@9 +main::@9: scope:[main] from main::@17 main::@8 + (byte) main::row#4 ← phi( main::@17/(byte) main::row#5 main::@8/(byte) main::row#6 ) + (byte*) main::screen#10 ← phi( main::@17/(byte*) main::screen#4 main::@8/(byte*) main::screen#3 ) + (byte) main::col#4 ← phi( main::@17/(byte) main::col#3 main::@8/(byte) main::col#2 ) + (byte) main::row_pressed_bits#3 ← phi( main::@17/(byte) main::row_pressed_bits#4 main::@8/(byte) main::row_pressed_bits#5 ) + (byte~) main::$8 ← (byte) main::row_pressed_bits#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::row_pressed_bits#1 ← (byte~) main::$8 + (byte) main::col#1 ← ++ (byte) main::col#4 + (boolean~) main::$9 ← (byte) main::col#1 != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) main::$9) goto main::@7 + to:main::@19 +main::@19: scope:[main] from main::@9 + (byte) main::row#3 ← phi( main::@9/(byte) main::row#4 ) + (byte*) main::screen#5 ← phi( main::@9/(byte*) main::screen#10 ) + (byte*~) main::$10 ← (byte*) main::screen#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) main::screen#1 ← (byte*~) main::$10 + (byte) main::row#1 ← ++ (byte) main::row#3 + (boolean~) main::$11 ← (byte) main::row#1 != (byte/signed byte/word/signed word/dword/signed dword) 8 + if((boolean~) main::$11) goto main::@6 + to:main::@20 +main::@20: scope:[main] from main::@19 + (byte*) main::screen#6 ← phi( main::@19/(byte*) main::screen#1 ) + (byte*~) main::$12 ← (byte*) main::screen#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) main::screen#2 ← (byte*~) main::$12 + (byte[]) main::chars#0 ← { (byte) '@', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e' } + (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:main::@10 +main::@10: scope:[main] from main::@12 main::@20 + (byte*) main::screen#13 ← phi( main::@12/(byte*) main::screen#15 main::@20/(byte*) main::screen#2 ) + (byte) main::i#2 ← phi( main::@12/(byte) main::i#1 main::@20/(byte) main::i#0 ) + (byte) main::ch#0 ← *((byte[]) main::chars#0 + (byte) main::i#2) + (byte) keyboard_char_pressed::ch#0 ← (byte) main::ch#0 + call keyboard_char_pressed param-assignment + (byte) keyboard_char_pressed::return#0 ← (byte) keyboard_char_pressed::return#2 + to:main::@27 +main::@27: scope:[main] from main::@10 + (byte) main::ch#2 ← phi( main::@10/(byte) main::ch#0 ) + (byte) main::i#6 ← phi( main::@10/(byte) main::i#2 ) + (byte*) main::screen#11 ← phi( main::@10/(byte*) main::screen#13 ) + (byte) keyboard_char_pressed::return#3 ← phi( main::@10/(byte) keyboard_char_pressed::return#0 ) + (byte~) main::$13 ← (byte) keyboard_char_pressed::return#3 + (boolean~) main::$14 ← (byte~) main::$13 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) main::$15 ← ! (boolean~) main::$14 + if((boolean~) main::$15) goto main::@11 + to:main::@21 +main::@11: scope:[main] from main::@27 + (byte) main::i#3 ← phi( main::@27/(byte) main::i#6 ) + (byte*) main::screen#7 ← phi( main::@27/(byte*) main::screen#11 ) + *((byte*) main::screen#7 + (byte) main::i#3) ← (byte) ' ' + to:main::@12 +main::@21: scope:[main] from main::@27 + (byte) main::i#4 ← phi( main::@27/(byte) main::i#6 ) + (byte*) main::screen#8 ← phi( main::@27/(byte*) main::screen#11 ) + (byte) main::ch#1 ← phi( main::@27/(byte) main::ch#2 ) + *((byte*) main::screen#8 + (byte) main::i#4) ← (byte) main::ch#1 + to:main::@12 +main::@12: scope:[main] from main::@11 main::@21 + (byte*) main::screen#15 ← phi( main::@11/(byte*) main::screen#7 main::@21/(byte*) main::screen#8 ) + (byte) main::i#5 ← phi( main::@11/(byte) main::i#3 main::@21/(byte) main::i#4 ) + (byte) main::i#1 ← ++ (byte) main::i#5 + (boolean~) main::$16 ← (byte) main::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 6 + if((boolean~) main::$16) goto main::@10 + to:main::@2 +main::@return: scope:[main] from main::@2 + return + to:@return +keyboard_init: scope:[keyboard_init] from main::@13 + *((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 + to:keyboard_init::@return +keyboard_init::@return: scope:[keyboard_init] from keyboard_init + return + to:@return +keyboard_char_pressed: scope:[keyboard_char_pressed] from main::@10 + (byte) keyboard_char_pressed::ch#1 ← phi( main::@10/(byte) keyboard_char_pressed::ch#0 ) + (byte) keyboard_matrix_row::ch#0 ← (byte) keyboard_char_pressed::ch#1 + call keyboard_matrix_row param-assignment + (byte) keyboard_matrix_row::return#0 ← (byte) keyboard_matrix_row::return#2 + to:keyboard_char_pressed::@2 +keyboard_char_pressed::@2: scope:[keyboard_char_pressed] from keyboard_char_pressed + (byte) keyboard_char_pressed::ch#3 ← phi( keyboard_char_pressed/(byte) keyboard_char_pressed::ch#1 ) + (byte) keyboard_matrix_row::return#3 ← phi( keyboard_char_pressed/(byte) keyboard_matrix_row::return#0 ) + (byte~) keyboard_char_pressed::$0 ← (byte) keyboard_matrix_row::return#3 + (byte) keyboard_matrix_read::rowid#1 ← (byte~) keyboard_char_pressed::$0 + call keyboard_matrix_read param-assignment + (byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#3 + to:keyboard_char_pressed::@3 +keyboard_char_pressed::@3: scope:[keyboard_char_pressed] from keyboard_char_pressed::@2 + (byte) keyboard_char_pressed::ch#2 ← phi( keyboard_char_pressed::@2/(byte) keyboard_char_pressed::ch#3 ) + (byte) keyboard_matrix_read::return#5 ← phi( keyboard_char_pressed::@2/(byte) keyboard_matrix_read::return#1 ) + (byte~) keyboard_char_pressed::$1 ← (byte) keyboard_matrix_read::return#5 + (byte) keyboard_matrix_col::ch#0 ← (byte) keyboard_char_pressed::ch#2 + call keyboard_matrix_col param-assignment + (byte) keyboard_matrix_col::return#0 ← (byte) keyboard_matrix_col::return#2 + to:keyboard_char_pressed::@4 +keyboard_char_pressed::@4: scope:[keyboard_char_pressed] from keyboard_char_pressed::@3 + (byte) keyboard_matrix_col::return#3 ← phi( keyboard_char_pressed::@3/(byte) keyboard_matrix_col::return#0 ) + (byte~) keyboard_char_pressed::$2 ← (byte) keyboard_matrix_col::return#3 + (byte~) keyboard_char_pressed::$3 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 + (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$3 + to:keyboard_char_pressed::@return +keyboard_char_pressed::@return: scope:[keyboard_char_pressed] from keyboard_char_pressed::@4 + (byte) keyboard_char_pressed::return#4 ← phi( keyboard_char_pressed::@4/(byte) keyboard_char_pressed::return#1 ) + (byte) keyboard_char_pressed::return#2 ← (byte) keyboard_char_pressed::return#4 + return + to:@return +@3: scope:[] from @begin + (byte[8]) keyboard_row_bits#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 } + to:@4 +keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_char_pressed::@2 main::@6 + (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_char_pressed::@2/(byte) keyboard_matrix_read::rowid#1 main::@6/(byte) keyboard_matrix_read::rowid#0 ) + *((byte*) CIA1_PORT_A#0) ← *((byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) + (byte~) keyboard_matrix_read::$0 ← ~ *((byte*) CIA1_PORT_B#0) + (byte) keyboard_matrix_read::row_pressed_bits#0 ← (byte~) keyboard_matrix_read::$0 + (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::row_pressed_bits#0 + to:keyboard_matrix_read::@return +keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read + (byte) keyboard_matrix_read::return#6 ← phi( keyboard_matrix_read/(byte) keyboard_matrix_read::return#2 ) + (byte) keyboard_matrix_read::return#3 ← (byte) keyboard_matrix_read::return#6 + return + to:@return +@4: scope:[] from @3 + (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 } + (byte[]) keyboard_matrix_chars#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 66, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 97 } + to:@6 +keyboard_matrix_row: scope:[keyboard_matrix_row] from keyboard_char_pressed + (byte) keyboard_matrix_row::ch#1 ← phi( keyboard_char_pressed/(byte) keyboard_matrix_row::ch#0 ) + (byte~) keyboard_matrix_row::$0 ← *((byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#1) & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) keyboard_matrix_row::return#1 ← (byte~) keyboard_matrix_row::$0 + to:keyboard_matrix_row::@return +keyboard_matrix_row::@return: scope:[keyboard_matrix_row] from keyboard_matrix_row + (byte) keyboard_matrix_row::return#4 ← phi( keyboard_matrix_row/(byte) keyboard_matrix_row::return#1 ) + (byte) keyboard_matrix_row::return#2 ← (byte) keyboard_matrix_row::return#4 + return + to:@return +keyboard_matrix_col: scope:[keyboard_matrix_col] from keyboard_char_pressed::@3 + (byte) keyboard_matrix_col::ch#1 ← phi( keyboard_char_pressed::@3/(byte) keyboard_matrix_col::ch#0 ) + (byte~) keyboard_matrix_col::$0 ← *((byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#1) >> (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) keyboard_matrix_col::col_id#0 ← (byte~) keyboard_matrix_col::$0 + (byte) keyboard_matrix_col::return#1 ← *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_matrix_col::col_id#0) + to:keyboard_matrix_col::@return +keyboard_matrix_col::@return: scope:[keyboard_matrix_col] from keyboard_matrix_col + (byte) keyboard_matrix_col::return#4 ← phi( keyboard_matrix_col/(byte) keyboard_matrix_col::return#1 ) + (byte) keyboard_matrix_col::return#2 ← (byte) keyboard_matrix_col::return#4 + return + to:@return +@6: scope:[] from @4 + call main param-assignment + to:@7 +@7: scope:[] from @6 + to:@end +@end: scope:[] from @7 + +SYMBOL TABLE SSA +(label) @3 +(label) @4 +(label) @6 +(label) @7 +(label) @begin +(label) @end +(byte*) CIA1_PORT_A +(byte*) CIA1_PORT_A#0 +(byte*) CIA1_PORT_A_DDR +(byte*) CIA1_PORT_A_DDR#0 +(byte*) CIA1_PORT_B +(byte*) CIA1_PORT_B#0 +(byte*) CIA1_PORT_B_DDR +(byte*) CIA1_PORT_B_DDR#0 +(byte*) RASTER +(byte*) RASTER#0 +(byte()) keyboard_char_pressed((byte) keyboard_char_pressed::ch) +(byte~) keyboard_char_pressed::$0 +(byte~) keyboard_char_pressed::$1 +(byte~) keyboard_char_pressed::$2 +(byte~) keyboard_char_pressed::$3 +(label) keyboard_char_pressed::@2 +(label) keyboard_char_pressed::@3 +(label) keyboard_char_pressed::@4 +(label) keyboard_char_pressed::@return +(byte) keyboard_char_pressed::ch +(byte) keyboard_char_pressed::ch#0 +(byte) keyboard_char_pressed::ch#1 +(byte) keyboard_char_pressed::ch#2 +(byte) keyboard_char_pressed::ch#3 +(byte) keyboard_char_pressed::return +(byte) keyboard_char_pressed::return#0 +(byte) keyboard_char_pressed::return#1 +(byte) keyboard_char_pressed::return#2 +(byte) keyboard_char_pressed::return#3 +(byte) keyboard_char_pressed::return#4 +(void()) keyboard_init() +(label) keyboard_init::@return +(byte[]) keyboard_matrix_chars +(byte[]) keyboard_matrix_chars#0 +(byte()) keyboard_matrix_col((byte) keyboard_matrix_col::ch) +(byte~) keyboard_matrix_col::$0 +(label) keyboard_matrix_col::@return +(byte) keyboard_matrix_col::ch +(byte) keyboard_matrix_col::ch#0 +(byte) keyboard_matrix_col::ch#1 +(byte) keyboard_matrix_col::col_id +(byte) keyboard_matrix_col::col_id#0 +(byte) keyboard_matrix_col::return +(byte) keyboard_matrix_col::return#0 +(byte) keyboard_matrix_col::return#1 +(byte) keyboard_matrix_col::return#2 +(byte) keyboard_matrix_col::return#3 +(byte) keyboard_matrix_col::return#4 +(byte[]) keyboard_matrix_col_bitmask +(byte[]) keyboard_matrix_col_bitmask#0 +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(byte~) keyboard_matrix_read::$0 +(label) keyboard_matrix_read::@return +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 +(byte) keyboard_matrix_read::return#1 +(byte) keyboard_matrix_read::return#2 +(byte) keyboard_matrix_read::return#3 +(byte) keyboard_matrix_read::return#4 +(byte) keyboard_matrix_read::return#5 +(byte) keyboard_matrix_read::return#6 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::row_pressed_bits#0 +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 +(byte) keyboard_matrix_read::rowid#1 +(byte) keyboard_matrix_read::rowid#2 +(byte()) keyboard_matrix_row((byte) keyboard_matrix_row::ch) +(byte~) keyboard_matrix_row::$0 +(label) keyboard_matrix_row::@return +(byte) keyboard_matrix_row::ch +(byte) keyboard_matrix_row::ch#0 +(byte) keyboard_matrix_row::ch#1 +(byte) keyboard_matrix_row::return +(byte) keyboard_matrix_row::return#0 +(byte) keyboard_matrix_row::return#1 +(byte) keyboard_matrix_row::return#2 +(byte) keyboard_matrix_row::return#3 +(byte) keyboard_matrix_row::return#4 +(byte[8]) keyboard_row_bits +(byte[8]) keyboard_row_bits#0 +(void()) main() +(word/signed word/dword/signed dword~) main::$0 +(boolean~) main::$1 +(byte*~) main::$10 +(boolean~) main::$11 +(byte*~) main::$12 +(byte~) main::$13 +(boolean~) main::$14 +(boolean~) main::$15 +(boolean~) main::$16 +(boolean~) main::$3 +(byte~) main::$4 +(byte~) main::$5 +(boolean~) main::$6 +(boolean~) main::$7 +(byte~) main::$8 +(boolean~) main::$9 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@16 +(label) main::@17 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@25 +(label) main::@26 +(label) main::@27 +(label) main::@3 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::ch +(byte) main::ch#0 +(byte) main::ch#1 +(byte) main::ch#2 +(byte[]) main::chars +(byte[]) main::chars#0 +(byte) main::col +(byte) main::col#0 +(byte) main::col#1 +(byte) main::col#2 +(byte) main::col#3 +(byte) main::col#4 +(byte) main::col#5 +(byte) main::i +(byte) main::i#0 +(byte) main::i#1 +(byte) main::i#2 +(byte) main::i#3 +(byte) main::i#4 +(byte) main::i#5 +(byte) main::i#6 +(byte) main::row +(byte) main::row#0 +(byte) main::row#1 +(byte) main::row#2 +(byte) main::row#3 +(byte) main::row#4 +(byte) main::row#5 +(byte) main::row#6 +(byte) main::row#7 +(byte) main::row#8 +(byte) main::row_pressed_bits +(byte) main::row_pressed_bits#0 +(byte) main::row_pressed_bits#1 +(byte) main::row_pressed_bits#2 +(byte) main::row_pressed_bits#3 +(byte) main::row_pressed_bits#4 +(byte) main::row_pressed_bits#5 +(byte*) main::sc +(byte*) main::sc#0 +(byte*) main::sc#1 +(byte*) main::sc#2 +(byte*) main::screen +(byte*) main::screen#0 +(byte*) main::screen#1 +(byte*) main::screen#10 +(byte*) main::screen#11 +(byte*) main::screen#12 +(byte*) main::screen#13 +(byte*) main::screen#14 +(byte*) main::screen#15 +(byte*) main::screen#2 +(byte*) main::screen#3 +(byte*) main::screen#4 +(byte*) main::screen#5 +(byte*) main::screen#6 +(byte*) main::screen#7 +(byte*) main::screen#8 +(byte*) main::screen#9 + +OPTIMIZING CONTROL FLOW GRAPH +Culled Empty Block (label) main::@25 +Culled Empty Block (label) main::@3 +Culled Empty Block (label) @7 +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::$13 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$14 ← (byte~) main::$13 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Succesful SSA optimization Pass2UnaryNotSimplification +Not aliassing across scopes: keyboard_matrix_read::rowid#0 main::row#2 +Not aliassing across scopes: keyboard_matrix_read::return#0 keyboard_matrix_read::return#3 +Not aliassing across scopes: main::$4 keyboard_matrix_read::return#4 +Not aliassing across scopes: keyboard_char_pressed::ch#0 main::ch#0 +Not aliassing across scopes: keyboard_char_pressed::return#0 keyboard_char_pressed::return#2 +Not aliassing across scopes: main::$13 keyboard_char_pressed::return#3 +Not aliassing across scopes: keyboard_char_pressed::ch#1 keyboard_char_pressed::ch#0 +Not aliassing across scopes: keyboard_matrix_row::ch#0 keyboard_char_pressed::ch#1 +Not aliassing across scopes: keyboard_matrix_row::return#0 keyboard_matrix_row::return#2 +Not aliassing across scopes: keyboard_char_pressed::$0 keyboard_matrix_row::return#3 +Not aliassing across scopes: keyboard_matrix_read::return#1 keyboard_matrix_read::return#3 +Not aliassing across scopes: keyboard_char_pressed::$1 keyboard_matrix_read::return#5 +Not aliassing across scopes: keyboard_matrix_col::ch#0 keyboard_char_pressed::ch#2 +Not aliassing across scopes: keyboard_matrix_col::return#0 keyboard_matrix_col::return#2 +Not aliassing across scopes: keyboard_char_pressed::$2 keyboard_matrix_col::return#3 +Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 +Not aliassing across scopes: keyboard_matrix_row::ch#1 keyboard_matrix_row::ch#0 +Not aliassing across scopes: keyboard_matrix_col::ch#1 keyboard_matrix_col::ch#0 +Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::return#4 +Alias (byte*) main::screen#12 = (byte*) main::screen#14 +Alias (byte) main::row#2 = (byte) main::row#8 +Alias (byte) main::row_pressed_bits#0 = (byte~) main::$4 +Alias (byte*) main::screen#3 = (byte*) main::screen#9 (byte*) main::screen#4 +Alias (byte) main::col#2 = (byte) main::col#5 (byte) main::col#3 +Alias (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#5 (byte) main::row_pressed_bits#4 +Alias (byte) main::row#5 = (byte) main::row#6 (byte) main::row#7 +Alias (byte) main::row_pressed_bits#1 = (byte~) main::$8 +Alias (byte*) main::screen#10 = (byte*) main::screen#5 +Alias (byte) main::row#3 = (byte) main::row#4 +Alias (byte*) main::screen#1 = (byte*~) main::$10 (byte*) main::screen#6 +Alias (byte*) main::screen#2 = (byte*~) main::$12 +Alias (byte) keyboard_char_pressed::return#0 = (byte) keyboard_char_pressed::return#3 +Alias (byte*) main::screen#11 = (byte*) main::screen#13 (byte*) main::screen#7 (byte*) main::screen#8 +Alias (byte) main::i#2 = (byte) main::i#6 (byte) main::i#3 (byte) main::i#4 +Alias (byte) main::ch#0 = (byte) main::ch#2 (byte) main::ch#1 +Alias (byte) keyboard_matrix_row::return#0 = (byte) keyboard_matrix_row::return#3 +Alias (byte) keyboard_char_pressed::ch#1 = (byte) keyboard_char_pressed::ch#3 (byte) keyboard_char_pressed::ch#2 +Alias (byte) keyboard_matrix_read::rowid#1 = (byte~) keyboard_char_pressed::$0 +Alias (byte) keyboard_matrix_read::return#1 = (byte) keyboard_matrix_read::return#5 +Alias (byte) keyboard_matrix_col::return#0 = (byte) keyboard_matrix_col::return#3 +Alias (byte) keyboard_char_pressed::return#1 = (byte~) keyboard_char_pressed::$3 (byte) keyboard_char_pressed::return#4 (byte) keyboard_char_pressed::return#2 +Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#6 (byte) keyboard_matrix_read::return#3 +Alias (byte) keyboard_matrix_row::return#1 = (byte~) keyboard_matrix_row::$0 (byte) keyboard_matrix_row::return#4 (byte) keyboard_matrix_row::return#2 +Alias (byte) keyboard_matrix_col::col_id#0 = (byte~) keyboard_matrix_col::$0 +Alias (byte) keyboard_matrix_col::return#1 = (byte) keyboard_matrix_col::return#4 (byte) keyboard_matrix_col::return#2 +Succesful SSA optimization Pass2AliasElimination +Not aliassing across scopes: keyboard_matrix_read::rowid#0 main::row#2 +Not aliassing across scopes: keyboard_matrix_read::return#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: main::row_pressed_bits#0 keyboard_matrix_read::return#0 +Not aliassing across scopes: keyboard_char_pressed::ch#0 main::ch#0 +Not aliassing across scopes: keyboard_char_pressed::return#0 keyboard_char_pressed::return#1 +Not aliassing across scopes: main::$13 keyboard_char_pressed::return#0 +Not aliassing across scopes: keyboard_char_pressed::ch#1 keyboard_char_pressed::ch#0 +Not aliassing across scopes: keyboard_matrix_row::ch#0 keyboard_char_pressed::ch#1 +Not aliassing across scopes: keyboard_matrix_row::return#0 keyboard_matrix_row::return#1 +Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_row::return#0 +Not aliassing across scopes: keyboard_matrix_read::return#1 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_char_pressed::$1 keyboard_matrix_read::return#1 +Not aliassing across scopes: keyboard_matrix_col::ch#0 keyboard_char_pressed::ch#1 +Not aliassing across scopes: keyboard_matrix_col::return#0 keyboard_matrix_col::return#1 +Not aliassing across scopes: keyboard_char_pressed::$2 keyboard_matrix_col::return#0 +Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 +Not aliassing across scopes: keyboard_matrix_row::ch#1 keyboard_matrix_row::ch#0 +Not aliassing across scopes: keyboard_matrix_col::ch#1 keyboard_matrix_col::ch#0 +Alias (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#3 +Alias (byte) main::col#2 = (byte) main::col#4 +Alias (byte*) main::screen#10 = (byte*) main::screen#3 +Alias (byte) main::row#3 = (byte) main::row#5 +Alias (byte) main::i#2 = (byte) main::i#5 +Alias (byte*) main::screen#11 = (byte*) main::screen#15 +Succesful SSA optimization Pass2AliasElimination +Not aliassing across scopes: keyboard_matrix_read::rowid#0 main::row#2 +Not aliassing across scopes: keyboard_matrix_read::return#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: main::row_pressed_bits#0 keyboard_matrix_read::return#0 +Not aliassing identity: main::screen#11 main::screen#11 +Not aliassing across scopes: keyboard_char_pressed::ch#0 main::ch#0 +Not aliassing across scopes: keyboard_char_pressed::return#0 keyboard_char_pressed::return#1 +Not aliassing across scopes: main::$13 keyboard_char_pressed::return#0 +Not aliassing across scopes: keyboard_char_pressed::ch#1 keyboard_char_pressed::ch#0 +Not aliassing across scopes: keyboard_matrix_row::ch#0 keyboard_char_pressed::ch#1 +Not aliassing across scopes: keyboard_matrix_row::return#0 keyboard_matrix_row::return#1 +Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_row::return#0 +Not aliassing across scopes: keyboard_matrix_read::return#1 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_char_pressed::$1 keyboard_matrix_read::return#1 +Not aliassing across scopes: keyboard_matrix_col::ch#0 keyboard_char_pressed::ch#1 +Not aliassing across scopes: keyboard_matrix_col::return#0 keyboard_matrix_col::return#1 +Not aliassing across scopes: keyboard_char_pressed::$2 keyboard_matrix_col::return#0 +Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 +Not aliassing across scopes: keyboard_matrix_row::ch#1 keyboard_matrix_row::ch#0 +Not aliassing across scopes: keyboard_matrix_col::ch#1 keyboard_matrix_col::ch#0 +Self Phi Eliminated (byte*) main::screen#10 +Self Phi Eliminated (byte) main::row#3 +Self Phi Eliminated (byte*) main::screen#11 +Succesful SSA optimization Pass2SelfPhiElimination +Redundant Phi (byte*) main::screen#10 (byte*) main::screen#12 +Redundant Phi (byte) main::row#3 (byte) main::row#2 +Redundant Phi (byte*) main::screen#11 (byte*) main::screen#2 +Redundant Phi (byte) keyboard_char_pressed::ch#1 (byte) keyboard_char_pressed::ch#0 +Redundant Phi (byte) keyboard_matrix_row::ch#1 (byte) keyboard_matrix_row::ch#0 +Redundant Phi (byte) keyboard_matrix_col::ch#1 (byte) keyboard_matrix_col::ch#0 +Succesful SSA optimization Pass2RedundantPhiElimination +Simple Condition (boolean~) main::$1 if((byte*) main::sc#1<(word/signed word/dword/signed dword~) main::$0) goto main::@1 +Simple Condition (boolean~) main::$3 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (boolean~) main::$7 if((byte~) main::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 +Simple Condition (boolean~) main::$9 if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 +Simple Condition (boolean~) main::$11 if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 +Simple Condition (boolean~) main::$15 if((byte~) main::$13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 +Simple Condition (boolean~) main::$16 if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto main::@10 +Succesful SSA optimization Pass2ConditionalJumpSimplification +Constant (const byte*) RASTER#0 = ((byte*))53266 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))56320 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))56321 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))56322 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))56323 +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 +Constant (const byte) main::row#0 = 0 +Constant (const byte) main::col#0 = 0 +Constant (const byte[]) main::chars#0 = { '@', 'a', 'b', 'c', 'd', 'e' } +Constant (const byte) main::i#0 = 0 +Constant (const byte[8]) keyboard_row_bits#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[]) keyboard_matrix_chars#0 = { 101, 33, 67, 66, 34, 97 } +Succesful SSA optimization Pass2ConstantIdentification +Multiple usages for variable. Not optimizing sub-constant (byte*) main::screen#1 +Culled Empty Block (label) main::@16 +Culled Empty Block (label) @3 +Culled Empty Block (label) @4 +Succesful SSA optimization Pass2CullEmptyBlocks +Not aliassing across scopes: keyboard_matrix_read::rowid#0 main::row#2 +Not aliassing across scopes: keyboard_matrix_read::return#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: main::row_pressed_bits#0 keyboard_matrix_read::return#0 +Not aliassing across scopes: keyboard_char_pressed::ch#0 main::ch#0 +Not aliassing across scopes: keyboard_char_pressed::return#0 keyboard_char_pressed::return#1 +Not aliassing across scopes: main::$13 keyboard_char_pressed::return#0 +Not aliassing across scopes: keyboard_matrix_row::ch#0 keyboard_char_pressed::ch#0 +Not aliassing across scopes: keyboard_matrix_row::return#0 keyboard_matrix_row::return#1 +Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_row::return#0 +Not aliassing across scopes: keyboard_matrix_read::return#1 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_char_pressed::$1 keyboard_matrix_read::return#1 +Not aliassing across scopes: keyboard_matrix_col::ch#0 keyboard_char_pressed::ch#0 +Not aliassing across scopes: keyboard_matrix_col::return#0 keyboard_matrix_col::return#1 +Not aliassing across scopes: keyboard_char_pressed::$2 keyboard_matrix_col::return#0 +Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 +Multiple usages for variable. Not optimizing sub-constant (byte*) main::screen#1 +Not aliassing across scopes: keyboard_matrix_read::rowid#0 main::row#2 +Not aliassing across scopes: keyboard_matrix_read::return#0 keyboard_matrix_read::return#2 +Not aliassing across scopes: main::row_pressed_bits#0 keyboard_matrix_read::return#0 +Not aliassing across scopes: keyboard_char_pressed::ch#0 main::ch#0 +Not aliassing across scopes: keyboard_char_pressed::return#0 keyboard_char_pressed::return#1 +Not aliassing across scopes: main::$13 keyboard_char_pressed::return#0 +Not aliassing across scopes: keyboard_matrix_row::ch#0 keyboard_char_pressed::ch#0 +Not aliassing across scopes: keyboard_matrix_row::return#0 keyboard_matrix_row::return#1 +Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_row::return#0 +Not aliassing across scopes: keyboard_matrix_read::return#1 keyboard_matrix_read::return#2 +Not aliassing across scopes: keyboard_char_pressed::$1 keyboard_matrix_read::return#1 +Not aliassing across scopes: keyboard_matrix_col::ch#0 keyboard_char_pressed::ch#0 +Not aliassing across scopes: keyboard_matrix_col::return#0 keyboard_matrix_col::return#1 +Not aliassing across scopes: keyboard_char_pressed::$2 keyboard_matrix_col::return#0 +Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 +Multiple usages for variable. Not optimizing sub-constant (byte*) main::screen#1 +OPTIMIZING CONTROL FLOW GRAPH +Inlining constant with var siblings (const byte*) main::sc#0 +Inlining constant with var siblings (const byte*) main::sc#0 +Inlining constant with var siblings (const byte*) main::screen#0 +Inlining constant with var siblings (const byte*) main::screen#0 +Inlining constant with var siblings (const byte*) main::screen#0 +Inlining constant with var siblings (const byte) main::row#0 +Inlining constant with var siblings (const byte) main::row#0 +Inlining constant with var siblings (const byte) main::col#0 +Inlining constant with var siblings (const byte) main::col#0 +Inlining constant with var siblings (const byte) main::i#0 +Inlining constant with var siblings (const byte) main::i#0 +Constant inlined main::screen#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined main::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::$0 = (word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Succesful SSA optimization Pass2ConstantInlining +Block Sequence Planned @begin @6 @end main main::@1 main::@13 main::@2 main::@return main::@5 main::@6 main::@26 main::@7 main::@17 main::@9 main::@19 main::@20 main::@10 main::@27 main::@21 main::@12 main::@11 main::@8 keyboard_char_pressed keyboard_char_pressed::@2 keyboard_char_pressed::@3 keyboard_char_pressed::@4 keyboard_char_pressed::@return keyboard_matrix_col keyboard_matrix_col::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_matrix_row keyboard_matrix_row::@return keyboard_init keyboard_init::@return +Added new block during phi lifting main::@28(between main::@1 and main::@1) +Added new block during phi lifting main::@29(between main::@19 and main::@6) +Added new block during phi lifting main::@30(between main::@9 and main::@7) +Added new block during phi lifting main::@31(between main::@12 and main::@10) +Block Sequence Planned @begin @6 @end main main::@1 main::@13 main::@2 main::@return main::@5 main::@6 main::@26 main::@7 main::@17 main::@9 main::@19 main::@20 main::@10 main::@27 main::@21 main::@12 main::@31 main::@11 main::@29 main::@30 main::@8 main::@28 keyboard_char_pressed keyboard_char_pressed::@2 keyboard_char_pressed::@3 keyboard_char_pressed::@4 keyboard_char_pressed::@return keyboard_matrix_col keyboard_matrix_col::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_matrix_row keyboard_matrix_row::@return keyboard_init keyboard_init::@return +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @6 +Adding NOP phi() at start of @end +Adding NOP phi() at start of main +Adding NOP phi() at start of main::@13 +CALL GRAPH +Calls in [] to main:2 +Calls in [main] to keyboard_init:10 keyboard_matrix_read:17 keyboard_char_pressed:35 +Calls in [keyboard_char_pressed] to keyboard_matrix_row:51 keyboard_matrix_read:55 keyboard_matrix_col:59 + +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Created 7 initial phi equivalence classes +Coalesced [16] keyboard_matrix_read::rowid#4 ← keyboard_matrix_read::rowid#0 +Coalesced [20] main::row_pressed_bits#6 ← main::row_pressed_bits#0 +Coalesced [42] main::i#7 ← main::i#1 +Coalesced [44] main::row#9 ← main::row#1 +Coalesced [45] main::screen#16 ← main::screen#1 +Coalesced [46] main::row_pressed_bits#7 ← main::row_pressed_bits#1 +Coalesced [47] main::col#6 ← main::col#1 +Coalesced [49] main::sc#3 ← main::sc#1 +Coalesced [54] keyboard_matrix_read::rowid#3 ← keyboard_matrix_read::rowid#1 +Coalesced down to 7 phi equivalence classes +Culled Empty Block (label) main::@31 +Culled Empty Block (label) main::@29 +Culled Empty Block (label) main::@30 +Culled Empty Block (label) main::@28 +Block Sequence Planned @begin @6 @end main main::@1 main::@13 main::@2 main::@return main::@5 main::@6 main::@26 main::@7 main::@17 main::@9 main::@19 main::@20 main::@10 main::@27 main::@21 main::@12 main::@11 main::@8 keyboard_char_pressed keyboard_char_pressed::@2 keyboard_char_pressed::@3 keyboard_char_pressed::@4 keyboard_char_pressed::@return keyboard_matrix_col keyboard_matrix_col::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_matrix_row keyboard_matrix_row::@return keyboard_init keyboard_init::@return +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @6 +Adding NOP phi() at start of @end +Adding NOP phi() at start of main +Adding NOP phi() at start of main::@13 +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... + +FINAL CONTROL FLOW GRAPH +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@6 +@6: scope:[] from @begin + [1] phi() [ ] ( ) + [2] call main param-assignment [ ] ( ) + to:@end +@end: scope:[] from @6 + [3] phi() [ ] ( ) +main: scope:[main] from @6 + [4] phi() [ ] ( main:2 [ ] ) + to:main::@1 +main::@1: scope:[main] from main main::@1 + [5] (byte*) main::sc#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) main::sc#1 ) [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) + [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) + [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) + [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) + to:main::@13 +main::@13: scope:[main] from main::@1 + [9] phi() [ ] ( main:2 [ ] ) + [10] call keyboard_init param-assignment [ ] ( main:2 [ ] ) + to:main::@2 +main::@2: scope:[main] from main::@12 main::@13 + [11] if(true) goto main::@5 [ ] ( main:2 [ ] ) + to:main::@return +main::@return: scope:[main] from main::@2 + [12] return [ ] ( main:2 [ ] ) + to:@return +main::@5: scope:[main] from main::@2 main::@5 + [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) + to:main::@6 +main::@6: scope:[main] from main::@19 main::@5 + [14] (byte*) main::screen#12 ← phi( main::@5/((byte*))(word/signed word/dword/signed dword) 1024 main::@19/(byte*) main::screen#1 ) [ main::row#2 main::screen#12 ] ( main:2 [ main::row#2 main::screen#12 ] ) + [14] (byte) main::row#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@19/(byte) main::row#1 ) [ main::row#2 main::screen#12 ] ( main:2 [ main::row#2 main::screen#12 ] ) + [15] (byte) keyboard_matrix_read::rowid#0 ← (byte) main::row#2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ) + [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ) + [17] (byte) keyboard_matrix_read::return#0 ← (byte) keyboard_matrix_read::return#2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ) + to:main::@26 +main::@26: scope:[main] from main::@6 + [18] (byte) main::row_pressed_bits#0 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ) + to:main::@7 +main::@7: scope:[main] from main::@26 main::@9 + [19] (byte) main::col#2 ← phi( main::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::col#1 ) [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + [19] (byte) main::row_pressed_bits#2 ← phi( main::@26/(byte) main::row_pressed_bits#0 main::@9/(byte) main::row_pressed_bits#1 ) [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + [20] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ) + [21] if((byte~) main::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + to:main::@17 +main::@17: scope:[main] from main::@7 + [22] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + to:main::@9 +main::@9: scope:[main] from main::@17 main::@8 + [23] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ( main:2 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ) + [24] (byte) main::col#1 ← ++ (byte) main::col#2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) + [25] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) + to:main::@19 +main::@19: scope:[main] from main::@9 + [26] (byte*) main::screen#1 ← (byte*) main::screen#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) + [27] (byte) main::row#1 ← ++ (byte) main::row#2 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) + [28] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) + to:main::@20 +main::@20: scope:[main] from main::@19 + [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) + to:main::@10 +main::@10: scope:[main] from main::@12 main::@20 + [30] (byte) main::i#2 ← phi( main::@12/(byte) main::i#1 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) + [31] (byte) main::ch#0 ← *((const byte[]) main::chars#0 + (byte) main::i#2) [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) + [32] (byte) keyboard_char_pressed::ch#0 ← (byte) main::ch#0 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) + [33] call keyboard_char_pressed param-assignment [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + [34] (byte) keyboard_char_pressed::return#0 ← (byte) keyboard_char_pressed::return#1 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ) + to:main::@27 +main::@27: scope:[main] from main::@10 + [35] (byte~) main::$13 ← (byte) keyboard_char_pressed::return#0 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ) + [36] if((byte~) main::$13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) + to:main::@21 +main::@21: scope:[main] from main::@27 + [37] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) main::ch#0 [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) + to:main::@12 +main::@12: scope:[main] from main::@11 main::@21 + [38] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) + [39] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto main::@10 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) + to:main::@2 +main::@11: scope:[main] from main::@27 + [40] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) ' ' [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) + to:main::@12 +main::@8: scope:[main] from main::@7 + [41] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) + to:main::@9 +keyboard_char_pressed: scope:[keyboard_char_pressed] from main::@10 + [42] (byte) keyboard_matrix_row::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ) + [43] call keyboard_matrix_row param-assignment [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + [44] (byte) keyboard_matrix_row::return#0 ← (byte) keyboard_matrix_row::return#1 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ) + to:keyboard_char_pressed::@2 +keyboard_char_pressed::@2: scope:[keyboard_char_pressed] from keyboard_char_pressed + [45] (byte) keyboard_matrix_read::rowid#1 ← (byte) keyboard_matrix_row::return#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ) + [46] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ) + [47] (byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ) + to:keyboard_char_pressed::@3 +keyboard_char_pressed::@3: scope:[keyboard_char_pressed] from keyboard_char_pressed::@2 + [48] (byte~) keyboard_char_pressed::$1 ← (byte) keyboard_matrix_read::return#1 [ keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ) + [49] (byte) keyboard_matrix_col::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ) + [50] call keyboard_matrix_col param-assignment [ keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + [51] (byte) keyboard_matrix_col::return#0 ← (byte) keyboard_matrix_col::return#1 [ keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ) + to:keyboard_char_pressed::@4 +keyboard_char_pressed::@4: scope:[keyboard_char_pressed] from keyboard_char_pressed::@3 + [52] (byte~) keyboard_char_pressed::$2 ← (byte) keyboard_matrix_col::return#0 [ keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ) + [53] (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + to:keyboard_char_pressed::@return +keyboard_char_pressed::@return: scope:[keyboard_char_pressed] from keyboard_char_pressed::@4 + [54] return [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + to:@return +keyboard_matrix_col: scope:[keyboard_matrix_col] from keyboard_char_pressed::@3 + [55] (byte) keyboard_matrix_col::col_id#0 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#0) >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_matrix_col::col_id#0 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::col_id#0 ] ) + [56] (byte) keyboard_matrix_col::return#1 ← *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_matrix_col::col_id#0) [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + to:keyboard_matrix_col::@return +keyboard_matrix_col::@return: scope:[keyboard_matrix_col] from keyboard_matrix_col + [57] return [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + to:@return +keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_char_pressed::@2 main::@6 + [58] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_char_pressed::@2/(byte) keyboard_matrix_read::rowid#1 main::@6/(byte) keyboard_matrix_read::rowid#0 ) [ keyboard_matrix_read::rowid#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#2 ] ) + [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) + [60] (byte) keyboard_matrix_read::return#2 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) + to:keyboard_matrix_read::@return +keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read + [61] return [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) + to:@return +keyboard_matrix_row: scope:[keyboard_matrix_row] from keyboard_char_pressed + [62] (byte) keyboard_matrix_row::return#1 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#0) & (byte/signed byte/word/signed word/dword/signed dword) 15 [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + to:keyboard_matrix_row::@return +keyboard_matrix_row::@return: scope:[keyboard_matrix_row] from keyboard_matrix_row + [63] return [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + to:@return +keyboard_init: scope:[keyboard_init] from main::@13 + [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) + [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) + to:keyboard_init::@return +keyboard_init::@return: scope:[keyboard_init] from keyboard_init + [66] return [ ] ( main:2::keyboard_init:10 [ ] ) + to:@return + +DOMINATORS +@begin dominated by @begin +@6 dominated by @begin @6 +@end dominated by @end @begin @6 +main dominated by main @begin @6 +main::@1 dominated by main main::@1 @begin @6 +main::@13 dominated by main main::@1 @begin main::@13 @6 +main::@2 dominated by main main::@1 main::@2 @begin main::@13 @6 +main::@return dominated by main::@return main main::@1 main::@2 @begin main::@13 @6 +main::@5 dominated by main main::@1 main::@2 main::@5 @begin main::@13 @6 +main::@6 dominated by main main::@1 main::@2 main::@5 main::@6 @begin main::@13 @6 +main::@26 dominated by main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@13 @6 +main::@7 dominated by main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@13 @6 +main::@17 dominated by main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@17 main::@13 @6 +main::@9 dominated by main::@9 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@13 @6 +main::@19 dominated by main::@9 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@19 main::@13 @6 +main::@20 dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@19 main::@13 @6 +main::@10 dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@19 main::@13 @6 +main::@27 dominated by main::@9 main::@20 main::@7 main::@27 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@19 main::@13 @6 +main::@21 dominated by main::@9 main::@20 main::@7 main::@21 main::@27 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@19 main::@13 @6 +main::@12 dominated by main::@9 main::@20 main::@7 main::@27 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@10 main::@19 main::@13 main::@12 @6 +main::@11 dominated by main::@9 main::@20 main::@7 main::@27 main main::@26 main::@1 main::@2 main::@5 main::@6 main::@11 @begin main::@10 main::@19 main::@13 @6 +main::@8 dominated by main::@7 main::@8 main main::@26 main::@1 main::@2 main::@5 main::@6 @begin main::@13 @6 +keyboard_char_pressed dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed @begin main::@10 main::@19 main::@13 @6 +keyboard_char_pressed::@2 dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed keyboard_char_pressed::@2 @begin main::@10 main::@19 main::@13 @6 +keyboard_char_pressed::@3 dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed keyboard_char_pressed::@2 @begin main::@10 keyboard_char_pressed::@3 main::@19 main::@13 @6 +keyboard_char_pressed::@4 dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed keyboard_char_pressed::@2 @begin main::@10 keyboard_char_pressed::@4 keyboard_char_pressed::@3 main::@19 main::@13 @6 +keyboard_char_pressed::@return dominated by main::@9 main::@20 main::@7 main keyboard_char_pressed::@return main::@26 main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed keyboard_char_pressed::@2 @begin main::@10 keyboard_char_pressed::@4 keyboard_char_pressed::@3 main::@19 main::@13 @6 +keyboard_matrix_col dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed keyboard_char_pressed::@2 @begin main::@10 keyboard_char_pressed::@3 main::@19 main::@13 @6 keyboard_matrix_col +keyboard_matrix_col::@return dominated by main::@9 main::@20 main::@7 main main::@26 main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed keyboard_char_pressed::@2 @begin main::@10 keyboard_char_pressed::@3 keyboard_matrix_col::@return main::@19 main::@13 @6 keyboard_matrix_col +keyboard_matrix_read dominated by keyboard_matrix_read main main::@1 main::@2 main::@5 main::@6 @begin main::@13 @6 +keyboard_matrix_read::@return dominated by keyboard_matrix_read main main::@1 main::@2 main::@5 main::@6 @begin main::@13 keyboard_matrix_read::@return @6 +keyboard_matrix_row dominated by main::@9 main::@20 main::@7 main main::@26 keyboard_matrix_row main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed @begin main::@10 main::@19 main::@13 @6 +keyboard_matrix_row::@return dominated by main::@9 main::@20 main::@7 main main::@26 keyboard_matrix_row main::@1 main::@2 main::@5 main::@6 keyboard_char_pressed @begin main::@10 main::@19 main::@13 @6 keyboard_matrix_row::@return +keyboard_init dominated by main keyboard_init main::@1 @begin main::@13 @6 +keyboard_init::@return dominated by main keyboard_init main::@1 keyboard_init::@return @begin main::@13 @6 + +NATURAL LOOPS +Found back edge: Loop head: main::@1 tails: main::@1 blocks: null +Found back edge: Loop head: main::@5 tails: main::@5 blocks: null +Found back edge: Loop head: main::@7 tails: main::@9 blocks: null +Found back edge: Loop head: main::@6 tails: main::@19 blocks: null +Found back edge: Loop head: main::@2 tails: main::@12 blocks: null +Found back edge: Loop head: main::@10 tails: main::@12 blocks: null +Populated: Loop head: main::@1 tails: main::@1 blocks: main::@1 +Populated: Loop head: main::@5 tails: main::@5 blocks: main::@5 +Populated: Loop head: main::@7 tails: main::@9 blocks: main::@9 main::@17 main::@8 main::@7 +Populated: Loop head: main::@6 tails: main::@19 blocks: main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 +Populated: Loop head: main::@2 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 main::@20 main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 main::@5 main::@2 +Populated: Loop head: main::@10 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 +Loop head: main::@1 tails: main::@1 blocks: main::@1 +Loop head: main::@5 tails: main::@5 blocks: main::@5 +Loop head: main::@7 tails: main::@9 blocks: main::@9 main::@17 main::@8 main::@7 +Loop head: main::@6 tails: main::@19 blocks: main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 +Loop head: main::@2 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 main::@20 main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 main::@5 main::@2 +Loop head: main::@10 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 + +NATURAL LOOPS WITH DEPTH +Found 0 loops in scope [] +Found 6 loops in scope [main] + Loop head: main::@1 tails: main::@1 blocks: main::@1 + Loop head: main::@5 tails: main::@5 blocks: main::@5 + Loop head: main::@7 tails: main::@9 blocks: main::@9 main::@17 main::@8 main::@7 + Loop head: main::@6 tails: main::@19 blocks: main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 + Loop head: main::@2 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 main::@20 main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 main::@5 main::@2 + Loop head: main::@10 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 +Found 0 loops in scope [keyboard_init] +Found 0 loops in scope [keyboard_matrix_read] +Found 0 loops in scope [keyboard_char_pressed] +Found 0 loops in scope [keyboard_matrix_row] +Found 0 loops in scope [keyboard_matrix_col] +Loop head: main::@1 tails: main::@1 blocks: main::@1 depth: 1 +Loop head: main::@5 tails: main::@5 blocks: main::@5 depth: 2 +Loop head: main::@7 tails: main::@9 blocks: main::@9 main::@17 main::@8 main::@7 depth: 3 +Loop head: main::@6 tails: main::@19 blocks: main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 depth: 2 +Loop head: main::@2 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 main::@20 main::@19 main::@9 main::@17 main::@8 main::@7 main::@26 main::@6 main::@5 main::@2 depth: 1 +Loop head: main::@10 tails: main::@12 blocks: main::@12 main::@11 main::@21 main::@27 main::@10 depth: 2 + + +VARIABLE REGISTER WEIGHTS +(byte*) CIA1_PORT_A +(byte*) CIA1_PORT_A_DDR +(byte*) CIA1_PORT_B +(byte*) CIA1_PORT_B_DDR +(byte*) RASTER +(byte()) keyboard_char_pressed((byte) keyboard_char_pressed::ch) +(byte~) keyboard_char_pressed::$1 0.8 +(byte~) keyboard_char_pressed::$2 4.0 +(byte) keyboard_char_pressed::ch +(byte) keyboard_char_pressed::ch#0 13.125 +(byte) keyboard_char_pressed::return +(byte) keyboard_char_pressed::return#0 202.0 +(byte) keyboard_char_pressed::return#1 34.33333333333333 +(void()) keyboard_init() +(byte[]) keyboard_matrix_chars +(byte()) keyboard_matrix_col((byte) keyboard_matrix_col::ch) +(byte) keyboard_matrix_col::ch +(byte) keyboard_matrix_col::ch#0 4.0 +(byte) keyboard_matrix_col::col_id +(byte) keyboard_matrix_col::col_id#0 4.0 +(byte) keyboard_matrix_col::return +(byte) keyboard_matrix_col::return#0 4.0 +(byte) keyboard_matrix_col::return#1 1.3333333333333333 +(byte[]) keyboard_matrix_col_bitmask +(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) +(byte) keyboard_matrix_read::return +(byte) keyboard_matrix_read::return#0 202.0 +(byte) keyboard_matrix_read::return#1 4.0 +(byte) keyboard_matrix_read::return#2 26.25 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 202.0 +(byte) keyboard_matrix_read::rowid#1 4.0 +(byte) keyboard_matrix_read::rowid#2 105.0 +(byte()) keyboard_matrix_row((byte) keyboard_matrix_row::ch) +(byte) keyboard_matrix_row::ch +(byte) keyboard_matrix_row::ch#0 4.0 +(byte) keyboard_matrix_row::return +(byte) keyboard_matrix_row::return#0 4.0 +(byte) keyboard_matrix_row::return#1 1.3333333333333333 +(byte[8]) keyboard_row_bits +(void()) main() +(byte~) main::$13 202.0 +(byte~) main::$5 2002.0 +(byte) main::ch +(byte) main::ch#0 50.5 +(byte[]) main::chars +(byte) main::col +(byte) main::col#1 1501.5 +(byte) main::col#2 667.3333333333334 +(byte) main::i +(byte) main::i#1 151.5 +(byte) main::i#2 56.11111111111111 +(byte) main::row +(byte) main::row#1 151.5 +(byte) main::row#2 21.642857142857142 +(byte) main::row_pressed_bits +(byte) main::row_pressed_bits#0 202.0 +(byte) main::row_pressed_bits#1 667.3333333333334 +(byte) main::row_pressed_bits#2 620.8 +(byte*) main::sc +(byte*) main::sc#1 16.5 +(byte*) main::sc#2 16.5 +(byte*) main::screen +(byte*) main::screen#1 71.0 +(byte*) main::screen#12 169.53846153846155 +(byte*) main::screen#2 17.75 + +Initial phi equivalence classes +[ main::sc#2 main::sc#1 ] +[ main::row#2 main::row#1 ] +[ main::screen#12 main::screen#1 ] +[ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] +[ main::col#2 main::col#1 ] +[ main::i#2 main::i#1 ] +[ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] +Added variable keyboard_matrix_read::return#0 to zero page equivalence class [ keyboard_matrix_read::return#0 ] +Added variable main::$5 to zero page equivalence class [ main::$5 ] +Added variable main::screen#2 to zero page equivalence class [ main::screen#2 ] +Added variable main::ch#0 to zero page equivalence class [ main::ch#0 ] +Added variable keyboard_char_pressed::ch#0 to zero page equivalence class [ keyboard_char_pressed::ch#0 ] +Added variable keyboard_char_pressed::return#0 to zero page equivalence class [ keyboard_char_pressed::return#0 ] +Added variable main::$13 to zero page equivalence class [ main::$13 ] +Added variable keyboard_matrix_row::ch#0 to zero page equivalence class [ keyboard_matrix_row::ch#0 ] +Added variable keyboard_matrix_row::return#0 to zero page equivalence class [ keyboard_matrix_row::return#0 ] +Added variable keyboard_matrix_read::return#1 to zero page equivalence class [ keyboard_matrix_read::return#1 ] +Added variable keyboard_char_pressed::$1 to zero page equivalence class [ keyboard_char_pressed::$1 ] +Added variable keyboard_matrix_col::ch#0 to zero page equivalence class [ keyboard_matrix_col::ch#0 ] +Added variable keyboard_matrix_col::return#0 to zero page equivalence class [ keyboard_matrix_col::return#0 ] +Added variable keyboard_char_pressed::$2 to zero page equivalence class [ keyboard_char_pressed::$2 ] +Added variable keyboard_char_pressed::return#1 to zero page equivalence class [ keyboard_char_pressed::return#1 ] +Added variable keyboard_matrix_col::col_id#0 to zero page equivalence class [ keyboard_matrix_col::col_id#0 ] +Added variable keyboard_matrix_col::return#1 to zero page equivalence class [ keyboard_matrix_col::return#1 ] +Added variable keyboard_matrix_read::return#2 to zero page equivalence class [ keyboard_matrix_read::return#2 ] +Added variable keyboard_matrix_row::return#1 to zero page equivalence class [ keyboard_matrix_row::return#1 ] +Complete equivalence classes +[ main::sc#2 main::sc#1 ] +[ main::row#2 main::row#1 ] +[ main::screen#12 main::screen#1 ] +[ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] +[ main::col#2 main::col#1 ] +[ main::i#2 main::i#1 ] +[ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] +[ keyboard_matrix_read::return#0 ] +[ main::$5 ] +[ main::screen#2 ] +[ main::ch#0 ] +[ keyboard_char_pressed::ch#0 ] +[ keyboard_char_pressed::return#0 ] +[ main::$13 ] +[ keyboard_matrix_row::ch#0 ] +[ keyboard_matrix_row::return#0 ] +[ keyboard_matrix_read::return#1 ] +[ keyboard_char_pressed::$1 ] +[ keyboard_matrix_col::ch#0 ] +[ keyboard_matrix_col::return#0 ] +[ keyboard_char_pressed::$2 ] +[ keyboard_char_pressed::return#1 ] +[ keyboard_matrix_col::col_id#0 ] +[ keyboard_matrix_col::return#1 ] +[ keyboard_matrix_read::return#2 ] +[ keyboard_matrix_row::return#1 ] +Allocated zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] +Allocated zp ZP_BYTE:4 [ main::row#2 main::row#1 ] +Allocated zp ZP_WORD:5 [ main::screen#12 main::screen#1 ] +Allocated zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] +Allocated zp ZP_BYTE:8 [ main::col#2 main::col#1 ] +Allocated zp ZP_BYTE:9 [ main::i#2 main::i#1 ] +Allocated zp ZP_BYTE:10 [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:11 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:12 [ main::$5 ] +Allocated zp ZP_WORD:13 [ main::screen#2 ] +Allocated zp ZP_BYTE:15 [ main::ch#0 ] +Allocated zp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] +Allocated zp ZP_BYTE:17 [ keyboard_char_pressed::return#0 ] +Allocated zp ZP_BYTE:18 [ main::$13 ] +Allocated zp ZP_BYTE:19 [ keyboard_matrix_row::ch#0 ] +Allocated zp ZP_BYTE:20 [ keyboard_matrix_row::return#0 ] +Allocated zp ZP_BYTE:21 [ keyboard_matrix_read::return#1 ] +Allocated zp ZP_BYTE:22 [ keyboard_char_pressed::$1 ] +Allocated zp ZP_BYTE:23 [ keyboard_matrix_col::ch#0 ] +Allocated zp ZP_BYTE:24 [ keyboard_matrix_col::return#0 ] +Allocated zp ZP_BYTE:25 [ keyboard_char_pressed::$2 ] +Allocated zp ZP_BYTE:26 [ keyboard_char_pressed::return#1 ] +Allocated zp ZP_BYTE:27 [ keyboard_matrix_col::col_id#0 ] +Allocated zp ZP_BYTE:28 [ keyboard_matrix_col::return#1 ] +Allocated zp ZP_BYTE:29 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:30 [ keyboard_matrix_row::return#1 ] + +INITIAL ASM +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .label RASTER = $d012 + .label CIA1_PORT_A = $dc00 + .label CIA1_PORT_B = $dc01 + .label CIA1_PORT_A_DDR = $dc02 + .label CIA1_PORT_B_DDR = $dc03 +//SEG2 @begin +bbegin: +//SEG3 [1] phi from @begin to @6 [phi:@begin->@6] +b6_from_bbegin: + jmp b6 +//SEG4 @6 +b6: +//SEG5 [2] call main param-assignment [ ] ( ) +//SEG6 [4] phi from @6 to main [phi:@6->main] +main_from_b6: + jsr main +//SEG7 [3] phi from @6 to @end [phi:@6->@end] +bend_from_b6: + jmp bend +//SEG8 @end +bend: +//SEG9 main +main: { + .label _5 = $c + .label _13 = $12 + .label sc = 2 + .label row_pressed_bits = 7 + .label col = 8 + .label screen = 5 + .label row = 4 + .label screen_2 = $d + .label ch = $f + .label i = 9 + //SEG10 [5] phi from main to main::@1 [phi:main->main::@1] + b1_from_main: + //SEG11 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + jmp b1 + //SEG12 [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] + b1_from_b1: + //SEG13 [5] phi (byte*) main::sc#2 = (byte*) main::sc#1 [phi:main::@1->main::@1#0] -- register_copy + jmp b1 + //SEG14 main::@1 + b1: + //SEG15 [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) -- _deref_pbuz1=vbuc1 + lda #' ' + ldy #0 + sta (sc),y + //SEG16 [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) -- pbuz1=_inc_pbuz1 + inc sc + bne !+ + inc sc+1 + !: + //SEG17 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) -- pbuz1_lt_vwuc1_then_la1 + lda sc+1 + cmp #>$400+$3e8 + bcc b1_from_b1 + bne !+ + lda sc + cmp #<$400+$3e8 + bcc b1_from_b1 + !: + //SEG18 [9] phi from main::@1 to main::@13 [phi:main::@1->main::@13] + b13_from_b1: + jmp b13 + //SEG19 main::@13 + b13: + //SEG20 [10] call keyboard_init param-assignment [ ] ( main:2 [ ] ) + jsr keyboard_init + jmp b2 + //SEG21 main::@2 + b2: + //SEG22 [11] if(true) goto main::@5 [ ] ( main:2 [ ] ) -- true_then_la1 + jmp b5 + jmp breturn + //SEG23 main::@return + breturn: + //SEG24 [12] return [ ] ( main:2 [ ] ) + rts + //SEG25 main::@5 + b5: + //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + lda RASTER + cmp #$ff + bne b5 + //SEG27 [14] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + b6_from_b5: + //SEG28 [14] phi (byte*) main::screen#12 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 + lda #<$400 + sta screen + lda #>$400 + sta screen+1 + //SEG29 [14] phi (byte) main::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@5->main::@6#1] -- vbuz1=vbuc1 + lda #0 + sta row + jmp b6 + //SEG30 [14] phi from main::@19 to main::@6 [phi:main::@19->main::@6] + b6_from_b19: + //SEG31 [14] phi (byte*) main::screen#12 = (byte*) main::screen#1 [phi:main::@19->main::@6#0] -- register_copy + //SEG32 [14] phi (byte) main::row#2 = (byte) main::row#1 [phi:main::@19->main::@6#1] -- register_copy + jmp b6 + //SEG33 main::@6 + b6: + //SEG34 [15] (byte) keyboard_matrix_read::rowid#0 ← (byte) main::row#2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ) -- vbuz1=vbuz2 + lda row + sta keyboard_matrix_read.rowid + //SEG35 [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ) + //SEG36 [58] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read] + keyboard_matrix_read_from_b6: + //SEG37 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:main::@6->keyboard_matrix_read#0] -- register_copy + jsr keyboard_matrix_read + //SEG38 [17] (byte) keyboard_matrix_read::return#0 ← (byte) keyboard_matrix_read::return#2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_read.return_2 + sta keyboard_matrix_read.return + jmp b26 + //SEG39 main::@26 + b26: + //SEG40 [18] (byte) main::row_pressed_bits#0 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_read.return + sta row_pressed_bits + //SEG41 [19] phi from main::@26 to main::@7 [phi:main::@26->main::@7] + b7_from_b26: + //SEG42 [19] phi (byte) main::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@26->main::@7#0] -- vbuz1=vbuc1 + lda #0 + sta col + //SEG43 [19] phi (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#0 [phi:main::@26->main::@7#1] -- register_copy + jmp b7 + //SEG44 [19] phi from main::@9 to main::@7 [phi:main::@9->main::@7] + b7_from_b9: + //SEG45 [19] phi (byte) main::col#2 = (byte) main::col#1 [phi:main::@9->main::@7#0] -- register_copy + //SEG46 [19] phi (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#1 [phi:main::@9->main::@7#1] -- register_copy + jmp b7 + //SEG47 main::@7 + b7: + //SEG48 [20] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #$80 + and row_pressed_bits + sta _5 + //SEG49 [21] if((byte~) main::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- vbuz1_eq_0_then_la1 + lda _5 + beq b8 + jmp b17 + //SEG50 main::@17 + b17: + //SEG51 [22] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- pbuz1_derefidx_vbuz2=vbuc1 + lda #'1' + ldy col + sta (screen),y + jmp b9 + //SEG52 main::@9 + b9: + //SEG53 [23] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ( main:2 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ) -- vbuz1=vbuz1_rol_1 + asl row_pressed_bits + //SEG54 [24] (byte) main::col#1 ← ++ (byte) main::col#2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) -- vbuz1=_inc_vbuz1 + inc col + //SEG55 [25] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda col + cmp #8 + bne b7_from_b9 + jmp b19 + //SEG56 main::@19 + b19: + //SEG57 [26] (byte*) main::screen#1 ← (byte*) main::screen#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda screen + clc + adc #$28 + sta screen + bcc !+ + inc screen+1 + !: + //SEG58 [27] (byte) main::row#1 ← ++ (byte) main::row#2 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) -- vbuz1=_inc_vbuz1 + inc row + //SEG59 [28] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda row + cmp #8 + bne b6_from_b19 + jmp b20 + //SEG60 main::@20 + b20: + //SEG61 [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) -- pbuz1=pbuz2_plus_vbuc1 + lda #$28 + clc + adc screen + sta screen_2 + lda #0 + adc screen+1 + sta screen_2+1 + //SEG62 [30] phi from main::@20 to main::@10 [phi:main::@20->main::@10] + b10_from_b20: + //SEG63 [30] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@20->main::@10#0] -- vbuz1=vbuc1 + lda #0 + sta i + jmp b10 + //SEG64 [30] phi from main::@12 to main::@10 [phi:main::@12->main::@10] + b10_from_b12: + //SEG65 [30] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@12->main::@10#0] -- register_copy + jmp b10 + //SEG66 main::@10 + b10: + //SEG67 [31] (byte) main::ch#0 ← *((const byte[]) main::chars#0 + (byte) main::i#2) [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy i + lda chars,y + sta ch + //SEG68 [32] (byte) keyboard_char_pressed::ch#0 ← (byte) main::ch#0 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) -- vbuz1=vbuz2 + lda ch + sta keyboard_char_pressed.ch + //SEG69 [33] call keyboard_char_pressed param-assignment [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + jsr keyboard_char_pressed + //SEG70 [34] (byte) keyboard_char_pressed::return#0 ← (byte) keyboard_char_pressed::return#1 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ) -- vbuz1=vbuz2 + lda keyboard_char_pressed.return_1 + sta keyboard_char_pressed.return + jmp b27 + //SEG71 main::@27 + b27: + //SEG72 [35] (byte~) main::$13 ← (byte) keyboard_char_pressed::return#0 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ) -- vbuz1=vbuz2 + lda keyboard_char_pressed.return + sta _13 + //SEG73 [36] if((byte~) main::$13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) -- vbuz1_eq_0_then_la1 + lda _13 + beq b11 + jmp b21 + //SEG74 main::@21 + b21: + //SEG75 [37] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) main::ch#0 [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) -- pbuz1_derefidx_vbuz2=vbuz3 + lda ch + ldy i + sta (screen_2),y + jmp b12 + //SEG76 main::@12 + b12: + //SEG77 [38] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG78 [39] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto main::@10 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #6 + bne b10_from_b12 + jmp b2 + //SEG79 main::@11 + b11: + //SEG80 [40] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) ' ' [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) -- pbuz1_derefidx_vbuz2=vbuc1 + lda #' ' + ldy i + sta (screen_2),y + jmp b12 + //SEG81 main::@8 + b8: + //SEG82 [41] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- pbuz1_derefidx_vbuz2=vbuc1 + lda #'0' + ldy col + sta (screen),y + jmp b9 + chars: .byte '@', 'a', 'b', 'c', 'd', 'e' +} +//SEG83 keyboard_char_pressed +keyboard_char_pressed: { + .label _1 = $16 + .label _2 = $19 + .label ch = $10 + .label return = $11 + .label return_1 = $1a + //SEG84 [42] (byte) keyboard_matrix_row::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ) -- vbuz1=vbuz2 + lda ch + sta keyboard_matrix_row.ch + //SEG85 [43] call keyboard_matrix_row param-assignment [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + jsr keyboard_matrix_row + //SEG86 [44] (byte) keyboard_matrix_row::return#0 ← (byte) keyboard_matrix_row::return#1 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_row.return_1 + sta keyboard_matrix_row.return + jmp b2 + //SEG87 keyboard_char_pressed::@2 + b2: + //SEG88 [45] (byte) keyboard_matrix_read::rowid#1 ← (byte) keyboard_matrix_row::return#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_row.return + sta keyboard_matrix_read.rowid + //SEG89 [46] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ) + //SEG90 [58] phi from keyboard_char_pressed::@2 to keyboard_matrix_read [phi:keyboard_char_pressed::@2->keyboard_matrix_read] + keyboard_matrix_read_from_b2: + //SEG91 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:keyboard_char_pressed::@2->keyboard_matrix_read#0] -- register_copy + jsr keyboard_matrix_read + //SEG92 [47] (byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_read.return_2 + sta keyboard_matrix_read.return_1 + jmp b3 + //SEG93 keyboard_char_pressed::@3 + b3: + //SEG94 [48] (byte~) keyboard_char_pressed::$1 ← (byte) keyboard_matrix_read::return#1 [ keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_read.return_1 + sta _1 + //SEG95 [49] (byte) keyboard_matrix_col::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ) -- vbuz1=vbuz2 + lda ch + sta keyboard_matrix_col.ch + //SEG96 [50] call keyboard_matrix_col param-assignment [ keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + jsr keyboard_matrix_col + //SEG97 [51] (byte) keyboard_matrix_col::return#0 ← (byte) keyboard_matrix_col::return#1 [ keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_col.return_1 + sta keyboard_matrix_col.return + jmp b4 + //SEG98 keyboard_char_pressed::@4 + b4: + //SEG99 [52] (byte~) keyboard_char_pressed::$2 ← (byte) keyboard_matrix_col::return#0 [ keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ) -- vbuz1=vbuz2 + lda keyboard_matrix_col.return + sta _2 + //SEG100 [53] (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) -- vbuz1=vbuz2_band_vbuz3 + lda _1 + and _2 + sta return_1 + jmp breturn + //SEG101 keyboard_char_pressed::@return + breturn: + //SEG102 [54] return [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + rts +} +//SEG103 keyboard_matrix_col +keyboard_matrix_col: { + .label ch = $17 + .label return = $18 + .label col_id = $1b + .label return_1 = $1c + //SEG104 [55] (byte) keyboard_matrix_col::col_id#0 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#0) >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_matrix_col::col_id#0 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::col_id#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_ror_4 + ldy ch + lda keyboard_matrix_chars,y + lsr + lsr + lsr + lsr + sta col_id + //SEG105 [56] (byte) keyboard_matrix_col::return#1 ← *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_matrix_col::col_id#0) [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy col_id + lda keyboard_matrix_col_bitmask,y + sta return_1 + jmp breturn + //SEG106 keyboard_matrix_col::@return + breturn: + //SEG107 [57] return [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + rts +} +//SEG108 keyboard_matrix_read +keyboard_matrix_read: { + .label rowid = $a + .label return = $b + .label return_1 = $15 + .label return_2 = $1d + //SEG109 [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + ldy rowid + lda keyboard_row_bits,y + sta CIA1_PORT_A + //SEG110 [60] (byte) keyboard_matrix_read::return#2 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) -- vbuz1=_bnot__deref_pbuc1 + lda CIA1_PORT_B + eor #$ff + sta return_2 + jmp breturn + //SEG111 keyboard_matrix_read::@return + breturn: + //SEG112 [61] return [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) + rts +} +//SEG113 keyboard_matrix_row +keyboard_matrix_row: { + .label ch = $13 + .label return = $14 + .label return_1 = $1e + //SEG114 [62] (byte) keyboard_matrix_row::return#1 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#0) & (byte/signed byte/word/signed word/dword/signed dword) 15 [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2 + ldy ch + lda keyboard_matrix_chars,y + and #$f + sta return_1 + jmp breturn + //SEG115 keyboard_matrix_row::@return + breturn: + //SEG116 [63] return [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + rts +} +//SEG117 keyboard_init +keyboard_init: { + //SEG118 [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2 + lda #$ff + sta CIA1_PORT_A_DDR + //SEG119 [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2 + lda #0 + sta CIA1_PORT_B_DDR + jmp breturn + //SEG120 keyboard_init::@return + breturn: + //SEG121 [66] return [ ] ( main:2::keyboard_init:10 [ ] ) + rts +} + keyboard_row_bits: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f + keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + keyboard_matrix_chars: .byte $65, $21, $43, $42, $22, $61 + +REGISTER UPLIFT POTENTIAL REGISTERS +Statement [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a +Statement [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [20] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::row#2 main::row#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ main::col#2 main::col#1 ] +Statement [22] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a +Statement [26] (byte*) main::screen#1 ← (byte*) main::screen#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) always clobbers reg byte a +Statement [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) always clobbers reg byte a +Statement [40] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) ' ' [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ main::i#2 main::i#1 ] +Statement [41] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a +Statement [53] (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ main::ch#0 ] +Statement [55] (byte) keyboard_matrix_col::col_id#0 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#0) >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_matrix_col::col_id#0 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::col_id#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ keyboard_char_pressed::$1 ] +Statement [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] +Statement [60] (byte) keyboard_matrix_read::return#2 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) always clobbers reg byte a +Statement [62] (byte) keyboard_matrix_row::return#1 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#0) & (byte/signed byte/word/signed word/dword/signed dword) 15 [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) always clobbers reg byte a +Statement [64] *((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 +Statement [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a +Statement [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a +Statement [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [20] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ) always clobbers reg byte a +Statement [22] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a +Statement [26] (byte*) main::screen#1 ← (byte*) main::screen#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) always clobbers reg byte a +Statement [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) always clobbers reg byte a +Statement [37] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) main::ch#0 [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) always clobbers reg byte a +Statement [40] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) ' ' [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) always clobbers reg byte a +Statement [41] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a +Statement [53] (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) always clobbers reg byte a +Statement [55] (byte) keyboard_matrix_col::col_id#0 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#0) >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_matrix_col::col_id#0 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::col_id#0 ] ) always clobbers reg byte a +Statement [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) always clobbers reg byte a +Statement [60] (byte) keyboard_matrix_read::return#2 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) always clobbers reg byte a +Statement [62] (byte) keyboard_matrix_row::return#1 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#0) & (byte/signed byte/word/signed word/dword/signed dword) 15 [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) always clobbers reg byte a +Statement [64] *((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 +Statement [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a +Potential registers zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] : zp ZP_WORD:2 , +Potential registers zp ZP_BYTE:4 [ main::row#2 main::row#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:5 [ main::screen#12 main::screen#1 ] : zp ZP_WORD:5 , +Potential registers zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] : zp ZP_BYTE:7 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:8 [ main::col#2 main::col#1 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:9 [ main::i#2 main::i#1 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:10 [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:10 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:11 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:11 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:12 [ main::$5 ] : zp ZP_BYTE:12 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:13 [ main::screen#2 ] : zp ZP_WORD:13 , +Potential registers zp ZP_BYTE:15 [ main::ch#0 ] : zp ZP_BYTE:15 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:17 [ keyboard_char_pressed::return#0 ] : zp ZP_BYTE:17 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:18 [ main::$13 ] : zp ZP_BYTE:18 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:19 [ keyboard_matrix_row::ch#0 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:20 [ keyboard_matrix_row::return#0 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:21 [ keyboard_matrix_read::return#1 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:22 [ keyboard_char_pressed::$1 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:23 [ keyboard_matrix_col::ch#0 ] : zp ZP_BYTE:23 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:24 [ keyboard_matrix_col::return#0 ] : zp ZP_BYTE:24 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:25 [ keyboard_char_pressed::$2 ] : zp ZP_BYTE:25 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:26 [ keyboard_char_pressed::return#1 ] : zp ZP_BYTE:26 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:27 [ keyboard_matrix_col::col_id#0 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:28 [ keyboard_matrix_col::return#1 ] : zp ZP_BYTE:28 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:29 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:29 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:30 [ keyboard_matrix_row::return#1 ] : zp ZP_BYTE:30 , reg byte a , reg byte x , reg byte y , + +REGISTER UPLIFT SCOPES +Uplift Scope [main] 2,168.83: zp ZP_BYTE:8 [ main::col#2 main::col#1 ] 2,002: zp ZP_BYTE:12 [ main::$5 ] 1,490.13: zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] 240.54: zp ZP_WORD:5 [ main::screen#12 main::screen#1 ] 207.61: zp ZP_BYTE:9 [ main::i#2 main::i#1 ] 202: zp ZP_BYTE:18 [ main::$13 ] 173.14: zp ZP_BYTE:4 [ main::row#2 main::row#1 ] 50.5: zp ZP_BYTE:15 [ main::ch#0 ] 33: zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] 17.75: zp ZP_WORD:13 [ main::screen#2 ] +Uplift Scope [keyboard_matrix_read] 311: zp ZP_BYTE:10 [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] 202: zp ZP_BYTE:11 [ keyboard_matrix_read::return#0 ] 26.25: zp ZP_BYTE:29 [ keyboard_matrix_read::return#2 ] 4: zp ZP_BYTE:21 [ keyboard_matrix_read::return#1 ] +Uplift Scope [keyboard_char_pressed] 202: zp ZP_BYTE:17 [ keyboard_char_pressed::return#0 ] 34.33: zp ZP_BYTE:26 [ keyboard_char_pressed::return#1 ] 13.12: zp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] 4: zp ZP_BYTE:25 [ keyboard_char_pressed::$2 ] 0.8: zp ZP_BYTE:22 [ keyboard_char_pressed::$1 ] +Uplift Scope [keyboard_matrix_col] 4: zp ZP_BYTE:23 [ keyboard_matrix_col::ch#0 ] 4: zp ZP_BYTE:24 [ keyboard_matrix_col::return#0 ] 4: zp ZP_BYTE:27 [ keyboard_matrix_col::col_id#0 ] 1.33: zp ZP_BYTE:28 [ keyboard_matrix_col::return#1 ] +Uplift Scope [keyboard_matrix_row] 4: zp ZP_BYTE:19 [ keyboard_matrix_row::ch#0 ] 4: zp ZP_BYTE:20 [ keyboard_matrix_row::return#0 ] 1.33: zp ZP_BYTE:30 [ keyboard_matrix_row::return#1 ] +Uplift Scope [keyboard_init] +Uplift Scope [] + +Uplifting [main] best 73937 combination reg byte y [ main::col#2 main::col#1 ] reg byte a [ main::$5 ] zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] zp ZP_WORD:5 [ main::screen#12 main::screen#1 ] reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$13 ] reg byte x [ main::row#2 main::row#1 ] zp ZP_BYTE:15 [ main::ch#0 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_WORD:13 [ main::screen#2 ] +Uplifting [keyboard_matrix_read] best 72921 combination reg byte a [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#1 ] +Uplifting [keyboard_char_pressed] best 72012 combination reg byte a [ keyboard_char_pressed::return#0 ] reg byte a [ keyboard_char_pressed::return#1 ] zp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] reg byte a [ keyboard_char_pressed::$2 ] zp ZP_BYTE:22 [ keyboard_char_pressed::$1 ] +Uplifting [keyboard_matrix_col] best 71990 combination reg byte y [ keyboard_matrix_col::ch#0 ] reg byte a [ keyboard_matrix_col::return#0 ] reg byte a [ keyboard_matrix_col::col_id#0 ] reg byte a [ keyboard_matrix_col::return#1 ] +Uplifting [keyboard_matrix_row] best 71972 combination reg byte y [ keyboard_matrix_row::ch#0 ] reg byte a [ keyboard_matrix_row::return#0 ] reg byte a [ keyboard_matrix_row::return#1 ] +Uplifting [keyboard_init] best 71972 combination +Uplifting [] best 71972 combination +Attempting to uplift remaining variables inzp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] +Uplifting [main] best 71972 combination zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:15 [ main::ch#0 ] +Uplifting [main] best 71972 combination zp ZP_BYTE:15 [ main::ch#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] +Uplifting [keyboard_char_pressed] best 71972 combination zp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:22 [ keyboard_char_pressed::$1 ] +Uplifting [keyboard_char_pressed] best 71972 combination zp ZP_BYTE:22 [ keyboard_char_pressed::$1 ] +Coalescing zero page register with common assignment [ zp ZP_WORD:5 [ main::screen#12 main::screen#1 ] ] with [ zp ZP_WORD:13 [ main::screen#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:15 [ main::ch#0 ] ] with [ zp ZP_BYTE:16 [ keyboard_char_pressed::ch#0 ] ] - score: 1 +Coalescing zero page register [ zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] ] with [ zp ZP_WORD:5 [ main::screen#12 main::screen#1 main::screen#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] ] with [ zp ZP_BYTE:15 [ main::ch#0 keyboard_char_pressed::ch#0 ] ] +Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:4 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 main::ch#0 keyboard_char_pressed::ch#0 ] +Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:5 [ keyboard_char_pressed::$1 ] + +ASSEMBLER BEFORE OPTIMIZATION +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .label RASTER = $d012 + .label CIA1_PORT_A = $dc00 + .label CIA1_PORT_B = $dc01 + .label CIA1_PORT_A_DDR = $dc02 + .label CIA1_PORT_B_DDR = $dc03 +//SEG2 @begin +bbegin: +//SEG3 [1] phi from @begin to @6 [phi:@begin->@6] +b6_from_bbegin: + jmp b6 +//SEG4 @6 +b6: +//SEG5 [2] call main param-assignment [ ] ( ) +//SEG6 [4] phi from @6 to main [phi:@6->main] +main_from_b6: + jsr main +//SEG7 [3] phi from @6 to @end [phi:@6->@end] +bend_from_b6: + jmp bend +//SEG8 @end +bend: +//SEG9 main +main: { + .label sc = 2 + .label row_pressed_bits = 4 + .label screen = 2 + .label ch = 4 + //SEG10 [5] phi from main to main::@1 [phi:main->main::@1] + b1_from_main: + //SEG11 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + jmp b1 + //SEG12 [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] + b1_from_b1: + //SEG13 [5] phi (byte*) main::sc#2 = (byte*) main::sc#1 [phi:main::@1->main::@1#0] -- register_copy + jmp b1 + //SEG14 main::@1 + b1: + //SEG15 [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) -- _deref_pbuz1=vbuc1 + lda #' ' + ldy #0 + sta (sc),y + //SEG16 [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) -- pbuz1=_inc_pbuz1 + inc sc + bne !+ + inc sc+1 + !: + //SEG17 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) -- pbuz1_lt_vwuc1_then_la1 + lda sc+1 + cmp #>$400+$3e8 + bcc b1_from_b1 + bne !+ + lda sc + cmp #<$400+$3e8 + bcc b1_from_b1 + !: + //SEG18 [9] phi from main::@1 to main::@13 [phi:main::@1->main::@13] + b13_from_b1: + jmp b13 + //SEG19 main::@13 + b13: + //SEG20 [10] call keyboard_init param-assignment [ ] ( main:2 [ ] ) + jsr keyboard_init + jmp b2 + //SEG21 main::@2 + b2: + //SEG22 [11] if(true) goto main::@5 [ ] ( main:2 [ ] ) -- true_then_la1 + jmp b5 + jmp breturn + //SEG23 main::@return + breturn: + //SEG24 [12] return [ ] ( main:2 [ ] ) + rts + //SEG25 main::@5 + b5: + //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + lda RASTER + cmp #$ff + bne b5 + //SEG27 [14] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + b6_from_b5: + //SEG28 [14] phi (byte*) main::screen#12 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 + lda #<$400 + sta screen + lda #>$400 + sta screen+1 + //SEG29 [14] phi (byte) main::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@5->main::@6#1] -- vbuxx=vbuc1 + ldx #0 + jmp b6 + //SEG30 [14] phi from main::@19 to main::@6 [phi:main::@19->main::@6] + b6_from_b19: + //SEG31 [14] phi (byte*) main::screen#12 = (byte*) main::screen#1 [phi:main::@19->main::@6#0] -- register_copy + //SEG32 [14] phi (byte) main::row#2 = (byte) main::row#1 [phi:main::@19->main::@6#1] -- register_copy + jmp b6 + //SEG33 main::@6 + b6: + //SEG34 [15] (byte) keyboard_matrix_read::rowid#0 ← (byte) main::row#2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ) -- vbuaa=vbuxx + txa + //SEG35 [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ) + //SEG36 [58] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read] + keyboard_matrix_read_from_b6: + //SEG37 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:main::@6->keyboard_matrix_read#0] -- register_copy + jsr keyboard_matrix_read + //SEG38 [17] (byte) keyboard_matrix_read::return#0 ← (byte) keyboard_matrix_read::return#2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ) + // (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a + jmp b26 + //SEG39 main::@26 + b26: + //SEG40 [18] (byte) main::row_pressed_bits#0 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ) -- vbuz1=vbuaa + sta row_pressed_bits + //SEG41 [19] phi from main::@26 to main::@7 [phi:main::@26->main::@7] + b7_from_b26: + //SEG42 [19] phi (byte) main::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@26->main::@7#0] -- vbuyy=vbuc1 + ldy #0 + //SEG43 [19] phi (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#0 [phi:main::@26->main::@7#1] -- register_copy + jmp b7 + //SEG44 [19] phi from main::@9 to main::@7 [phi:main::@9->main::@7] + b7_from_b9: + //SEG45 [19] phi (byte) main::col#2 = (byte) main::col#1 [phi:main::@9->main::@7#0] -- register_copy + //SEG46 [19] phi (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#1 [phi:main::@9->main::@7#1] -- register_copy + jmp b7 + //SEG47 main::@7 + b7: + //SEG48 [20] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #$80 + and row_pressed_bits + //SEG49 [21] if((byte~) main::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b8 + jmp b17 + //SEG50 main::@17 + b17: + //SEG51 [22] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- pbuz1_derefidx_vbuyy=vbuc1 + lda #'1' + sta (screen),y + jmp b9 + //SEG52 main::@9 + b9: + //SEG53 [23] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ( main:2 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ) -- vbuz1=vbuz1_rol_1 + asl row_pressed_bits + //SEG54 [24] (byte) main::col#1 ← ++ (byte) main::col#2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) -- vbuyy=_inc_vbuyy + iny + //SEG55 [25] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) -- vbuyy_neq_vbuc1_then_la1 + cpy #8 + bne b7_from_b9 + jmp b19 + //SEG56 main::@19 + b19: + //SEG57 [26] (byte*) main::screen#1 ← (byte*) main::screen#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda screen + clc + adc #$28 + sta screen + bcc !+ + inc screen+1 + !: + //SEG58 [27] (byte) main::row#1 ← ++ (byte) main::row#2 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG59 [28] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 + bne b6_from_b19 + jmp b20 + //SEG60 main::@20 + b20: + //SEG61 [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda screen + clc + adc #$28 + sta screen + bcc !+ + inc screen+1 + !: + //SEG62 [30] phi from main::@20 to main::@10 [phi:main::@20->main::@10] + b10_from_b20: + //SEG63 [30] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@20->main::@10#0] -- vbuxx=vbuc1 + ldx #0 + jmp b10 + //SEG64 [30] phi from main::@12 to main::@10 [phi:main::@12->main::@10] + b10_from_b12: + //SEG65 [30] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@12->main::@10#0] -- register_copy + jmp b10 + //SEG66 main::@10 + b10: + //SEG67 [31] (byte) main::ch#0 ← *((const byte[]) main::chars#0 + (byte) main::i#2) [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) -- vbuz1=pbuc1_derefidx_vbuxx + lda chars,x + sta ch + //SEG68 [32] (byte) keyboard_char_pressed::ch#0 ← (byte) main::ch#0 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) + // (byte) keyboard_char_pressed::ch#0 = (byte) main::ch#0 // register copy zp ZP_BYTE:4 + //SEG69 [33] call keyboard_char_pressed param-assignment [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + jsr keyboard_char_pressed + //SEG70 [34] (byte) keyboard_char_pressed::return#0 ← (byte) keyboard_char_pressed::return#1 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ) + // (byte) keyboard_char_pressed::return#0 = (byte) keyboard_char_pressed::return#1 // register copy reg byte a + jmp b27 + //SEG71 main::@27 + b27: + //SEG72 [35] (byte~) main::$13 ← (byte) keyboard_char_pressed::return#0 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ) + // (byte~) main::$13 = (byte) keyboard_char_pressed::return#0 // register copy reg byte a + //SEG73 [36] if((byte~) main::$13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b11 + jmp b21 + //SEG74 main::@21 + b21: + //SEG75 [37] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) main::ch#0 [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) -- pbuz1_derefidx_vbuxx=vbuz2 + txa + tay + lda ch + sta (screen),y + jmp b12 + //SEG76 main::@12 + b12: + //SEG77 [38] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG78 [39] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto main::@10 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #6 + bne b10_from_b12 + jmp b2 + //SEG79 main::@11 + b11: + //SEG80 [40] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) ' ' [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) -- pbuz1_derefidx_vbuxx=vbuc1 + txa + tay + lda #' ' + sta (screen),y + jmp b12 + //SEG81 main::@8 + b8: + //SEG82 [41] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- pbuz1_derefidx_vbuyy=vbuc1 + lda #'0' + sta (screen),y + jmp b9 + chars: .byte '@', 'a', 'b', 'c', 'd', 'e' +} +//SEG83 keyboard_char_pressed +keyboard_char_pressed: { + .label _1 = 5 + .label ch = 4 + //SEG84 [42] (byte) keyboard_matrix_row::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ) -- vbuyy=vbuz1 + ldy ch + //SEG85 [43] call keyboard_matrix_row param-assignment [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + jsr keyboard_matrix_row + //SEG86 [44] (byte) keyboard_matrix_row::return#0 ← (byte) keyboard_matrix_row::return#1 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ) + // (byte) keyboard_matrix_row::return#0 = (byte) keyboard_matrix_row::return#1 // register copy reg byte a + jmp b2 + //SEG87 keyboard_char_pressed::@2 + b2: + //SEG88 [45] (byte) keyboard_matrix_read::rowid#1 ← (byte) keyboard_matrix_row::return#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ) + // (byte) keyboard_matrix_read::rowid#1 = (byte) keyboard_matrix_row::return#0 // register copy reg byte a + //SEG89 [46] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ) + //SEG90 [58] phi from keyboard_char_pressed::@2 to keyboard_matrix_read [phi:keyboard_char_pressed::@2->keyboard_matrix_read] + keyboard_matrix_read_from_b2: + //SEG91 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:keyboard_char_pressed::@2->keyboard_matrix_read#0] -- register_copy + jsr keyboard_matrix_read + //SEG92 [47] (byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ) + // (byte) keyboard_matrix_read::return#1 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a + jmp b3 + //SEG93 keyboard_char_pressed::@3 + b3: + //SEG94 [48] (byte~) keyboard_char_pressed::$1 ← (byte) keyboard_matrix_read::return#1 [ keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ) -- vbuz1=vbuaa + sta _1 + //SEG95 [49] (byte) keyboard_matrix_col::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ) -- vbuyy=vbuz1 + ldy ch + //SEG96 [50] call keyboard_matrix_col param-assignment [ keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + jsr keyboard_matrix_col + //SEG97 [51] (byte) keyboard_matrix_col::return#0 ← (byte) keyboard_matrix_col::return#1 [ keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ) + // (byte) keyboard_matrix_col::return#0 = (byte) keyboard_matrix_col::return#1 // register copy reg byte a + jmp b4 + //SEG98 keyboard_char_pressed::@4 + b4: + //SEG99 [52] (byte~) keyboard_char_pressed::$2 ← (byte) keyboard_matrix_col::return#0 [ keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ) + // (byte~) keyboard_char_pressed::$2 = (byte) keyboard_matrix_col::return#0 // register copy reg byte a + //SEG100 [53] (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) -- vbuaa=vbuz1_band_vbuaa + and _1 + jmp breturn + //SEG101 keyboard_char_pressed::@return + breturn: + //SEG102 [54] return [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + rts +} +//SEG103 keyboard_matrix_col +keyboard_matrix_col: { + //SEG104 [55] (byte) keyboard_matrix_col::col_id#0 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#0) >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_matrix_col::col_id#0 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::col_id#0 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_ror_4 + lda keyboard_matrix_chars,y + lsr + lsr + lsr + lsr + //SEG105 [56] (byte) keyboard_matrix_col::return#1 ← *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_matrix_col::col_id#0) [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + tay + lda keyboard_matrix_col_bitmask,y + jmp breturn + //SEG106 keyboard_matrix_col::@return + breturn: + //SEG107 [57] return [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + rts +} +//SEG108 keyboard_matrix_read +keyboard_matrix_read: { + //SEG109 [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuaa + tay + lda keyboard_row_bits,y + sta CIA1_PORT_A + //SEG110 [60] (byte) keyboard_matrix_read::return#2 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) -- vbuaa=_bnot__deref_pbuc1 + lda CIA1_PORT_B + eor #$ff + jmp breturn + //SEG111 keyboard_matrix_read::@return + breturn: + //SEG112 [61] return [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) + rts +} +//SEG113 keyboard_matrix_row +keyboard_matrix_row: { + //SEG114 [62] (byte) keyboard_matrix_row::return#1 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#0) & (byte/signed byte/word/signed word/dword/signed dword) 15 [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2 + lda keyboard_matrix_chars,y + and #$f + jmp breturn + //SEG115 keyboard_matrix_row::@return + breturn: + //SEG116 [63] return [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + rts +} +//SEG117 keyboard_init +keyboard_init: { + //SEG118 [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2 + lda #$ff + sta CIA1_PORT_A_DDR + //SEG119 [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2 + lda #0 + sta CIA1_PORT_B_DDR + jmp breturn + //SEG120 keyboard_init::@return + breturn: + //SEG121 [66] return [ ] ( main:2::keyboard_init:10 [ ] ) + rts +} + keyboard_row_bits: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f + keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + keyboard_matrix_chars: .byte $65, $21, $43, $42, $22, $61 + +ASSEMBLER OPTIMIZATIONS +Removing instruction jmp b6 +Removing instruction jmp bend +Removing instruction jmp b1 +Removing instruction jmp b13 +Removing instruction jmp b2 +Removing instruction jmp breturn +Removing instruction jmp b6 +Removing instruction jmp b26 +Removing instruction jmp b7 +Removing instruction jmp b17 +Removing instruction jmp b9 +Removing instruction jmp b19 +Removing instruction jmp b20 +Removing instruction jmp b10 +Removing instruction jmp b27 +Removing instruction jmp b21 +Removing instruction jmp b12 +Removing instruction jmp b2 +Removing instruction jmp b3 +Removing instruction jmp b4 +Removing instruction jmp breturn +Removing instruction jmp breturn +Removing instruction jmp breturn +Removing instruction jmp breturn +Removing instruction jmp breturn +Succesful ASM optimization Pass5NextJumpElimination +Replacing label b1_from_b1 with b1 +Replacing label b1_from_b1 with b1 +Replacing label b7_from_b9 with b7 +Replacing label b6_from_b19 with b6 +Replacing label b10_from_b12 with b10 +Removing instruction bbegin: +Removing instruction b6_from_bbegin: +Removing instruction main_from_b6: +Removing instruction bend_from_b6: +Removing instruction b1_from_b1: +Removing instruction b13_from_b1: +Removing instruction b6_from_b19: +Removing instruction b7_from_b9: +Removing instruction b10_from_b12: +Succesful ASM optimization Pass5RedundantLabelElimination +Removing instruction b6: +Removing instruction bend: +Removing instruction b1_from_main: +Removing instruction b13: +Removing instruction breturn: +Removing instruction b6_from_b5: +Removing instruction keyboard_matrix_read_from_b6: +Removing instruction b26: +Removing instruction b7_from_b26: +Removing instruction b17: +Removing instruction b19: +Removing instruction b20: +Removing instruction b10_from_b20: +Removing instruction b27: +Removing instruction b21: +Removing instruction b2: +Removing instruction keyboard_matrix_read_from_b2: +Removing instruction b3: +Removing instruction b4: +Removing instruction breturn: +Removing instruction breturn: +Removing instruction breturn: +Removing instruction breturn: +Removing instruction breturn: +Succesful ASM optimization Pass5UnusedLabelElimination +Skipping double jump to b5 in jmp b2 +Succesful ASM optimization Pass5DoubleJumpElimination +Removing unreachable instruction rts +Succesful ASM optimization Pass5UnreachableCodeElimination +Removing instruction jmp b1 +Removing instruction jmp b5 +Removing instruction jmp b6 +Removing instruction jmp b7 +Removing instruction jmp b10 +Succesful ASM optimization Pass5NextJumpElimination +Removing instruction b2: +Succesful ASM optimization Pass5RedundantLabelElimination + +FINAL SYMBOL TABLE +(label) @6 +(label) @begin +(label) @end +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(byte*) CIA1_PORT_A_DDR +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(byte*) CIA1_PORT_B_DDR +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(byte()) keyboard_char_pressed((byte) keyboard_char_pressed::ch) +(byte~) keyboard_char_pressed::$1 $1 zp ZP_BYTE:5 0.8 +(byte~) keyboard_char_pressed::$2 reg byte a 4.0 +(label) keyboard_char_pressed::@2 +(label) keyboard_char_pressed::@3 +(label) keyboard_char_pressed::@4 +(label) keyboard_char_pressed::@return +(byte) keyboard_char_pressed::ch +(byte) keyboard_char_pressed::ch#0 ch zp ZP_BYTE:4 13.125 +(byte) keyboard_char_pressed::return +(byte) keyboard_char_pressed::return#0 reg byte a 202.0 +(byte) keyboard_char_pressed::return#1 reg byte a 34.33333333333333 +(void()) keyboard_init() +(label) keyboard_init::@return +(byte[]) keyboard_matrix_chars +(const byte[]) keyboard_matrix_chars#0 keyboard_matrix_chars = { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 66, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 97 } +(byte()) keyboard_matrix_col((byte) keyboard_matrix_col::ch) +(label) keyboard_matrix_col::@return +(byte) keyboard_matrix_col::ch +(byte) keyboard_matrix_col::ch#0 reg byte y 4.0 +(byte) keyboard_matrix_col::col_id +(byte) keyboard_matrix_col::col_id#0 reg byte a 4.0 +(byte) keyboard_matrix_col::return +(byte) keyboard_matrix_col::return#0 reg byte a 4.0 +(byte) keyboard_matrix_col::return#1 reg byte a 1.3333333333333333 +(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_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 202.0 +(byte) keyboard_matrix_read::return#1 reg byte a 4.0 +(byte) keyboard_matrix_read::return#2 reg byte a 26.25 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte a 202.0 +(byte) keyboard_matrix_read::rowid#1 reg byte a 4.0 +(byte) keyboard_matrix_read::rowid#2 reg byte a 105.0 +(byte()) keyboard_matrix_row((byte) keyboard_matrix_row::ch) +(label) keyboard_matrix_row::@return +(byte) keyboard_matrix_row::ch +(byte) keyboard_matrix_row::ch#0 reg byte y 4.0 +(byte) keyboard_matrix_row::return +(byte) keyboard_matrix_row::return#0 reg byte a 4.0 +(byte) keyboard_matrix_row::return#1 reg byte a 1.3333333333333333 +(byte[8]) keyboard_row_bits +(const byte[8]) keyboard_row_bits#0 keyboard_row_bits = { (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 } +(void()) main() +(byte~) main::$13 reg byte a 202.0 +(byte~) main::$5 reg byte a 2002.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@17 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@26 +(label) main::@27 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::ch +(byte) main::ch#0 ch zp ZP_BYTE:4 50.5 +(byte[]) main::chars +(const byte[]) main::chars#0 chars = { (byte) '@', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e' } +(byte) main::col +(byte) main::col#1 reg byte y 1501.5 +(byte) main::col#2 reg byte y 667.3333333333334 +(byte) main::i +(byte) main::i#1 reg byte x 151.5 +(byte) main::i#2 reg byte x 56.11111111111111 +(byte) main::row +(byte) main::row#1 reg byte x 151.5 +(byte) main::row#2 reg byte x 21.642857142857142 +(byte) main::row_pressed_bits +(byte) main::row_pressed_bits#0 row_pressed_bits zp ZP_BYTE:4 202.0 +(byte) main::row_pressed_bits#1 row_pressed_bits zp ZP_BYTE:4 667.3333333333334 +(byte) main::row_pressed_bits#2 row_pressed_bits zp ZP_BYTE:4 620.8 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) main::sc#2 sc zp ZP_WORD:2 16.5 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 71.0 +(byte*) main::screen#12 screen zp ZP_WORD:2 169.53846153846155 +(byte*) main::screen#2 screen zp ZP_WORD:2 17.75 + +zp ZP_WORD:2 [ main::sc#2 main::sc#1 main::screen#12 main::screen#1 main::screen#2 ] +reg byte x [ main::row#2 main::row#1 ] +zp ZP_BYTE:4 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 main::ch#0 keyboard_char_pressed::ch#0 ] +reg byte y [ main::col#2 main::col#1 ] +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ main::$5 ] +reg byte a [ keyboard_char_pressed::return#0 ] +reg byte a [ main::$13 ] +reg byte y [ keyboard_matrix_row::ch#0 ] +reg byte a [ keyboard_matrix_row::return#0 ] +reg byte a [ keyboard_matrix_read::return#1 ] +zp ZP_BYTE:5 [ keyboard_char_pressed::$1 ] +reg byte y [ keyboard_matrix_col::ch#0 ] +reg byte a [ keyboard_matrix_col::return#0 ] +reg byte a [ keyboard_char_pressed::$2 ] +reg byte a [ keyboard_char_pressed::return#1 ] +reg byte a [ keyboard_matrix_col::col_id#0 ] +reg byte a [ keyboard_matrix_col::return#1 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_matrix_row::return#1 ] + + +FINAL ASSEMBLER +Score: 53505 + +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .label RASTER = $d012 + .label CIA1_PORT_A = $dc00 + .label CIA1_PORT_B = $dc01 + .label CIA1_PORT_A_DDR = $dc02 + .label CIA1_PORT_B_DDR = $dc03 +//SEG2 @begin +//SEG3 [1] phi from @begin to @6 [phi:@begin->@6] +//SEG4 @6 +//SEG5 [2] call main param-assignment [ ] ( ) +//SEG6 [4] phi from @6 to main [phi:@6->main] + jsr main +//SEG7 [3] phi from @6 to @end [phi:@6->@end] +//SEG8 @end +//SEG9 main +main: { + .label sc = 2 + .label row_pressed_bits = 4 + .label screen = 2 + .label ch = 4 + //SEG10 [5] phi from main to main::@1 [phi:main->main::@1] + //SEG11 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + //SEG12 [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] + //SEG13 [5] phi (byte*) main::sc#2 = (byte*) main::sc#1 [phi:main::@1->main::@1#0] -- register_copy + //SEG14 main::@1 + b1: + //SEG15 [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) -- _deref_pbuz1=vbuc1 + lda #' ' + ldy #0 + sta (sc),y + //SEG16 [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) -- pbuz1=_inc_pbuz1 + inc sc + bne !+ + inc sc+1 + !: + //SEG17 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) -- pbuz1_lt_vwuc1_then_la1 + lda sc+1 + cmp #>$400+$3e8 + bcc b1 + bne !+ + lda sc + cmp #<$400+$3e8 + bcc b1 + !: + //SEG18 [9] phi from main::@1 to main::@13 [phi:main::@1->main::@13] + //SEG19 main::@13 + //SEG20 [10] call keyboard_init param-assignment [ ] ( main:2 [ ] ) + jsr keyboard_init + //SEG21 main::@2 + //SEG22 [11] if(true) goto main::@5 [ ] ( main:2 [ ] ) -- true_then_la1 + //SEG23 main::@return + //SEG24 [12] return [ ] ( main:2 [ ] ) + //SEG25 main::@5 + b5: + //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + lda RASTER + cmp #$ff + bne b5 + //SEG27 [14] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + //SEG28 [14] phi (byte*) main::screen#12 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 + lda #<$400 + sta screen + lda #>$400 + sta screen+1 + //SEG29 [14] phi (byte) main::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@5->main::@6#1] -- vbuxx=vbuc1 + ldx #0 + //SEG30 [14] phi from main::@19 to main::@6 [phi:main::@19->main::@6] + //SEG31 [14] phi (byte*) main::screen#12 = (byte*) main::screen#1 [phi:main::@19->main::@6#0] -- register_copy + //SEG32 [14] phi (byte) main::row#2 = (byte) main::row#1 [phi:main::@19->main::@6#1] -- register_copy + //SEG33 main::@6 + b6: + //SEG34 [15] (byte) keyboard_matrix_read::rowid#0 ← (byte) main::row#2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::rowid#0 ] ) -- vbuaa=vbuxx + txa + //SEG35 [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] ) + //SEG36 [58] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read] + //SEG37 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:main::@6->keyboard_matrix_read#0] -- register_copy + jsr keyboard_matrix_read + //SEG38 [17] (byte) keyboard_matrix_read::return#0 ← (byte) keyboard_matrix_read::return#2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#12 keyboard_matrix_read::return#0 ] ) + // (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a + //SEG39 main::@26 + //SEG40 [18] (byte) main::row_pressed_bits#0 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#0 ] ) -- vbuz1=vbuaa + sta row_pressed_bits + //SEG41 [19] phi from main::@26 to main::@7 [phi:main::@26->main::@7] + //SEG42 [19] phi (byte) main::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@26->main::@7#0] -- vbuyy=vbuc1 + ldy #0 + //SEG43 [19] phi (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#0 [phi:main::@26->main::@7#1] -- register_copy + //SEG44 [19] phi from main::@9 to main::@7 [phi:main::@9->main::@7] + //SEG45 [19] phi (byte) main::col#2 = (byte) main::col#1 [phi:main::@9->main::@7#0] -- register_copy + //SEG46 [19] phi (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#1 [phi:main::@9->main::@7#1] -- register_copy + //SEG47 main::@7 + b7: + //SEG48 [20] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 main::$5 ] ) -- vbuaa=vbuz1_band_vbuc1 + lda #$80 + and row_pressed_bits + //SEG49 [21] if((byte~) main::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b8 + //SEG50 main::@17 + //SEG51 [22] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- pbuz1_derefidx_vbuyy=vbuc1 + lda #'1' + sta (screen),y + //SEG52 main::@9 + b9: + //SEG53 [23] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ( main:2 [ main::row#2 main::screen#12 main::col#2 main::row_pressed_bits#1 ] ) -- vbuz1=vbuz1_rol_1 + asl row_pressed_bits + //SEG54 [24] (byte) main::col#1 ← ++ (byte) main::col#2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) -- vbuyy=_inc_vbuyy + iny + //SEG55 [25] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#1 main::col#1 ] ) -- vbuyy_neq_vbuc1_then_la1 + cpy #8 + bne b7 + //SEG56 main::@19 + //SEG57 [26] (byte*) main::screen#1 ← (byte*) main::screen#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda screen + clc + adc #$28 + sta screen + bcc !+ + inc screen+1 + !: + //SEG58 [27] (byte) main::row#1 ← ++ (byte) main::row#2 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG59 [28] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 [ main::row#1 main::screen#1 ] ( main:2 [ main::row#1 main::screen#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 + bne b6 + //SEG60 main::@20 + //SEG61 [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda screen + clc + adc #$28 + sta screen + bcc !+ + inc screen+1 + !: + //SEG62 [30] phi from main::@20 to main::@10 [phi:main::@20->main::@10] + //SEG63 [30] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@20->main::@10#0] -- vbuxx=vbuc1 + ldx #0 + //SEG64 [30] phi from main::@12 to main::@10 [phi:main::@12->main::@10] + //SEG65 [30] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@12->main::@10#0] -- register_copy + //SEG66 main::@10 + b10: + //SEG67 [31] (byte) main::ch#0 ← *((const byte[]) main::chars#0 + (byte) main::i#2) [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) -- vbuz1=pbuc1_derefidx_vbuxx + lda chars,x + sta ch + //SEG68 [32] (byte) keyboard_char_pressed::ch#0 ← (byte) main::ch#0 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) + // (byte) keyboard_char_pressed::ch#0 = (byte) main::ch#0 // register copy zp ZP_BYTE:4 + //SEG69 [33] call keyboard_char_pressed param-assignment [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + jsr keyboard_char_pressed + //SEG70 [34] (byte) keyboard_char_pressed::return#0 ← (byte) keyboard_char_pressed::return#1 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#0 ] ) + // (byte) keyboard_char_pressed::return#0 = (byte) keyboard_char_pressed::return#1 // register copy reg byte a + //SEG71 main::@27 + //SEG72 [35] (byte~) main::$13 ← (byte) keyboard_char_pressed::return#0 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 main::$13 ] ) + // (byte~) main::$13 = (byte) keyboard_char_pressed::return#0 // register copy reg byte a + //SEG73 [36] if((byte~) main::$13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 [ main::screen#2 main::i#2 main::ch#0 ] ( main:2 [ main::screen#2 main::i#2 main::ch#0 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b11 + //SEG74 main::@21 + //SEG75 [37] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) main::ch#0 [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) -- pbuz1_derefidx_vbuxx=vbuz2 + txa + tay + lda ch + sta (screen),y + //SEG76 main::@12 + b12: + //SEG77 [38] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG78 [39] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto main::@10 [ main::screen#2 main::i#1 ] ( main:2 [ main::screen#2 main::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #6 + bne b10 + jmp b5 + //SEG79 main::@11 + b11: + //SEG80 [40] *((byte*) main::screen#2 + (byte) main::i#2) ← (byte) ' ' [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] ) -- pbuz1_derefidx_vbuxx=vbuc1 + txa + tay + lda #' ' + sta (screen),y + jmp b12 + //SEG81 main::@8 + b8: + //SEG82 [41] *((byte*) main::screen#12 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#12 main::row_pressed_bits#2 main::col#2 ] ) -- pbuz1_derefidx_vbuyy=vbuc1 + lda #'0' + sta (screen),y + jmp b9 + chars: .byte '@', 'a', 'b', 'c', 'd', 'e' +} +//SEG83 keyboard_char_pressed +keyboard_char_pressed: { + .label _1 = 5 + .label ch = 4 + //SEG84 [42] (byte) keyboard_matrix_row::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::ch#0 ] ) -- vbuyy=vbuz1 + ldy ch + //SEG85 [43] call keyboard_matrix_row param-assignment [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + jsr keyboard_matrix_row + //SEG86 [44] (byte) keyboard_matrix_row::return#0 ← (byte) keyboard_matrix_row::return#1 [ keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#0 ] ) + // (byte) keyboard_matrix_row::return#0 = (byte) keyboard_matrix_row::return#1 // register copy reg byte a + //SEG87 keyboard_char_pressed::@2 + //SEG88 [45] (byte) keyboard_matrix_read::rowid#1 ← (byte) keyboard_matrix_row::return#0 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::rowid#1 ] ) + // (byte) keyboard_matrix_read::rowid#1 = (byte) keyboard_matrix_row::return#0 // register copy reg byte a + //SEG89 [46] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_matrix_read::return#2 keyboard_char_pressed::ch#0 ] ) + //SEG90 [58] phi from keyboard_char_pressed::@2 to keyboard_matrix_read [phi:keyboard_char_pressed::@2->keyboard_matrix_read] + //SEG91 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:keyboard_char_pressed::@2->keyboard_matrix_read#0] -- register_copy + jsr keyboard_matrix_read + //SEG92 [47] (byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#1 ] ) + // (byte) keyboard_matrix_read::return#1 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a + //SEG93 keyboard_char_pressed::@3 + //SEG94 [48] (byte~) keyboard_char_pressed::$1 ← (byte) keyboard_matrix_read::return#1 [ keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_char_pressed::$1 ] ) -- vbuz1=vbuaa + sta _1 + //SEG95 [49] (byte) keyboard_matrix_col::ch#0 ← (byte) keyboard_char_pressed::ch#0 [ keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::ch#0 ] ) -- vbuyy=vbuz1 + ldy ch + //SEG96 [50] call keyboard_matrix_col param-assignment [ keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + jsr keyboard_matrix_col + //SEG97 [51] (byte) keyboard_matrix_col::return#0 ← (byte) keyboard_matrix_col::return#1 [ keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#0 ] ) + // (byte) keyboard_matrix_col::return#0 = (byte) keyboard_matrix_col::return#1 // register copy reg byte a + //SEG98 keyboard_char_pressed::@4 + //SEG99 [52] (byte~) keyboard_char_pressed::$2 ← (byte) keyboard_matrix_col::return#0 [ keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_char_pressed::$2 ] ) + // (byte~) keyboard_char_pressed::$2 = (byte) keyboard_matrix_col::return#0 // register copy reg byte a + //SEG100 [53] (byte) keyboard_char_pressed::return#1 ← (byte~) keyboard_char_pressed::$1 & (byte~) keyboard_char_pressed::$2 [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) -- vbuaa=vbuz1_band_vbuaa + and _1 + //SEG101 keyboard_char_pressed::@return + //SEG102 [54] return [ keyboard_char_pressed::return#1 ] ( main:2::keyboard_char_pressed:33 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::return#1 ] ) + rts +} +//SEG103 keyboard_matrix_col +keyboard_matrix_col: { + //SEG104 [55] (byte) keyboard_matrix_col::col_id#0 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_col::ch#0) >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_matrix_col::col_id#0 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::col_id#0 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_ror_4 + lda keyboard_matrix_chars,y + lsr + lsr + lsr + lsr + //SEG105 [56] (byte) keyboard_matrix_col::return#1 ← *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_matrix_col::col_id#0) [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + tay + lda keyboard_matrix_col_bitmask,y + //SEG106 keyboard_matrix_col::@return + //SEG107 [57] return [ keyboard_matrix_col::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_col:50 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::$1 keyboard_matrix_col::return#1 ] ) + rts +} +//SEG108 keyboard_matrix_read +keyboard_matrix_read: { + //SEG109 [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_row_bits#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuaa + tay + lda keyboard_row_bits,y + sta CIA1_PORT_A + //SEG110 [60] (byte) keyboard_matrix_read::return#2 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) -- vbuaa=_bnot__deref_pbuc1 + lda CIA1_PORT_B + eor #$ff + //SEG111 keyboard_matrix_read::@return + //SEG112 [61] return [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#12 keyboard_matrix_read::return#2 ] main:2::keyboard_char_pressed:33::keyboard_matrix_read:46 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_read::return#2 ] ) + rts +} +//SEG113 keyboard_matrix_row +keyboard_matrix_row: { + //SEG114 [62] (byte) keyboard_matrix_row::return#1 ← *((const byte[]) keyboard_matrix_chars#0 + (byte) keyboard_matrix_row::ch#0) & (byte/signed byte/word/signed word/dword/signed dword) 15 [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2 + lda keyboard_matrix_chars,y + and #$f + //SEG115 keyboard_matrix_row::@return + //SEG116 [63] return [ keyboard_matrix_row::return#1 ] ( main:2::keyboard_char_pressed:33::keyboard_matrix_row:43 [ main::screen#2 main::i#2 main::ch#0 keyboard_char_pressed::ch#0 keyboard_matrix_row::return#1 ] ) + rts +} +//SEG117 keyboard_init +keyboard_init: { + //SEG118 [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2 + lda #$ff + sta CIA1_PORT_A_DDR + //SEG119 [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2 + lda #0 + sta CIA1_PORT_B_DDR + //SEG120 keyboard_init::@return + //SEG121 [66] return [ ] ( main:2::keyboard_init:10 [ ] ) + rts +} + keyboard_row_bits: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f + keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + keyboard_matrix_chars: .byte $65, $21, $43, $42, $22, $61 + 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 new file mode 100644 index 000000000..5f2324e52 --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.sym @@ -0,0 +1,128 @@ +(label) @6 +(label) @begin +(label) @end +(byte*) CIA1_PORT_A +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(byte*) CIA1_PORT_A_DDR +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(byte*) CIA1_PORT_B +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(byte*) CIA1_PORT_B_DDR +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(byte*) RASTER +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(byte()) keyboard_char_pressed((byte) keyboard_char_pressed::ch) +(byte~) keyboard_char_pressed::$1 $1 zp ZP_BYTE:5 0.8 +(byte~) keyboard_char_pressed::$2 reg byte a 4.0 +(label) keyboard_char_pressed::@2 +(label) keyboard_char_pressed::@3 +(label) keyboard_char_pressed::@4 +(label) keyboard_char_pressed::@return +(byte) keyboard_char_pressed::ch +(byte) keyboard_char_pressed::ch#0 ch zp ZP_BYTE:4 13.125 +(byte) keyboard_char_pressed::return +(byte) keyboard_char_pressed::return#0 reg byte a 202.0 +(byte) keyboard_char_pressed::return#1 reg byte a 34.33333333333333 +(void()) keyboard_init() +(label) keyboard_init::@return +(byte[]) keyboard_matrix_chars +(const byte[]) keyboard_matrix_chars#0 keyboard_matrix_chars = { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 66, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 97 } +(byte()) keyboard_matrix_col((byte) keyboard_matrix_col::ch) +(label) keyboard_matrix_col::@return +(byte) keyboard_matrix_col::ch +(byte) keyboard_matrix_col::ch#0 reg byte y 4.0 +(byte) keyboard_matrix_col::col_id +(byte) keyboard_matrix_col::col_id#0 reg byte a 4.0 +(byte) keyboard_matrix_col::return +(byte) keyboard_matrix_col::return#0 reg byte a 4.0 +(byte) keyboard_matrix_col::return#1 reg byte a 1.3333333333333333 +(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_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 202.0 +(byte) keyboard_matrix_read::return#1 reg byte a 4.0 +(byte) keyboard_matrix_read::return#2 reg byte a 26.25 +(byte) keyboard_matrix_read::row_pressed_bits +(byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte a 202.0 +(byte) keyboard_matrix_read::rowid#1 reg byte a 4.0 +(byte) keyboard_matrix_read::rowid#2 reg byte a 105.0 +(byte()) keyboard_matrix_row((byte) keyboard_matrix_row::ch) +(label) keyboard_matrix_row::@return +(byte) keyboard_matrix_row::ch +(byte) keyboard_matrix_row::ch#0 reg byte y 4.0 +(byte) keyboard_matrix_row::return +(byte) keyboard_matrix_row::return#0 reg byte a 4.0 +(byte) keyboard_matrix_row::return#1 reg byte a 1.3333333333333333 +(byte[8]) keyboard_row_bits +(const byte[8]) keyboard_row_bits#0 keyboard_row_bits = { (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 } +(void()) main() +(byte~) main::$13 reg byte a 202.0 +(byte~) main::$5 reg byte a 2002.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@17 +(label) main::@19 +(label) main::@2 +(label) main::@20 +(label) main::@21 +(label) main::@26 +(label) main::@27 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::ch +(byte) main::ch#0 ch zp ZP_BYTE:4 50.5 +(byte[]) main::chars +(const byte[]) main::chars#0 chars = { (byte) '@', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e' } +(byte) main::col +(byte) main::col#1 reg byte y 1501.5 +(byte) main::col#2 reg byte y 667.3333333333334 +(byte) main::i +(byte) main::i#1 reg byte x 151.5 +(byte) main::i#2 reg byte x 56.11111111111111 +(byte) main::row +(byte) main::row#1 reg byte x 151.5 +(byte) main::row#2 reg byte x 21.642857142857142 +(byte) main::row_pressed_bits +(byte) main::row_pressed_bits#0 row_pressed_bits zp ZP_BYTE:4 202.0 +(byte) main::row_pressed_bits#1 row_pressed_bits zp ZP_BYTE:4 667.3333333333334 +(byte) main::row_pressed_bits#2 row_pressed_bits zp ZP_BYTE:4 620.8 +(byte*) main::sc +(byte*) main::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) main::sc#2 sc zp ZP_WORD:2 16.5 +(byte*) main::screen +(byte*) main::screen#1 screen zp ZP_WORD:2 71.0 +(byte*) main::screen#12 screen zp ZP_WORD:2 169.53846153846155 +(byte*) main::screen#2 screen zp ZP_WORD:2 17.75 + +zp ZP_WORD:2 [ main::sc#2 main::sc#1 main::screen#12 main::screen#1 main::screen#2 ] +reg byte x [ main::row#2 main::row#1 ] +zp ZP_BYTE:4 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 main::ch#0 keyboard_char_pressed::ch#0 ] +reg byte y [ main::col#2 main::col#1 ] +reg byte x [ main::i#2 main::i#1 ] +reg byte a [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 ] +reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ main::$5 ] +reg byte a [ keyboard_char_pressed::return#0 ] +reg byte a [ main::$13 ] +reg byte y [ keyboard_matrix_row::ch#0 ] +reg byte a [ keyboard_matrix_row::return#0 ] +reg byte a [ keyboard_matrix_read::return#1 ] +zp ZP_BYTE:5 [ keyboard_char_pressed::$1 ] +reg byte y [ keyboard_matrix_col::ch#0 ] +reg byte a [ keyboard_matrix_col::return#0 ] +reg byte a [ keyboard_char_pressed::$2 ] +reg byte a [ keyboard_char_pressed::return#1 ] +reg byte a [ keyboard_matrix_col::col_id#0 ] +reg byte a [ keyboard_matrix_col::return#1 ] +reg byte a [ keyboard_matrix_read::return#2 ] +reg byte a [ keyboard_matrix_row::return#1 ]